Versions Compared

Key

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

...

Info
This tutorial was built for unix machines, so if you have windows, you should consider running a virtual machine setting up WSL through SLAC IT if you don't want to figure out the equivalent windows commands. if you don't want to do that, SLAC offers NoMachine as an option for running Linux, Stanford offers a virtual desktop that runs macOS, or you can install your own ubuntu in virtualbox.

...

  1. Make a GitHub account and record your username (personal or work email is fine)
  2. Add your ssh key to your GitHub account
  3. Navigate to the #comp-general Slack channel 
  4. Create a SLAC GitHub access workflow (the + with the lightning bolt at the bottomWorkflow button at the top near the channel name). An admin will review and grant you access
  5. Image Removed
  6. Image Removed
  7. Image Removed
    1. Image Added
    2. Image Added


Info
titleARM Macs

Note for anyone using ARM Macs: prefix any conda command in the following sections with CONDA_SUBDIR=osx-64 because the current builds do not support ARM. For example, instead of conda install use CONDA_SUBDIR=osx-64 conda install 

Installing PyDM

The basic steps can be found in the official documentation, but some quality of life improvements include:

...

  1. Run conda install --update-all --force-reinstall -y -c conda-forge bmad
  2. Run git clone git@github.com:slaclab/lcls-lattice.git
    1. This repo can live wherever, just remember where it lives
    2. You may need to request access
  3. Set the LCLS_LATTICE environment variable to wherever the repo in step 2 lives
  4. Run git clone git@github.com:slaclab/simulacrum.git and remember where it lives
  5. Append the path from step 4 to your python path in your environment variable file using export PYTHONPATH="${PYTHONPATH}:path/to/simulacrum/repo"Navigate to the newly cloned simulacrum repo and run pip install . 
  6. Run python <service directory>/<service>.py for any service you want running
    1. This will eat a terminal tab. I strongly advise against backgrounding because you'll need to kill the process eventually, and if you background it you'll either need to remember the process ID or find it later

    2. For SRF work specifically, we typically only need the sc_rf_service so the command would be python sc_rf_service/sc_rf_service.py
      1. All other services typically need the model service running with the appropriate beam line flag (python model_service/model_service.py [lcls classic | cu_hxr | cu_spec | cu_sxr | sc_hxr | sc_sxr])

...