Versions Compared

Key

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

...

Info
If you don't have internet, this is a dump of the resources taken on 6/26/20
View file
nameGit – CS 61.pdf
height150
View file
nameThe Linux command line for beginner | Ubuntu | creating.pdf
height150

 


...

PyDM

PyDM is next generation EDM! It's basically a combination of EDM and PyQt (if you don't know what PyQt is, it's what we use to make Python GUIs). The goal is to eventually migrate all existing Python GUIs to PyDM, and to make any new ones going forward in PyDM, all while version controlling them using git and GitHub. The following tutorial will walk you through making a change to an existing PyDM panel and going through the review process to release it into production.

...

  1. Set Up GitHub
  2. Create a personal copy of the production software
  3. Make sure you're either in the freshly copied repo in lcls-srv01 or mcclogin (step two left us in rhel6-64 if you're taking that route, so just ssh over to mcclogin)
    1. If on mcclogin, make sure to type "bash" and then "source /afs/slac/g/lcls/tools/script/UENVS.bash"
      Image Added
  4. Type "source use_pydm.sh"
     
  5. Type "mkdir [Your Name]" and head into that directory
     
  6. Type "designer &"
  7. Sometimes you get an error saying something about backup files. Ignore it(: In the window that pops up, click "Widget" and then "Create"
     
  8. 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
  9. 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"
     
  10. 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
     
  11. Right click the button itself and click "Change text..."
     
  12. Rename it something more descriptive and press enter
  13. 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! 
  14. Save this file as devPanel[Your Name].ui
  15. From here, open opsDevPanel.ui from the parent directory (~/[your username]/devPanel)
  16. Drag and drop a PyDMRelatedDisplayButton onto the newly opened devPanel.ui 
  17. Right click rename the button itself and its object name like before
  18. Add the path to your personal dev panel in your subdirectory and save
     
  19. 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!


  20. Run "git status" to see what's changed. It should be opsDevPanel.ui and a new folder with your name
  21. Run "git add [YOUR NEW FOLDER]" and "git add opsDevPanel.ui", then run another git status. They should both be staged for commit
  22. Run git commit -m "adding [YOUR NAME]'s dev panel"
  23. Push those changes to Github
    1. If on lcls-srv01, run "git push origin master" and log in when prompted
       
    2. If on mcclogin, ssh to rhel6-64, re-navigate to the repo, and run "git push origin master"
  24. Back on your fork on GitHub, click "Pull Request"
     
  25. Click "Create Pull Request"
  26. Add slaclab/ops as a reviewer (by clicking on the gear and then searching), and then click "Create pull request"
  27. 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!

...

  1. In your physics devPanel directory, run "git remote add upstream ~/opsTools/devPanel"

  2. Now you can just run "git pull upstream master" whenever you'd like to bring your local copy up to date with production!

...


...

Pulling from the SLAC Lab Production Copy

If you don't trust the custodian of the local production copy to keep it up to date, then you can connect your bare AFS repo directly to SLAC Lab's production repo. 


  1. Using the steps in the tutorial, ssh into rhel6-64, navigate to the bare repo you created with Matt's script, and run "git remote add upstream git@github.com:slaclab/devPanel.git" (gotten from the SLAC Lab devPanel page, much like we got it for our personal forks in the tutorial)

  2. Now, similar to in the GitHub method, you should run "git --bare fetch upstream master:master"  (yes, I have an error message, but it's for stupid reasons. Yours should be fine)
  3. And now it's the same step as in the GitHub method, running "git pull origin master" from your devPanel physics directory.

...