- Jira bug is created, status is "Open"
- Jira bug is assigned to implementor
- Implementor "Starts Progress" in Jira bug
Implementor creates a new bug branch with the following naming convention:
review-xxx-YYY-very_short_desc
xxx
= your initialsYYY
= Jira bug numbervery_short_desc
is an optional description of the bugNote that the Jira bug number is mandatory. This means all changes must have an associated Jira bug.
$ git fetch origin
$ git checkout -b review-sdl-123-foo origin/master
Implementor performs all development in bug branch, this includes repeating the following steps many times until you are ready for review:
$ edit files
$ git add ...
$ git commit
$ git fetch origin
$ git rebase origin/master
$ sbt test
$ git push --force origin review-sdl-123-fooNotice the frequent commits and pushes. This is a great way to ensure we do not accidentally lose commits. But be careful when using the --force option, as that will replace whatever branch is on the server.
Also, please see the following link about the commit message format:
http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html
Please follow those standards, with the additional requirement that the last line should contain only the Jira bug number preceded by an empty line, e.g. "\nDFDL-123". If there are more than one bug related to the commit, separate them with commas.
- When finished developing, implementor ensures changes work with the latest upstream
$ git fetch origin
$ git rebase origin/master$ sbt test
Implementor squashes commits into a reasonable patchset.
$ git rebase -i origin/master
Please pay attention to commit message format
Implementor ensures all tests pass
$ sbt test
Implementor pushes to ncsa opensource servers for review
$ git push --force origin review-sdl-123-foo
- Implementor "Reviews Solution" in Jira bug, placing bug "In Review" and assigns to SE
- SE creates review in Crucible and assigns to reviewer
- SE assigns Jira bug to reviewer, adding Crucible ID to the comments
Reviewer reviews patchset. If changes are necessary:
- Reviewer assigns Jira bug back to implementor, adding a comment that changes are necessary
- Implementor makes changes to bug branch according to comments (following steps 5-9)
- If necessary, implementor pushes bug branch back to ncsa for re-review and assigns Jira bug back to reviewer. Repeat review process as necessary. Note, if changes are simple enough, re-review is not always necessary. Use your own judgment
- Reviewer assigns Jira bug back to implementor, adding a comment that changes are necessary
- Reviewer assigns Jira bug back to implementor, commenting that it is good to push
- Implementor ensures changes work with the latest upstream
$ git checkout review-sdl-123-foo
$ git fetch origin
$ git rebase origin/master Implementor squashes review changes into a reasonable patchset
$ git rebase -i origin/master
Implementor ensures all tests pass
$ sbt test
Implementor sets master branch to bug branch and pushes
$ git checkout master
$ git reset --hard review-sdl-123-foo
$ git push origin # do not use the --force option hereImplementor deletes bug branch (both remote and local)
$ git push --delete origin review-sdl-123-foo
$ git branch -D review-sdl-123-foo
Implementor chooses "Review Accepted" in Jira bug, adds commit ID in comments, and assigns to TL