...
While production versions of operations software live in ~/opsTools, they also remotely live on GitHub, in the SLAC GitHub organization called SLAC Lab. Access to it isn't granted automatically, but it's pretty easy to get! Make a GitHub account (or use one that you already have) and send your username to Brian Van Klaveren (email bvan@slac.stanford.edu or ping brianv on Slack) asking for access. Note: This step has very high potential to end up out of date if someone else ends up managing SLAC Lab, so keep that in mind.
Once youOnce you've been added, navigate over to the ops team on SLAC Lab and request to join, and once you've done that, add your rhel6-64 ssh key to GitHub.
...
Adding SSH Keys to GitHub
...
- Go to https://github.com/slaclab/devPanel
- Click "Fork" in the upper right corner
- Click the link that says [Your User Name]/devPanel (Mine says that I've already forked it, but yours should ask you where you want to fork it)
- Click the green "Clone or Download" button and copy the ssh path. If you see what looks like a URL, click the blue "Use SSH" link right above it
- Back on an OPI (or ssh'ed in), type "set_profile [Your Username]". This should take you to your personal physics directory. Make a new devPanel subdirectory
- In that subdirectory, run "git init"
- Still in that subdirectory, type "~/mgibbs/link_repo_to_github/link_repo_to_github.sh -i" and follow the prompts (if you don't feel like thinking about the AFS repo, you can use this default, but you should paste in the GitHub ssh link you got in Step 4 for your fork or you'll connect to mine! You'll get slightly different messages since I've already run this before)
- What is AFS? It's the file system that exists in mcclogin and rhel6-64. You can't access it from lcls-srv01 (the physics account that launches when you launch a terminal from an OPI), but you can think about it like another directory tree that you have to ssh into to see.
- What is AFS? It's the file system that exists in mcclogin and rhel6-64. You can't access it from lcls-srv01 (the physics account that launches when you launch a terminal from an OPI), but you can think about it like another directory tree that you have to ssh into to see.
- Type "git pull origin master" and type in your password when prompted (again, messages will be slightly different since I've done this before)
- Type "source use_pydm.sh"
- Type "mkdir [Your Name]" and head into that directory
- Type "designer &"
- Sometimes you get an error saying something about backup files. Ignore it(: In the program that opens, click "Widget" and then "Create"
- In the Widget box on the left, scroll all the way down and drag a drop a PyDMShellCommand somewhere in the widget that popped up in the last step
- Right click anywhere in the widget that isn't the tiny shell command button, hover over "layout" at the bottom, and click "lay out in a grid"
- In the Object Inspector in the top right, rename that button something more descriptive by double clicking it, typing the new name, and pressing enter
- Right click the button itself and click "Change text..."
- Rename it something more descriptive and press enter
- In the property/value table in the middle right, scroll all the way down to "commands," double click the value box (it'll be blank at first, and then it'll be a button that says "Change String List"), Click "New", type "pydm ~/opsTools/devPanel/example/example.py", then click "OK". This will launch the production example panel!
- Save this file as devPanel[Your Name].ui
- From here, open opsDevPanel.ui from the parent directory (~/[your username]/devPanel)
- Drag and drop a PyDMRelatedDisplayButton onto the newly opened devPanel.ui
- Right click rename the button itself and its object name like before
- Add the path to your personal dev panel in your subdirectory and save
- Back in your terminal in the devPanel directory, run "pydm opsDevPanel.ui" and you should see your creation! Feel free to play with it until it looks good to you!
- Run "git status" to see what's changed. It should be opsDevPanel.ui and a new folder with your name
- Run "git add [YOUR NEW FOLDER]" and "git add opsDevPanel.ui", then run another git status. They should both be staged for commit
- Run git commit -m "adding [YOUR NAME]'s dev panel"
- Run "git push origin master" and log in when prompted
- Back on your fork on GitHub, click "New Pull Request"
- Click "Create Pull Request"
- Add slaclab/ops as a reviewer (by clicking on the gear and then searching), and then click "Create pull request"
- An admin will look at it to make sure that nothing important got deleted, and if they approve it, they'll merge it into production!
...