Skip to content

Branch tag naming convention #3056

@billsacks

Description

@billsacks

What convention should we use for naming cime branch tags - by which I mean tags that aren't on one of our "main" branches (master, maint-5.6, etc.)?

I would propose using tags like this:

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

Here is an example commit graph:

        F--G
       /
A--B--C--D--E
       \
        H

In this example, the center line is master, commit C is cime5.7.9, F is branch_tags/cime5.7.9_a01, G is branch_tags/cime5.7.9_a02, and H is branch_tags/cime5.7.9_b01. Here there is a tag for each commit, but that wouldn't need to be the case.

Some key points of this suggested naming convention are:

  • It puts branch tags in their own name space so they aren't listed alongside the main cime tags.

  • It does not attempt to give a descriptive name to the branch. I often find that, once I have created a branch tag for one purpose, the next tag on that branch is for a completely different purpose. Instead, the purpose of each tag should be stated clearly in the commit message for that (annotated) tag.

  • It has numerical increments for changes along a given branch.

  • It provides for the possibility that there might be two completely different branches off of the same cime master tag (via the a/b distinction). (In practice this will probably be rare, but I wanted to accommodate that possibility.)

Do others like this convention, or would you propose something different?

(This is a follow-on from the discussion in #1465 . Many people in CSEG don't like the convention that I proposed in the last comment there, so we're looking for something different.)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions