Versions Compared

Key

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

In order to have a clear, readable record of changes made to the E3SM source, its essential for all commit messages to have a similar style and content.  We do not use a "ChangeLog" file.  The "git log" command and good commit messages replaces the ChangeLog file

Note

Your commit messages appear in the git log and "the git log is forever".  That is, even if the E3SM project, or github go away, the git log with your commits and your name on them will always be there as a record of what happened.  So treat your commit messages with care.


The description of a github Pull Request (PR) will be used as the message for the merge commit for the branch so all PR descriptions should follow these rules.

All PR descriptions/commit Commit messages should have a title AND a body.  Just repeat the title for the body if you can't think of anything to add.

...

The first sentence of the body should be passive and not contain a subject.  It is understood you are talking about the commit or PR.  Do not start with "This commit...."  or "This PR...".  Just start with a verb like "Add" or "Fix" or "Change".

Keep the body brief.  Just a few sentences.   For PRs, use the comments after the description to add more detail if you want.

Do not substitute github issue numbers for descriptions of what you are fixing or doing or use github issue numbers in the title.  "Fixes #999"  is not a good commit message or title.  Imagine that GitHub goes away someday.  The log commit messages in our git repo should still make sense.  Reference issue numbers at the end (the "Fixes" lines) or parenthetically.

In addition to JIRA issue numbers at the bottom of the commit, you may, but are not required to, use other commands to manipulate the associated JIRA issue.  See JIRA and Github linking.

Do not include URL's to Confluence or other web sites in the commit message.   For PR's, use the first comment after the description to add URL's or more detail.


Commit message

...

Code Block
Describe changes in less than 70 characters in title.
 
Be sure to add a blank between title above and this text.  In the body of the message provide more detail on what these changes do.
It should be enough information for someone not following this development to understand.  DO NOT LEAVE THE BODY BLANK.  Just repeat the title if you have to.
 
[BFB] or [non-BFB] or [CC]    !! Add at least ONE of these keys to indicate how this commit will affect testing against baselines.
                              !! [BFB] means all output from tests will be bit-for-bit (BFB) identical with the baselines.
                              !! [non-BFB] one more more tests will not be BFB with baselines.  You can specify the tests.  You can also
                              !! use [non-BFB] and follow it with a description of what cases will be non-bfb.
                              !! [CC] the commit will change the climate of one or more cases under test.

[FCC]                         !!  Also add [FCC] if the commit will change climate if a flag is activated.
[NML]                         !!  Also add [NML] if the commit introduces changes to the namelist.
 
AG-67, AG-56     !! On the last line, optionally add JIRA issue numbers for issues this commit is satisfying if available.

...