Versions Compared

Key

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

Note: In the below steps, <version_branch> should be replaced with the version branch of Daffodil you are working on based on the Branch Workflow.

...

Tester creates a new bug branch

Code Block
$ git fetch --prune origin
$ git checkout -b <relevant_branch_name> --track origin/<version_branch>

...

  1. Make sure any associated tests are in scala-debug, not scala
  2. Reopen JIRA ticket and provide the following:
    1. Expected result and actual result. Include error and traceback if applicable.
    2. Name and location of failing test(s)
  3. Assign ticket to original developer
  4. Once a Test Case has been written (See Step ), under Test Execution in Testlink, mark test is “Failed”
  5. Click bug button Image Removedand enter JIRA ticket number (e.g. DFDL-123)

...

Completing test development includes repeating the following steps many times until you are satisfied with your test coverage: 

Code Block
languagebash
$ # edit files
$ git add <files>
$ git commit
$ git fetch --prune origin
$ git rebase origin/<version_branch>
$ sbt test

When creating tests it is helpful in sbt to only run a single test (or small group of tests) at a time:

From the sbt prompt:

Code Block
> test-only [test class] -- --tests=<regex>

For example:

Code Block
> test-only edu.illinois.ncsa.daffodil.section15.choice_groups.TestChoice -- --tests=test_choiceDelim\d+

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.

 

When finished creating tests, tester ensures changes work with the latest upstream

Code Block
$ git fetch --prune origin
$ git rebase origin/<version_branch>

 

Tester squashes commits into a reasonable patchset.

Code Block
$ git rebase -i origin/<version_branch>

Please pay attention to commit message format

Tester ensures all tests pass

Code Block
$ sbt test

...

Code Block
languagebash
$ git checkout <version_branch>
$ git reset --hard jira-123
$ git push origin <version_branch> # do not use the --force option here 

If commit was a bug fix or a test on <version_branch> and a newer version branch exists:

  1. Tester merges the change into the newer version branch, and fixes any conflicts:

    Code Block
    languagebash
    $ git checkout <new_version_branch>
    $ git merge <version_branch>
  2. Tester ensures all tests pass

    Code Block
    $ sbt test

    If tests fail due to incorrect conflict resolution, changes should be made and amended to the merge commit until tests pass:

    Code Block
    languagebash
    # make changes
    $ git add <files>
    $ git commit --amend
  3. Tester pushes changes

    Code Block
    languagebash
    $ git push origin <new_version_branch> # do not use the --force option here

...

Tester deletes bug branch

Code Block
$ git branch -D jira-123

...

  1. Reference the new tests in the ticket

...

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