Skip to content

CAM SE Workflows

goldy edited this page Aug 8, 2019 · 33 revisions

CAM SE Workflows

Enter a scientist branch into the SE workflow

Open a Pull Request

x. copy scientist branch to your fork

  1. Go to your CAMdev fork's GitHub page, and select the "Pull requests" tab:

  2. Create a new pull request using the "new pull request" button:

  3. Set the "base repository" to "NCAR/CAM", and the "base" to your branch of interest (likely "master"):

  4. Set the "head repository" to your CAM fork repo, and the "compare" to your newly created branch:

  5. If the phrase "Able to merge" is present, then select "create pull request":

  6. Add a title for your request, along with a description of what your pull request is doing. Fill out all fields in the template while removing any template comments. Be sure to list the issue(s) which are addressed by this pull request, taking care to use the correct syntax.

  7. Add a label (ideally one that matches the associated issue), along with the project and milestone, if applicable. Once finished, create the pull request.

  8. CAM software engineers will perform code review, add comments, and request any necessary changes.

  9. Make requested changes to personal branch (Following the above instructions for modifying your fork).

  10. Finally, the PR will be merged with upstream branch (e.g. "master"). Testing will be done, and if all is okay, the changes will be merged into the release branch.

Run CAM tests

  • On Izumi: Run <root>/test/system/test_driver.sh with CAM_FC=pgi and CAM_FC=nag
  • On Cheyenne: Run <root>/test/system/test_driver.sh with CAM_FC=intel
  • Fix any errors and/or document expected fails
  • If a science run is required (e.g., for answer changing updates or for new tests),

Make a CAM tag

  • Make sure all CAM tests have been run on the HEAD of the branch (e.g., master or release branch)
  • Update ChangeLog to reflect all changes since previous tag on branch (script?)
  • Commit to branch and push to proper remote
  • Make annotated tag with the ChangeLog summary as the tag commit message
  • Push the tag to the proper remote

Handle a pull request to master

Make a code change in release branch and master

Update development from master

Create a new release

Clone this wiki locally