Print

Print


Hi,

Here is the full procedure for making a PR in hps-java, including how you should structure your development workflow:

(Anything below with a "$" in front means you can execute the command in your shell.)

1) Create a github issue describing the changes you plan on making.

https://github.com/JeffersonLab/hps-java/issues/new

Assign the issue to yourself and give it the "Enhancement" tag for new functionality or "Bug" if you are fixing some problem.

Set the Milestone to "v4.0" which will be the next release.

2) Create a local development branch in hps-java from an up-to-date copy of the master.

$ cd hps-java; git checkout master; git pull; git checkout -b iss1234

The '1234' here is replaced by the actual issue number assigned automatically by the issue tracker.  (You can see this on the webpage for the issue you created in step #1.)

3) Add files to commit that you have changed or added on this branch (obviously the file names I use below are bogus).

$ git add someNewFile aFileIChanged

4) Commit the changes to these files.

$ git commit -m "I changed some stuff and this is my detailed commit message."

These files are now "staged" which means they will be sent to github next time you push.

5) Push your local branch to the github repo.

$ git push -u origin iss1234

Probably you will have to type your github username and password here, unless you have your SSH keys setup properly.

This will create the remote 'iss1234' branch which your local copy will now track, meaning that if someone else also pushes to this branch (like your PR reviewer), you can 'git pull' to get these updates.

6) Now you are ready to open a PR for your changes.

https://github.com/JeffersonLab/hps-java/compare

In the second dropdown box that says "compare: master" select your development branch (e.g. iss1234 in this example).

Click the "Create pull request" button.

Give the PR a description and provide detailed information on what you changed.

Select an appropriate reviewer by clicking on the gear icon next to "Reviewers".  

For now, you can assign all PR to me (username JeremyMcCormick), and I'll change it if I think someone else should do it.

Then click "Create pull request" again.

7) You should have a new PR now that is visible on github in the PR list (empty right now).

https://github.com/JeffersonLab/hps-java/pulls

8) You now need to wait for your code to be reviewed (and possibly tested depending on what was changed).

The reviewer will provide feedback on changes they want to see before the request is merged.

9) Make changes requested by the reviewer using the typical 'git add', 'git commit' and 'git push' commands from your branch.

10) Once changes have been made to their satisfaction, the reviewer will approve the PR and your branch will be merged into master.

Now the master will have your changes so you can pull them into your local copy.

$ git checkout master; git pull

11) You can also delete the local and remote branches if you are done with them...

Delete the local branch:

$ git branch -d iss1234

Delete the remote branch:

$ git push origin --delete iss1234

This seems more complicated than it is -- I have just explicitly listed all the possible steps here so everyone is clear about how it works.

Please let me know if you have questions/comments.

--Jeremy

########################################################################
Use REPLY-ALL to reply to list

To unsubscribe from the HPS-SOFTWARE list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=HPS-SOFTWARE&A=1