1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138
|
.. _merging:
Commit merging: scope and cadence
==================================
Commits are merged into branches according to criteria specific to each phase
of the Ceph release lifecycle. This chapter codifies these criteria.
Development releases (i.e. x.0.z)
---------------------------------
What ?
^^^^^^
* Features
* Bug fixes
Where ?
^^^^^^^
Features are merged to the *main* branch. Bug fixes should be merged to the
corresponding named branch (e.g. *nautilus* for 14.0.z, *pacific* for 16.0.z,
etc.). However, this is not mandatory - bug fixes and documentation
enhancements can be merged to the *main* branch as well, since the *main*
branch is itself occasionally merged to the named branch during the development
releases phase. In either case, if a bug fix is important it can also be
flagged for backport to one or more previous stable releases.
When ?
^^^^^^
After each stable release, candidate branches for previous releases enter
phase 2 (see below). For example: the *jewel* named branch was created when
the *infernalis* release candidates entered phase 2. From this point on,
*main* was no longer associated with *infernalis*. After he named branch of
the next stable release is created, *main* will be occasionally merged into
it.
Branch merges
^^^^^^^^^^^^^
* The latest stable release branch is merged periodically into main.
* The main branch is merged periodically into the branch of the stable release.
* The main is merged into the stable release branch
immediately after each development (x.0.z) release.
Stable release candidates (i.e. x.1.z) phase 1
----------------------------------------------
What ?
^^^^^^
* Bug fixes only
Where ?
^^^^^^^
The stable release branch (e.g. *jewel* for 10.0.z, *luminous*
for 12.0.z, etc.) or *main*. Bug fixes should be merged to the named
branch corresponding to the stable release candidate (e.g. *jewel* for
10.1.z) or to *main*. During this phase, all commits to *main* will be
merged to the named branch, and vice versa. In other words, it makes
no difference whether a commit is merged to the named branch or to
*main* - it will make it into the next release candidate either way.
When ?
^^^^^^
After the first stable release candidate is published, i.e. after the
x.1.0 tag is set in the release branch.
Branch merges
^^^^^^^^^^^^^
* The stable release branch is merged periodically into *main*.
* The *main* branch is merged periodically into the stable release branch.
* The *main* branch is merged into the stable release branch
immediately after each x.1.z release candidate.
Stable release candidates (i.e. x.1.z) phase 2
----------------------------------------------
What ?
^^^^^^
* Bug fixes only
Where ?
^^^^^^^
The stable release branch (e.g. *mimic* for 13.0.z, *octopus* for 15.0.z
,etc.). During this phase, all commits to the named branch will be merged into
*main*. Cherry-picking to the named branch during release candidate phase 2
is performed manually since the official backporting process begins only when
the release is pronounced "stable".
When ?
^^^^^^
After the CLT announces that it is time for phase 2 to happen.
Branch merges
^^^^^^^^^^^^^
* The stable release branch is occasionally merged into main.
Stable releases (i.e. x.2.z)
----------------------------
What ?
^^^^^^
* Bug fixes
* Features are sometime accepted
* Commits should be cherry-picked from *main* when possible
* Commits that are not cherry-picked from *main* must pertain to a bug unique to
the stable release
* See also the `backport HOWTO`_ document
.. _`backport HOWTO`:
http://tracker.ceph.com/projects/ceph-releases/wiki/HOWTO#HOWTO
Where ?
^^^^^^^
The stable release branch (*hammer* for 0.94.x, *infernalis* for 9.2.x,
etc.)
When ?
^^^^^^
After the stable release is published, i.e. after the "vx.2.0" tag is set in
the release branch.
Branch merges
^^^^^^^^^^^^^
Never
|