Versions Compared

Key

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

The Big Picture of

...

E3SM Model Development

All ACME E3SM developers should be familiar with the basics of development with git including cloning the ACME E3SM repo, making a branch, committing changes and submitting a Pull Request on Github.  Also writing good commit messages and pull request descriptions.   For more info see, the Git TutorialDevelopment Getting Started GuideDevelopment Reference and Commit message template.

Group Leads and Epic leads coordinate and schedule development relevant to their group and/or epic.   They should have developers assigned to work on features in the order necessary to meet deliverables in the Roadmaps (the leads might also be the developers).  Epic leads should make sure developers are finishing their work and getting it merged to the ACME E3SM "master" branch.

Integrators:  every group has 2 or 3 Integrators who take completed feature branches and, if they meet the requirements, merge them to master.  See Integrator Guide for more info.

The Coupled Model Group established the timeline for major new features (especially from two or more groups) that are needed for the model, relevant testing criteria, and when the master should be tagged (using the Branch, Tag, and Version name conventions) all timed to meet ACME E3SM deliverables as defined in the Roadmaps.  Integrators should be aware of the Roadmap for their component.

...

Developing with externals:  some code in ACME E3SM has its primary development in another repo.  See Externals in the ACME E3SM code

"master" is always stable:  Our code development workflow ensure that master is always stable and can be used to start new development.

Finishing development by Testing and Merging: When the feature branch is done, the developer makes sure the acme_developer test suite passes (or the failures are expected).  When the test results are in order, the developer issues a "pull request (PR)", and designates an Integrator.  The Integrator conducts the code review, merges the feature branch into the "next" integration branch and tests the feature within the latest version of ACME E3SM using the acme_integration suite.  The integrator and developer may need to work together to resolve any issues that arise from the code review or testing in the "next" branch.  The integrator will then merge the branch into master.  Once merged to master, the branch is complete and the developer can move on to other topics.  See the Development Reference for more information.  In summary:

...