Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Preferred development workflow with git repository:

...

Accelerator Physics Software Work Tracking

Projects/Upgrades

TaskApplication/areaPerson(s) ResponsibleStatusPriorityNotesGitHub
  •  Lucretia model server conversion
GlobalCesar, Perez, BuschmannWIP1

  •  LEM server + watcher conversion
LEMBuschmann
2Waiting on model server deployment
  •  New Phase scan GUI
Phase ScansBuschmannWIP3rudimentary functionality, needs with-beam test
  •  Rebrand EPICS with fancy new orange
GlobalBuschmannWIP3discussing how to implement non-invasively with EED
  •  LAME GUI scan automation
LAMEParkerWIP3








Bug Fixes

IssueApplication/areaPerson(s) ResponsibleStatusPriorityNotesCATER
  •  BC20 energy feedback no-op
FeedbacksBuschmannWIP1need to run feedback process locally & observe failure modes166749
  •  Matlab server revival
GlobalBuschmannWIP2managed to launch server, but haven't figured out how to launch GUIs yet
  •  Save previous magnet settings after loading new emittance msmt
OpticsBuschmann
2
166714
  •  Add logbook button for LEM magnet settings
LEMBuschmann
2
166618
  •  Write waist position PV after trim, not after selection
S20 ConfigBuschmann
3

  •  Sextupole GUI "fix offsets" button does nothing
SextupoleBuschmann
3ancient CATER - maybe not an issue anymore? needs discussion117540







Standby Tasks / Wishlist / Brainstorm

...

These are software tasks that are in an unknown state or not currently being worked

TaskLast Person ResponsibleStatus
Full lists of PVs used in HLAs accessible from each help menuSharon
Change default range of Schottky Scan GUISharon
Add Logbook feature to BSA GUISharon
Implement interface to SCP corr plotsGeorge, Glen10/22/22: Implemented by George, documentation on AIDA-PVA website, needs testing
Feedback HSTA bit control (be able to change Feedback → Compute)George, Glen9/22/22: Implemented and tested ability to write raw HSTA bit values, matlab interface to toggle OFF, Compute, Feedback states written and tested. George to implement cleaner AIDA-level state change interface.
Fix AIDA service crashes on VAX (or be able to detect and self correct)George, Greg9/22/22: Many potential non catching of errors found by George and changes to server-side code made, cannot induce server failures by testing. Need to operationally observe to see if fixes are good.





...

Software Development Workflow

All production software must be under some form of version control. In general: code with a larger audience of users or that is a significant dependency of downstream software should be managed more carefully.

Master repositories can be found here: /afs/slac/g/cd/swe/git/repos/slac/FACET/

"Production" HLAs live in a number of location, mainly $TOOLS/python and $TOOLS/matlabTNG


How to create a new repo

  1. navigate to the /afs/ prod directory and mkdir <repo_name>.git
  2. run git init --bare to instantiate a new empty repo
  3. (if using GitHub) make a new GitHub repo with the same name
  4. clone the master repo into a work directory (can be anywhere, /afs/-space, DMZ or prod): git clone ssh:///afs/slac/g/cd/swe/git/repos/slac/FACET/<repo_name>.git
  5. do work, then git commitgit push
  6. (after implementation/deployment) clone the master repo into a production repository

Once you create a new repo or clone one, there are two workflows: one simple command-line only way to use git, or also using the SLAC GitHub to enable some more formal code review processes.

Repo mirroring with GitHub:

GitHub is hosted on the public internet. In order to store production software there, we need to use a "relay" repo that lives on the DMZ network to facilitate pushing/pulling changes between GitHub and the local repo on the SLAC network. 

  1. ssh to centos7, navigate to /u/gu/zack/github_relay/
  2. run python relay_setup.py <prod_repo_name> <github_repo_name> to setup a "relay repository" used to sync /afs/ and GitHub. This script will:
    1. git clone the repo into the github_relay directory
    2. git add remote github git@github.com:slaclab/<github_repo_name>.git
    3. add <repo_name> to /u/gu/zack/github_relay/tracked_repos.txt

Direct push to master (for minor changes or lower-impact software):

  1. from your work directory: git commit, git push origin master
  2. from the production directory, and git pull origin master

Feature-branches with GitHub (for major changes or high-impact software):

This process will be automated in future, but for now relies manually using the script: /u/gu/zack/github_relay/sync_github.py

  1. Setup relay mirroring to GitHub as described above
  2. from your work directory for the repo in question, make a new branch: git branch <branch_name>
  3. make changes, commit them to <branch_name> and push the branch to origin

To deploy software to production

  1. run git pull origin master in the production repository

Using sync_github.py

  • to sync prod → GitHub: $ python sync_github.py push <repo name> <(optional) branch name>
  • to sync GitHub → prod: $ python sync_github.py pull <repo name> <(optional) branch name>

...

Legacy Task Tracking

These are the HLA tasks as they existed as of 01/2024. This list content is archival.

Preferred development workflow with git repository:

  • Create new development branch for work in personal clone of repo
  • Do work and test
  • Merge in any recent changes from main branch
  • Push your branch, email Glen to evaluate & merge into main branch

Generic tasks/ideas

TaskStatusAssigned ByActively Worked on by...
Full lists of PVs used in HLAs accessible from each help menu
GlenSharon
Complete documentation for each HLA & generic controls/modeling interface
Glen
Remove remaining dependencies on legacy Matlab2012 & "matlab model" code
Glen
Remove instances of direct use of LabCA - move everything over to using PV class in readiness for implementation of PVANeeds doing by mid-2023?Glen
Faster list-based caget operations in PV class + improve first-time calls (speed up LiveModel initialization)
Glen
Implement asyn operations when move to >Matlab2021
Glen
Extend matlab server model to facet-srv01?
Glen
Change default range of Schottky Scan GUI
LoneySharon
Automation of 10-3/10-4 phase scans (in Schottky GUI or phase scan GUI)To be implemented into new phase scan GUILoneyBuschmann
Add Logbook feature to BSA GUI
LoneySharon

...