- Jira JIRA bug is created, status is "Open"
- Jira JIRA bug is assigned to implementor
- Implementor "Starts Progress" in Jira JIRA bug
Implementor creates a new bug branch
$ git fetch origin
$ git checkout -b review-sdl-123 origin/master
The branch name must use the following naming convention:
branch with the following naming convention:
review-xxx-YYY-very_short_desc
xxx
= your initials, in lower caseYYY
= Jira JIRA bug numbervery_short_desc
is an optional = optional description of the bugNote that the Jira JIRA bug number is mandatory. This means all changes must have an associated Jira JIRA bug.
$ git fetch origin
$ git checkout -b review-sdl-123-foo origin/master
Also note that the description has been left off in the following examples for brevity.
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 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 JIRA bug, placing bug "In Review" and assigns to SE
- SE creates review in Crucible and assigns to reviewer
- SE assigns Jira JIRA bug to reviewer, adding Crucible ID to the comments
Reviewer reviews patchset. If changes are necessary:
- Reviewer assigns Jira 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 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 JIRA bug back to implementor, adding a comment that changes are necessary
- Reviewer assigns Jira 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 JIRA bug, adds commit ID in comments, and assigns to TL