Versions Compared

Key

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

...

Implementor creates a new bug branch

Code Block
languagebash
$ git fetch origin
$ git checkout -b review-sdl-123 origin/master

The branch name must use the following naming convention:

review-xxx-YYY-very_short_desc

PartDescription
xxximplementor initials, in lower case
YYYJIRA bug number, with DFDL prefix removed
desca short description (optional)

Note that the JIRA bug number is mandatory. This means all changes must have an associated JIRA bug.

Also note that the description has been left off in the examples for brevity.
 

...

Implementor performs all development in bug branch, this includes repeating the following steps many times until you are ready for review:

Code Block
languagebash
$ # edit files
$ git add <files>
$ git commit
$ git fetch origin
$ git rebase origin/master
$ sbt test
$ git push --force origin review-sdl-123

Notice 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 read A Note About Git Commit Messages for the correct commit message format. 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 is more than one bug related to the commit, separate them with commas.

Additionally, tests should be created during this process to convince yourself that your changes are correct. These tests should be placed in the "src/test/scala-new" directory.
 

...

When finished developing, implementor ensures changes work with the latest upstream

Code Block
languagebash
$ git fetch origin
$ git rebase origin/master
$ sbt test

    

...

Implementor squashes commits into a reasonable patchset.

Code Block
languagebash
$ git rebase -i origin/master

Please pay attention to commit message format
 

...

Implementor ensures all tests pass

Code Block
languagebash
$ sbt test

    

...

Implementor pushes to ncsa opensource servers for review

Code Block
languagebash
$ git push --force origin review-sdl-123

    

...

Reviewer reviews patchset. If changes are necessary:

...

Implementor ensures changes work with the latest upstream

Code Block
languagebash
$ git checkout review-sdl-123
$ git fetch origin
$ git rebase origin/master 

    

...

Implementor squashes review changes into a reasonable patchset

Code Block
languagebash
$ git rebase -i origin/master 

Please pay attention to commit message format
    

...

Implementor ensures all tests pass

Code Block
languagebash
$ sbt test 

    

...

Implementor sets master branch to bug branch and pushes

Code Block
languagebash
$ git checkout master
$ git reset --hard review-sdl-123
$ git push origin master # do not use the --force option here 

    

...

Implementor deletes bug branch (both remote and local)

Code Block
languagebash
$ git push --delete origin review-sdl-123
$ git branch -D review-sdl-123 

    

...

Implementor chooses "Review Accepted" in JIRA bug, adds commit ID in comments, and assigns to TL

    

...

this page has moved to https://cwiki.apache.org/confluence/display/DAFFODIL/Code+Contributor+Workflow