From d5030124bb13ba9419ffce73828e8e7fd778d2f4 Mon Sep 17 00:00:00 2001 From: Brad King Date: Fri, 21 Jul 2017 11:26:56 -0400 Subject: CONTRIBUTING: Explain how to propose changes to the release branch --- CONTRIBUTING.rst | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst index e219763..3c84c2b 100644 --- a/CONTRIBUTING.rst +++ b/CONTRIBUTING.rst @@ -27,9 +27,12 @@ To contribute patches: #. Run `Utilities/SetupForDevelopment.sh`_ for local configuration. #. See the `CMake Source Code Guide`_ for coding guidelines. #. Base all new work on the upstream ``master`` branch. + Base work on the upstream ``release`` branch only if it fixes a + regression or bug in a feature new to that release. #. Create commits making incremental, distinct, logically complete changes. #. Push a topic branch to a personal repository fork on GitLab. -#. Create a GitLab Merge Request targeting the upstream ``master`` branch. +#. Create a GitLab Merge Request targeting the upstream ``master`` branch + (even if the change is intended for merge to the ``release`` branch). The merge request will enter the `CMake Review Process`_ for consideration. -- cgit v0.12 From dc8930787efd049a0795986f0afcda49518d6b0b Mon Sep 17 00:00:00 2001 From: Brad King Date: Fri, 21 Jul 2017 11:44:15 -0400 Subject: Help/dev: Add 'release' branch instructions to maintainer guide --- Help/dev/maint.rst | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/Help/dev/maint.rst b/Help/dev/maint.rst index 889e4e3..bdfb3d0 100644 --- a/Help/dev/maint.rst +++ b/Help/dev/maint.rst @@ -37,6 +37,48 @@ command to integrate a merge request. Please check at least the following: introduced. (Learn to tolerate spurious failures due to idiosyncrasies of various nightly builders.) +* Ensure that the MR targets the ``master`` branch. A MR intended for + the ``release`` branch should be based on ``release`` but still merged + to ``master`` first (via ``Do: merge``). A maintainer may then merge + the MR topic to ``release`` manually. + +Maintain Current Release +======================== + +The ``release`` branch is used to maintain the current release or release +candidate. The branch is published with no version number but maintained +using a local branch named ``release-$ver``, where ``$ver`` is the version +number of the current release in the form ``$major.$minor``. It is always +merged into ``master`` before publishing. + +To merge some ``$topic`` branch into ``release``, first create the local +branch: + +.. code-block:: shell + + git fetch origin + git checkout -b release-$ver origin/release + +Merge the ``$topic`` branch into the local ``release-$ver`` branch: + +.. code-block:: shell + + git merge --no-ff $topic + +Merge the ``release-$ver`` branch to ``master``: + +.. code-block:: shell + + git checkout master + git pull + git merge --no-ff release-$ver + +Publish both ``master`` and ``release`` simultaneously: + +.. code-block:: shell + + git push --atomic origin master release-$ver:release + .. _`CMake Review Process`: review.rst .. _`CMake CDash Page`: https://open.cdash.org/index.php?project=CMake -- cgit v0.12