[rtems-docs commit] eng: Update the release procedure.

Chris Johns chrisj at rtems.org
Fri Jun 26 05:18:04 UTC 2020


Module:    rtems-docs
Branch:    master
Commit:    06a8f1059b392dccd2a6eb283b22aa4e6b8c17e3
Changeset: http://git.rtems.org/rtems-docs/commit/?id=06a8f1059b392dccd2a6eb283b22aa4e6b8c17e3

Author:    Chris Johns <chrisj at rtems.org>
Date:      Fri Jun 26 15:16:13 2020 +1000

eng: Update the release procedure.

---

 eng/release-process.rst | 168 ++++++++++++++++++++++++++++++++++++++++++++----
 1 file changed, 156 insertions(+), 12 deletions(-)

diff --git a/eng/release-process.rst b/eng/release-process.rst
index d8b4381..bece233 100644
--- a/eng/release-process.rst
+++ b/eng/release-process.rst
@@ -10,7 +10,7 @@ Release Process
 
 The release process creates an RTEMS release. The process has a number of
 stages that happen before a release can be made, during the creation of the
-release procedure and after the release has been made.
+release and after the release has been made.
 
 Releases
 ========
@@ -159,29 +159,73 @@ Release Repositories
 The following are the repositories that a release effects. Any repository
 action is to be performed in the following repositories:
 
-#. rtems.git
+#. ``rtems.git``
 
-#. rtems-docs.git
+#. ``rtems-docs.git``
 
-#. rtems-examples.git
+#. ``rtems-examples.git``
 
-#. rtems-libbsd.git
+#. ``rtems-libbsd.git``
 
-#. rtems-source-builder.git
+#. ``rtems-source-builder.git``
 
-#. rtems-tools
+#. ``rtems-tools.git``
 
-#. rtems_waf
+#. ``rtems_waf.git``
+
+#. ``rtems-release.git``
 
 Pre-Release Procedure
 =====================
 
-* All tickets must be resolved, closed or moved to a later milestone.
+* All tickets must be resolved, closed or moved to a later
+  milestone. Tickets can exist that are specific to the branch and are
+  to be resolved before the first release is made.
+
+* Create release snapshots and post suitable build and test results.
+
+Release Branching
+=================
+
+A release has a release branch in each of the release repositories. A
+release is a created from a release branch. The release branch label
+is the RTEMS major version number.
+
+LibBSD Release Branch
+---------------------
+
+The ``rtems-libbsd.git`` is an exception as it has two active release
+branches. The repository has a release branch based on the ``master``
+like all the release repositories and it can have a FreeBSD version
+specific release branch that is used in the release.
+
+LibBSD runs two branches during it's development cycle. The ``master``
+branch tracks the FreeBSD ``master`` branch. This means LibBSD tracks
+FreeBSD's development. LibBSD also tracks a FreeBSD branch for the
+RTEMS release. For example RTEMS 5 tracks FreeBSD 12 as it's release
+base. This provides functionaly stability to the RTEMS 5 release by
+allowing a control process to track bug fixes in FreeBSD 12.
+
+Pre-Branch Procedure
+--------------------
+
+* All tickets assigned to the release's first milestone must be
+  resolved. Tickets can exist that are specific to the branch and are
+  to be resolved before the first release is made.
 
 * The following BSP must build using the RSB:
 
   - ``arm/beagleboneblack``
 
+* Check and make sure the RSB kernel, libbsd and tools configurations
+  reference the ``master`` when the branch is made.
+
+  The RSB GIT builds reference a specific commit so it is important
+  the relevant configurations are valid.
+
+Branch Procedure
+----------------
+
 * Branch labels are the major number as branch releases increment the minor
   number. A branch is only created when the first major release is made.
 
@@ -189,6 +233,8 @@ Pre-Release Procedure
 
   .. code-block:: none
 
+      git clone <URL>/<REPO> <REPO>
+      cd <REPO>
       git checkout -b <VERSION> origin/master
       git push origin <VERSION>
 
@@ -201,6 +247,83 @@ Pre-Release Procedure
       git checkout -b 5 origin/master
       git push origin 5
 
