Preferred development workflow with git repository:
...
Accelerator Physics Software Work Tracking
Projects/Upgrades
Task | Application/area | Person(s) Responsible | Status | Priority | Notes | GitHub |
---|---|---|---|---|---|---|
| Global | Cesar, Perez, Buschmann | WIP | 1 | ||
| LEM | Buschmann | 2 | Waiting on model server deployment | ||
| Phase Scans | Buschmann | WIP | 3 | rudimentary functionality, needs with-beam test | |
| Global | Buschmann | WIP | 3 | discussing how to implement non-invasively with EED | |
| LAME | Parker | WIP | 3 | ||
Bug Fixes
Issue | Application/area | Person(s) Responsible | Status | Priority | Notes | CATER |
---|---|---|---|---|---|---|
| Feedbacks | Buschmann | WIP | 1 | need to run feedback process locally & observe failure modes | 166749 |
| Global | Buschmann | WIP | 2 | managed to launch server, but haven't figured out how to launch GUIs yet | |
| Optics | Buschmann | 2 | 166714 | ||
| LEM | Buschmann | 2 | 166618 | ||
| S20 Config | Buschmann | 3 | |||
| Sextupole | Buschmann | 3 | ancient CATER - maybe not an issue anymore? needs discussion | 117540 | |
Standby Tasks / Wishlist / Brainstorm
...
These are software tasks that are in an unknown state or not currently being worked
Task | Last Person Responsible | Status |
---|---|---|
Full lists of PVs used in HLAs accessible from each help menu | Sharon | |
Change default range of Schottky Scan GUI | Sharon | |
Add Logbook feature to BSA GUI | Sharon | |
Implement interface to SCP corr plots | George, Glen | 10/22/22: Implemented by George, documentation on AIDA-PVA website, needs testing |
Feedback HSTA bit control (be able to change Feedback → Compute) | George, Glen | 9/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, Greg | 9/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
- navigate to the
/afs/
prod directory andmkdir <repo_name>.git
- run
git init --bare
to instantiate a new empty repo - (if using GitHub) make a new GitHub repo with the same name
- 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
- do work, then
git commit
&git push
- (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.
- ssh to
centos7
, navigate to/u/gu/zack/github_relay/
- 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:git clone
the repo into thegithub_relay
directorygit add remote github git@github.com:slaclab/<github_repo_name>.git
- add
<repo_name>
to/u/gu/zack/github_relay/tracked_repos.txt
Direct push to master (for minor changes or lower-impact software):
- from your work directory:
git commit
,git push origin master
- 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
- Setup relay mirroring to GitHub as described above
- from your work directory for the repo in question, make a new branch: git branch <branch_name>
- make changes, commit them to <branch_name> and push the branch to origin
To deploy software to production
- 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
Task | Status | Assigned By | Actively Worked on by... |
---|---|---|---|
Full lists of PVs used in HLAs accessible from each help menu | Glen | Sharon | |
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 PVA | Needs 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 | Loney | Sharon | |
Automation of 10-3/10-4 phase scans (in Schottky GUI or phase scan GUI) | To be implemented into new phase scan GUI | Loney | Buschmann |
Add Logbook feature to BSA GUI | Loney | Sharon |
...