-
Notifications
You must be signed in to change notification settings - Fork 213
CIME Tag Naming Conventions
Tags of the main cime branches (master, maint-*, etc.) are named
cimeX.Y.Z
. These tags roughly follow semantic versioning
conventions. See Semantic Versioning 2.0.0 for details.
Consider the situation where a new tag is wanted between two existing
tags - say, between cime5.8.3
and cime5.8.4
. In this case, the new
tag should be considered a pre-release tag, and should be named
cime5.8.4-1
. If additional new tags are needed between cime5.8.3
and
cime5.8.4
, they will appear like this:
cime5.8.3
< cime5.8.4-1-1
< cime5.8.4-1
< cime5.8.4-2
< cime5.8.4
That is, to introduce a tag before some other tag foo
, the new tag
will be named foo-1
, unless there is already a tag named foo-1
, in
which case the tag should be named foo-2
, etc.
Sometimes it is necessary to create long lived branches corresponding to releases of external software.
These branch names should reflect the name of the external software package (eg ufs_release_v1.0
, cesm2.1
, etc)
and tags on the branch should include the branch name: ufs_release_v1.0/cimex.x.x_001
Tags of commits that do not appear on one of the main branches should be
named like branch_tags/cime5.7.9_a01
. This would be a tag of a branch
off of cime5.7.9
. If another tag is needed that follows on from this
one, it would be called branch_tags/cime5.7.9_a02
. If, on the other
hand, a completely different branch is needed off of cime5.7.9
, then
it would use a b
rather than an a
: branch_tags/cime5.7.9_b01
.
If a branch starts from an untagged commit on master, use the last tag on master in the branch tag name.
These conventions have been discussed in https://github.com/ESMCI/cime/issues/1465 and https://github.com/ESMCI/cime/issues/3056 .