+* Check and make sure the RSB kernel, libbsd and tools reference the
+  branch commit.
+
+Post-Branch Procedure
+---------------------
+
+#. Create a release page for the next RTEMS release in Trac.
+
+#. Update the releases table. The page link is:
+
+     https://devel.rtems.org/wiki/Release
+
+   Update the table adding the new development release to the top
+   moving down the previous releases.
+
+   Label the new release branch as "Releasing". The documentation link
+   is left pointing to ``master`` until the release is made and the
+   documentation is installed on the RTEMS Documentation web site.
+
+#. Update the release table in the front page of the Trac Wiki. The
+   page link is:
+
+     https://devel.rtems.org/wiki/
+
+#. Add the milestones for the new development branch. The Trac page
+   is:
+
+  .. code-block:: none
+
+    = 6.1 (open)
+
+    == Statistics
+
+    ||   '''Total'''||[[TicketQuery(milestone=6.1,count)]]                                      ||
+    ||         Fixed||[[TicketQuery(status=closed&milestone=6.1,resolution=fixed,count,)]]      ||
+    ||       Invalid||[[TicketQuery(status=closed&milestone=6.1,resolution=invalid,count,)]]    ||
+    ||  Works for me||[[TicketQuery(status=closed&milestone=6.1,resolution=worksforme,count,)]] ||
+    ||     Duplicate||[[TicketQuery(status=closed&milestone=6.1,resolution=duplicate,count,)]]  ||
+    ||     Won't fix||[[TicketQuery(status=closed&milestone=6.1,resolution=wontfix,count,)]]    ||
+
+    == Distribution
+    [[TicketQuery(milestone=6.1&group=type,format=progress)]]
+
+    == Summary
+    [[TicketQuery(milestone=6.1)]]
+
+    == Details
+    [[TicketQuery(col=id|time|resolution|component|reporter|owner|changetime,status=closed&milestone=6.1,rows=summary|description,table)]]
+
+  Replace ``6.1`` with the required milestone.
+
+#. Create the RC1 release candidate with the source as close the
+   branch point as possible.
+
+#. Create a ticket to the clean the RSB for the release. The RSB's
+   ``master`` branch carries a number of older configurations and new
+   release configurations. These can be confusing to a new user and
+   add no value to a released RSB. For example leaving RTEMS 6 tool
+   building configurations in the RTEMS 5 release.
+
+Post-Branch Version Number Updates
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+After the release repositored have been branched the ``master`` branch
+has to have the major version number updated. The follow is a list of
+the needed changes.
+
+#. RSB requires the following files be changed:
+
+   ``source-builder/sb/version.py``
+     Update ``_version``.
+
+#. RTEMS Tools requires the following files be changed:
+
+   ``config/rtems-version.ini``
+     Update ``revision``,
+
 Release Procedure
 =================
 
@@ -209,11 +332,12 @@ the RTEMS FTP server. You will need ssh access to the RTEMS server
 ``dispatch.rtems.org`` and suitable permissions to write into the FTP release
 path on the RTEMS server.
 
-#. To create the RTEMS release run the release script:
+#. The release process starts by branching the repositories. To branch
+   run the script:
 
    .. code-block:: none
 
-       ./rtems-release <VERSION> <REVISION>
+       ./rtems-release-branch [-p] <USER> <VERSION> <REVISION>
 
    Example:
 
@@ -224,6 +348,20 @@ path on the RTEMS server.
        cd development/rtems/releases
        git clone git://git.rtems.org/rtems-release.git rtems-release.git
        cd rtems-release.git
+       ./rtems-release-branch -p chrisj 5
+
+   You need to have suitable commit access to the repositories.
+
+#. To create the RTEMS release run the release script:
+
+   .. code-block:: none
+
+       ./rtems-release <VERSION> <REVISION>
+
+   Example:
+
+   .. code-block:: none
+
        ./rtems-release 5 1.0
 
 #. Copy the release to the RTEMS FTP server:
@@ -267,4 +405,10 @@ Post-Release Procedure
 
 The following procedures are performed after a release has been created.
 
-#. TBD
+#. Update the release to the RTEMS servers:
+
+   .. code-block:: none
+
+     rsync --rsh=ssh -arv 5.1.0 chrisj at dispatch.rtems.org:/data/ftp/pub/rtems/releases/5/.
+
+#. Test a build of the ``beagleboneblack`` BSP.



More information about the vc mailing list