Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Add links to more pages.

...

All ACME developers should be familiar with the basics of development with git including cloning the ACME 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 Tutorial and the Development Quick GuideDevelopment Reference and Commit message template.

Group Leads and Task leads coordinate and schedule development relevant to their group and/or task.   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).  Group leads should make sure developers are finishing their work and getting it merged to the ACME "master" branch.

...

A branch for every feature:  Group and task leads and developers should define units of code development that are 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 each unit of work.  These branches are called "feature branches" in our documentation.  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.   New development should generally start as a branch from "master".  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 Software Engineering hub should be involved in planning.

...

"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 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:

...