Versions Compared

Key

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

...

  1. Go to https://github.com/slaclab/devPanel
  2. Click "Fork" in the upper right corner 
  3. 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)
  4. 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
  5. 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
  6. In that subdirectory, run "git init"
  7. 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)
  8. Type "git pull origin master" and type in your password when prompted (again, messages will be slightly different since I've done this before)
  9. Type "source use_pydm.sh"
     
  10. Type "mkdir [Your Name]" and head into that directory
     
  11. Type "designer &"
  12. Sometimes you get an error saying something about backup files. Ignore it(: In the program that opens, click "Widget" and then "Create"
     
  13. 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
  14. 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"
     
  15. 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
     
  16. Right click the button itself and click "Change text..."
     
  17. Rename it something more descriptive and press enter
  18. 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! 
  19. Save this file as devPanel[Your Name].ui
  20. From here, open opsDevPanel.ui from the parent directory (~/[your username]/devPanel)
  21. Drag and drop a PyDMRelatedDisplayButton onto the newly opened devPanel.ui 
  22. Right click rename the button itself and its object name like before
  23. Add the path to your personal dev panel in your subdirectory and save
     
  24. 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!


  25. Run "git status" to see what's changed. It should be opsDevPanel.ui and a new folder with your name
  26. Run "git add [YOUR NEW FOLDER]" and "git add opsDevPanel.ui", then run another git status. They should both be staged for commit
  27. Run git commit -m "adding [YOUR NAME]'s dev panel"
  28. Run "git push origin master" and log in when prompted
     
  29. Back on your fork on GitHub, click "New Pull Request"
     
  30. Click "Create Pull Request"
  31. Add slaclab/ops as a reviewer (by clicking on the gear and then searching), and then click "Create pull request"
  32. 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!

...

Afterword: Updating Your Personal Repo

Note that the tutorial didn't say anything about updating your personal copy if the production copy gets updated by someone else. There are two ways to do this, and it's really your choice which one to do.

...

GitHub Method

  1. In the SLAC Lab production repo, click "Pull Request" and then "New Pull Request"
  2. Click on "Compare across forks" and then pick your fork in the left hand drop down menu
  3. Click "create pull request", which will take you to the same page we had in the tutorial! The only difference here is that you don't need any reviewers because you're merging it into your personal fork.
  4. You can just immediately merge it in on the next page by clicking "merge pull request"


    Info

    Sometimes it'll say that it can't be merged automatically. This usually happens when you've edited the same file as one that got updated in production. One way to avoid this problem on GitHub is to always keep your fork's master up to date with production and do all your work in a different branch and just deal with the merge conflicts locally

  5. Using the steps in the tutorial, ssh into rhel6-64 and navigate to the repository you created with Matt's script and run "git --bare fetch origin master:master". Mine doesn't have output because it's already up to date, but yours should
  6. Back in your physics devPanel directory, run "git pull origin master", and that should be it! Again, your output will be different from mine because mine is already up to date.

...

Command Line Method

Info
This will rely heavily on git remotes. If you'd like to learn more about them, check this out!

...

Pulling From the Local Production Copy

Assuming that you trust the custodian of the local production copy to keep it up to date, this method is probably the easiest.

  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.

...