From 06a8f1059b392dccd2a6eb283b22aa4e6b8c17e3 Mon Sep 17 00:00:00 2001 From: Chris Johns Date: Fri, 26 Jun 2020 15:16:13 +1000 Subject: eng: Update the release procedure. --- eng/release-process.rst | 168 ++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 156 insertions(+), 12 deletions(-) (limited to 'eng') 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 / + cd git checkout -b origin/master git push origin @@ -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 + ./rtems-release-branch [-p] 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 + + 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@dispatch.rtems.org:/data/ftp/pub/rtems/releases/5/. + +#. Test a build of the ``beagleboneblack`` BSP. -- cgit v1.2.3