Versions Compared

Key

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

...

Task Team Leads, Chief Scientist, and Chief Computational Scientist coordinate the order that major new features (especially from two or more tasks teams) are added to 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 deliverables.  Integrators should be aware of the overall schedule for their component.

A branch for every feature:  Developers should find some unit of work that is big enough to be relevant to others, but simple enough that it can be called one feature (or perhaps a couple of highly-interdependent features) and make a branch for it.  The developer should make commits that are minimal atomic units of work to complete the feature that the branch seeks to implement.  This separation makes it easier to review and debug later.   Avoid New development should always start as branch from "master". Try to avoid creating "large" branches that contain many features and touch dozens of files.   If a large branch is needed for some major development, the SE hub should be involved in planning.

Bug fix branches:  When a bug is found, the branch for developing a fix should start from the commit that introduced the bug.

Focus on your branch:  While working on their branch, developers should focus on the work necessary to complete the branch and not worry about what else is going on.  In particular, there is almost never a need to "merge from master" or "stay current" with development going on in master or other branches.   If a developer thinks a merge from master or another branch is necessary to complete their work, they should check with an Integrator first.

Testing and Merging: When the feature branch is done, the developer performs relevant testing, issues a "pull request", and designates and an Integrator.  The Integrator conducts the code review, performs any additional testing and merges the branch to master.   The integrator and developer work together to resolve any issues that arise from the code review or testing.  Once merged to master, the branch is complete and the developer can move on to other topics.

...