...
- Generic/Global
- Remove remaining dependencies on legacy Matlab2012 & "matlab model" code
- Remove instances of direct use of LabCA - move everything over to using PV class in readiness for implementation of PVA
- Beam stay clear plot vs Z (beam aperture vs Z, or acceptance vs delta E)
- Automation/tools to facilitate 7-hole alignment
- laser heater GUI
- MPS interlocking for EOS
- Klystron jitter report → should get an automated FTP update script process thing
- laser cathode auto-alignment software → meeting w/ LCLS injector AP to discuss methodology
...
- Orbit
- indicate TRIM operation in progress by disabling UI
- Orbit fitting tools
- Allow reference orbits to have names changed in Python Orbit Display Reference Orbit list
- Feedbacks
- tie DL10 set point directly to LLRF control (switch off "slow FB" on RF controller when FB on and vice-versa, increase gain)
- Implement full PID controller coefficients to each feedback, setup and test and include P or PID as option (at least for DL10)
- Implement use of LI17 fast phase shifters for BC20 feedback through SCP multiknob controls
- Auto-adjust gains for changes in beam rate
- Add FFS transverse feedback
- Wirescans
- Wire scanner GUI not set wire speed to such a low speed after a scan that the following scan fails if you change planes for IPWS1.
- MDL Feedforward
- S20 Config
Orphaned/Unknown Tasks
These are software tasks that are in an unknown state or not currently being worked
...
...
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
These instructions are written assuming some preexisting knowledge of version control & some basic git knowledge. If you have questions ask Zack.
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/
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.
...
...
<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 remote add 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:
"Production" HLAs live in a number of location, mainly $TOOLS/python
and $TOOLS/matlabTNG
These instructions are written assuming some preexisting knowledge of version control & some basic git knowledge. If you have questions ask Zack.
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.
...
/u/gu/zack/github_relay/
...
git clone
the repo into thegithub_relay
directorygit remote add github git@github.com:slaclab/<github_repo_name>.git
- add
<repo_name>
to/u/gu/zack/github_relay/tracked_repos.txt
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/afs/
- use
sync_github.py
to push the branch to GitHub - open a pull request, assign reviewers, review code & merge to master
- use
sync_github.py
to pull the updated master branch from GitHub back to/afs/
- deploy to production
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 content is archival.
Expand | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Orphaned/Unknown TasksThese are software tasks that are in an unknown state or not currently being worked
|
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/afs/
- use
sync_github.py
to push the branch to GitHub - open a pull request, assign reviewers, review code & merge to master
- use
sync_github.py
to pull the updated master branch from GitHub back to/afs/
- deploy to production
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 content is archival.
Old wishlist stuffOptics
LEM
Feedbacks
MDL FeedforwardPreferred development workflow with git repository:
Generic tasks/ideas
AIDA-PVA
F2_Orbit
F2_LEM
F2_Matching
F2_Feedback
MDL_FeedForward
F2_Wirescanner
S20 Configurator
S20 IP Waist from BPM Jitter
|
SLC Control System Notes
Ken Brobeck's How to restart some VMS processes guide.
...