Skip to content

Workflow

Andrea Alfonsi - INL edited this page Jul 31, 2020 · 2 revisions

Development workflow

Clone or update the repository

The first time, you need to clone the repository on your local machine

git clone https://github.com/idaholab/TEAL.git

or if you already have a clone, you just need to update it

cd TEAL
git pull

Create a new development branch

First, a ticket needs to be created in GITHUB under "Issues" describing the development. For this, click on "Issues" on the left and then "+ New Issue" on the top right.

After that, a new branch of the repository from "devel" can be created:

cd TEAL
git checkout devel
git checkout -b username/branch_name

Download an existing development branch

cd TEAL
git fetch
git checkout username/branch_name

Do development

To edit files use

git add -u

and to create new files in the repository, use

git add new_file
git commit

Push

Note that this assumes that:

git config --global push.default simple

is used.

git push --set-upstream origin username/branch_name

After the first push, then:

git push

can be used.

Merging

Go to https://github.com/idaholab/TEAL/pulls and click on "New Pull Request". Then select the branch you pushed, and add a description, and "Submit pull request".

Then, a peer reviewer that you designate can look at it and merge it.

Merging REMARKS

The "Pull Request" should represent a complete task but as small as possible. This improves the quality of the review process.

Input file changes

For input file changes, two things need to be done:

  1. Update the manual to describe the new file format.
  2. Email the mailing list about the change.

Developing Regression Tests

Regression tests for the python RAVEN framework and plugins are found in TEAL/tests. In order to add a new test, the following node must be included in the test file within the <Simulation> block:

<Simulation>
  ...
  <TestInfo>
    <name>framework/path/to/test/label</name>
    <author>AuthorGitLabTag</author>
    <created>YYYY-MM-DD</created>
    <description>
        Paragraph describing workflows, modules, classes, entities, etcetera, how they are tested, and any other notes
    </description>
    <requirements>RequirementsLabel</requirements>
    <analytic>paragraph description of analytic test</analytic>
    <revisions>
      <revision author="AuthorGitLabTag" date="YYYY-MM-DD">paragraph description of revision</revision>
    </revisions>
    ...
  </TestInfo>
  ...
</Simulation>

The <requirements> and <analytic> nodes are optional, for those tests who satisfy an NQA design requirement and/or have an analytic solution documented in the analytic tests document. Other notes on block contents:

  • name: this is the test framework path, as well as the name/label assigned in the tests file block. This is the path and name that show up when running the tests using RAVEN ROOK regression test system (run_tests).
  • author: this is the GITHUB tag of the author who constructed this test originally.
  • created: this is the date on which the test was originally created, in year-month-day YYYY-MM-DD XSD date format.
  • description: general notes about what workflows or other methods are tested.
  • requirements: (optional) lists the NQA requirement that this test satisfies.
  • analytic: (optional) describes the analytic nature of this test and how it is documented in the analytic tests documentation.
  • an additional node is optionally available to demonstrate significant revisions to a test.