Difference between revisions of "Contributing to Lorekeeper"

From Lorekeeper Wiki
Jump to navigation Jump to search
Line 5: Line 5:
 
*The default/primary branch-- <u>master</u>, in this case-- which always contains the current release, and
 
*The default/primary branch-- <u>master</u>, in this case-- which always contains the current release, and
 
*The development branch-- <u>develop</u>, in this case-- which always contains the latest work-- features, fixes, and so on.
 
*The development branch-- <u>develop</u>, in this case-- which always contains the latest work-- features, fixes, and so on.
 +
**This branch is itself off of <u>master</u> and in the infrequent but possible event that the latter is updated directly (i.e. via a hotfix), <u>master</u> will be merged into it.
  
 
As well as three ''types'' of branches; each branch of these types is destined to be merged into another and is important but ultimately impermanent:
 
As well as three ''types'' of branches; each branch of these types is destined to be merged into another and is important but ultimately impermanent:
Line 11: Line 12:
 
**These follow the naming scheme <code>feature/FEATURE-NAME-HERE</code>, i.e. <code>feature/two-factor-auth</code>.
 
**These follow the naming scheme <code>feature/FEATURE-NAME-HERE</code>, i.e. <code>feature/two-factor-auth</code>.
 
**While these are called feature branches, they can contain new features and/or non-emergency bugfixes!
 
**While these are called feature branches, they can contain new features and/or non-emergency bugfixes!
**New features are '''always''' merged into <u>develop</u> and this branch only.
+
**New features are '''always''' merged into <u>develop</u> and <u>develop</u> only.
**Fixes, however, are somewhat more complicated.
+
**These branches are created branched off of <u>develop</u> (if they contain features or there is no current release branch) or the current release branch (if there is one, and the feature branch contains only bugfixes for the current content within it).
 +
*Release branches
 +
**These follow the naming scheme <code>release/UPCOMING-VERSION-HERE</code>.
 +
**These are created by a maintainer of the repo when an upcoming release is feature-complete or otherwise ready, and are branched off of <u>develop</u>.
 +
**Once they are created, '''no additional features will be merged into these branches''', only bugfixes for the features already in them.
 +
**
 
*Hotfix branches
 
*Hotfix branches
 
**These follow the naming scheme <code>hotfix/HOTFIX-NAME-HERE</code>.
 
**These follow the naming scheme <code>hotfix/HOTFIX-NAME-HERE</code>.
 
**These contain emergency bugfixes, e.g. fixes for critical issues or security vulnerabilities.
 
**These contain emergency bugfixes, e.g. fixes for critical issues or security vulnerabilities.
 
**These are directly branched off of <u>master</u>/the current release and merged back into <u>master</u> when complete.
 
**These are directly branched off of <u>master</u>/the current release and merged back into <u>master</u> when complete.
 +
**In such an event, <u>master</u> is merged back into <u>develop</u> as well to incorporate any fixes.
 
**
 
**

Revision as of 12:02, 6 May 2021

Lorekeeper, much like any project in its vein, thrives on community contributions; be they bugfixes, new features, extensions, or so on, these efforts are what help make the project shine. If you are interested in contributing to core Lorekeeper, pull requests are always open at the GitHub repository.

Generally speaking, Lorekeeper and its branches are structured and maintained in keeping with GitFlow. Loosely, this means that there are two persistent branches:

  • The default/primary branch-- master, in this case-- which always contains the current release, and
  • The development branch-- develop, in this case-- which always contains the latest work-- features, fixes, and so on.
    • This branch is itself off of master and in the infrequent but possible event that the latter is updated directly (i.e. via a hotfix), master will be merged into it.

As well as three types of branches; each branch of these types is destined to be merged into another and is important but ultimately impermanent:

  • Feature branches
    • These follow the naming scheme feature/FEATURE-NAME-HERE, i.e. feature/two-factor-auth.
    • While these are called feature branches, they can contain new features and/or non-emergency bugfixes!
    • New features are always merged into develop and develop only.
    • These branches are created branched off of develop (if they contain features or there is no current release branch) or the current release branch (if there is one, and the feature branch contains only bugfixes for the current content within it).
  • Release branches
    • These follow the naming scheme release/UPCOMING-VERSION-HERE.
    • These are created by a maintainer of the repo when an upcoming release is feature-complete or otherwise ready, and are branched off of develop.
    • Once they are created, no additional features will be merged into these branches, only bugfixes for the features already in them.
  • Hotfix branches
    • These follow the naming scheme hotfix/HOTFIX-NAME-HERE.
    • These contain emergency bugfixes, e.g. fixes for critical issues or security vulnerabilities.
    • These are directly branched off of master/the current release and merged back into master when complete.
    • In such an event, master is merged back into develop as well to incorporate any fixes.