Versions Compared

Key

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

...

Background

ACME keeps nearly all of its code in a single repository.

To help track development, branch and tag names in the ACME source must follow the ACME convention.ACME branch follow conventions given here.

ACME Version Names

ACME will generally follow Semantic Versions http://semver.org.

Major versions will be labeled as "vX.0".

Minor versions will be labeled as "vX.Y" with Y>0.

Bug-fixes and other changes made to a released version will be labeled "vX.Y.Z" with  Z>0.

Major version zero (0.Y.Z) is for initial development. Anything may change at any time.

Development or Topic Branch Names

What: A Development or "Topic" branch is made for any code changes needed for ACME.  This can be new development, but fixes, merges from CESM, or maintenance updates.

Who: Any ACME developer can create a topic branch.  They can be for development or also to mark a place in the code.

Convention:  ACME branch names will have the form:

...

  • Use lower-case for everything.
  • Use hyphens instead of underscores.
  • one name for the github username.  
    • This is the person in charge of the branch and not necessarily the only person working on it.
    • We need The ACME SE team needs one person to act as point-of-contact to answer questions about the branch and take requests for merging.
  • Task team leads can and should impose additional conventions for <source code are area or component> and <feature-description>.

Examples

 

rljacob/machines/add-argonne-cluster 

rljacob/drv/new-driver

worleyph/scripts/more-timers

douglasjacobsen/homme/new-dynamics maltrud/machinefiles/mustang
singhbalwinder/atm/polar-mods 
tangq/CAM/RRM  
douglasjacobsen/clm/4.5.72

Permanent Branch Names

What:  The ACME source code will have permanent branches used for development and maintenance of the code.

Who:  Only Integrators can change or create new permanent branches.

Convention:

master:   The "trunk" or main branch of the code.  Contains latest stable code.  Always in a releasable state.   Nearly all development should start as a branch from master.

next:   A branch used for merging several topic branches for testing.  Used to test several features at once.   Is destroyed and re-created after the target group of features is merged to master.

maint-x.y:  A branch started when a release is made and used to provide updates and bug fixes for that release.  A "release branch".

Examples:

maint-0.0 - contains updates and bug fixes to v0.0

maint-0.1 - contains updates and bug fixes to v0.1

There is no such thing as the "main-0.0.1" branch.

Developers should avoid using "maint" in their topic branch names.

Tag Names

What: ACME will not tag every single merge into the ACME master.  ACME will use tags only to mark major and minor releases and bugfix releases.

Who:  Only integrators can create tags.  

Current tags

(tags in red have not yet been created)Updated version of v0.0 used by ACME v0 tuning runs and initial coupled simulations

ACME master branch
TAGDescription
v0.0

Equivalent to cesm1_2_rel06. Common ancestor to all of ACME

v0.0.1

 

v0.0.2

Recent commits with updates for running on NERSC, Titan and Mira
v0.1OVERTHEFENCE. This tag will be created when we have completed the v0.1 work described in the proposal
... 
v0.5NEWICE or some other new feature.
... 
v1.0FINAL