Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature #2282 coord_release_docs #2288

Merged
merged 11 commits into from
Aug 7, 2023
6 changes: 3 additions & 3 deletions docs/Contributors_Guide/github_workflow.rst
JohnHalleyGotway marked this conversation as resolved.
Show resolved Hide resolved
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ time window for that cycle or reassigned to a future development cycle.


Each development cycle culminates in the creation of a software release. The
:ref:`releaseCycleStages` section describes the various types of software releases
:ref:`releaseTypes` section describes the various types of software releases
(development, official, or bugfix). Each development cycle culminates in a beta release,
a release candidate, or the official release. Generally, a **beta** development cycle results
in a **beta** development release while an **rc** development cycle results in an **rc**
Expand Down Expand Up @@ -180,7 +180,7 @@ to that support project. Each fix is assigned to the current bugfix milestone o
the corresponding source code repository.


The :ref:`releaseCycleStages` section describes the various types of software releases
The :ref:`releaseTypes` section describes the various types of software releases
(development, official, or bugfix). The GitHub support project contains issues and
pull requests that apply only to bugfix releases.

Expand All @@ -204,7 +204,7 @@ required to perform the following steps.
and select **Settings**. Modify these settings as follows.

- Project name: The default project name is **@UserNames's feature**. Rename it as
**METplus Version X.Y Support** (e.g. **METplus Version 5.0 Support**).
**Coorindated METplus-X.Y Support** (e.g. **Coordinated METplus-5.0 Support**).

- Add a description: Add **Issues related to support for the METplus X.Y
coordinated release.**
Expand Down
23 changes: 23 additions & 0 deletions docs/Release_Guide/coordinated.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
*******************
Coordinated Release
*******************

.. |projectRepo| replace:: Coordinated

Create a new METplus coordinated release from vX.Y.Z official or
bugfix releases of the METplus components. Typically, a coordinated
release consists entirely of official component releases prior to any
bugfix releases being issued. However, the latter is certainly possible.
In fact, whenever a bugfix release is created for a METplus component,
the corresponding coordinated release is updated to link to the most
recent bugfix version.

The following instructions assume that all of the official or
bugfix component releases have already been created. Note however that
JohnHalleyGotway marked this conversation as resolved.
Show resolved Hide resolved
some of these steps can be started prior the completion of the
component releases.

.. include:: release_steps/coordinated/update_dtc_website.rst
.. include:: release_steps/coordinated/finalize_release_on_github.rst
.. include:: release_steps/coordinated/update_zenodo.rst
.. include:: release_steps/coordinated/announce_release.rst
85 changes: 48 additions & 37 deletions docs/Release_Guide/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,52 +4,67 @@ Release Guide

This METplus Release Guide provides detailed instructions for METplus
developers for creating software releases for the METplus component
repositories. **This Release Guide is intended for developers creating
releases and is not intended for users of the software.**
repositories.

.. _releaseCycleStages:
.. note:: This Release Guide is intended for developers creating
releases and is not intended for users of the software.

Stages of the METplus Release Cycle
===================================
.. _releaseTypes:

Release Types
=============

Coordinated Release
-------------------

A METplus coordinated release is a group of official or bugfix releases for each
of the METplus components that have been developed and tested in parallel.
Coordinated release announcements on the
`DTC METplus Downloads <https://dtcenter.org/community-code/metplus/download>`_
page link to the component releases that comprise the coordinated release.
When bugfix releases are issued for any METplus component, the corresponding
coordinated release announcement is updated to link to the most recent bugfix
version.

Official Release
----------------

An official release is a stable release of a METplus component and is basically
JohnHalleyGotway marked this conversation as resolved.
Show resolved Hide resolved
the release candidate, which has passed all tests. It is the version of the
code that has been tested as thoroughly as possible and is reliable enough to be
used in production.

Bugfix Release
--------------

A bugfix release for a METplus component introduces no new features, but fixes
bugs in previous official releases and targets the most critical bugs affecting
users.

Development Release
-------------------

Beta
^^^^

Beta releases are a pre-release of the software to give a larger group of
users the opportunity to test the recently incorporated new features,
enhancements, and bug fixes. Beta releases allow for continued
Beta releases are a pre-release of a METplus software component to give a
larger group of users the opportunity to test the recently incorporated new
features, enhancements, and bug fixes. Beta releases allow for continued
development and bug fixes before an official release. There are many
possible configurations of hardware and software that exist and installation
of beta releases allow for testing of potential conflicts.

Release Candidate (rc)
^^^^^^^^^^^^^^^^^^^^^^

A release candidate is a version of the software that is nearly ready for
official release but may still have a few bugs. At this stage, all product
features have been designed, coded, and tested through one or more beta
A release candidate is a version of a METplus software component that is nearly
ready for official release but may still have a few bugs. At this stage, all
product features have been designed, coded, and tested through one or more beta
cycles with no known bugs. It is code complete, meaning that no entirely
new source code will be added to this release. There may still be source
code changes to fix bugs, changes to documentation, and changes to test
cases or utilities.

Official Release
----------------

An official release is a stable release and is basically the release
candidate, which has passed all tests. It is the version of the code that
has been tested as thoroughly as possible and is reliable enough to be
used in production.

Bugfix Release
--------------

A bugfix release introduces no new features, but fixes bugs in previous
official releases and targets the most critical bugs affecting users.

Release Support Policy
======================

Expand All @@ -68,24 +83,28 @@ to report any bugs, please contact our dedicated support team in the
Instructions Summary
====================

Instructions are provided for three types of software releases:
Instructions are provided for the following types of software releases:

#. **Coordinated Release** consisting of a group of software component releases

#. **Official Release** (e.g. vX.Y.Z) from the develop branch (becomes the new main_vX.Y branch)
JohnHalleyGotway marked this conversation as resolved.
Show resolved Hide resolved

#. **Bugfix Release** (e.g. vX.Y.Z) from the corresponding main_vX.Y branch

#. **Development Release** (e.g. vX.Y.Z-betaN or vX.Y.Z-rcN) from the develop branch

The instructions that are common to all components are documented only once and then included in the release steps for all components.
However some instructions are specific to individual repositories and documented separately.
The instructions that are common to all components are documented only once and then included
in the release steps for all components. However some instructions are specific to individual
repositories and documented separately.

Release instructions for each of the METplus components are described in the following chapters.
Release instructions are described in the following chapters.

.. toctree::
:titlesonly:
:maxdepth: 1
:numbered: 4

coordinated
metplus
met
metdataio
Expand All @@ -94,11 +113,3 @@ Release instructions for each of the METplus components are described in the fol
metviewer
metexpress
recreate_release


Indices and tables
==================

* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`
1 change: 0 additions & 1 deletion docs/Release_Guide/metplus_official.rst
Original file line number Diff line number Diff line change
Expand Up @@ -24,5 +24,4 @@ Create a new vX.Y.Z official release from the develop branch.
.. include:: release_steps/metplus/update_version_on_develop.rst
.. include:: release_steps/update_docs_official.rst
.. include:: release_steps/metplus/update_web_server_data.rst
.. include:: release_steps/metplus/update_zenodo.rst
.. include:: release_steps/set_beta_deletion_reminder_official.rst
46 changes: 19 additions & 27 deletions docs/Release_Guide/release_steps/common/update_dtc_website.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,24 +6,24 @@ Update DTC Website
* Navigate to the downloads page for the |projectRepo| repository at
https://dtcenter.org/community-code/metplus/download

* Click on the Edit button to edit the Downloads page.
* Click on the **Edit** button to edit the Downloads page.

* Create a new *Software Release* for the newly released version by clicking
on *Add New Release*.
* Create a new **Software Release** for the newly released version by clicking
on **Add New Release**.

* For *Full Title of Release* type "|projectRepo| Version X.Y.Z".
* For **Full Title of Release** type "|projectRepo| Version X.Y.Z".

* For *Related Community Code* select both the METplus and the |projectName|
* For **Related Community Code** select both the "METplus" and the "|projectName|"
options (For Macs, hold the Command key to select both).

* For *Version Label* type "|projectRepo| X.Y.Z-betaN".
* For **Version Label** type "|projectRepo| X.Y.Z-betaN".

* Select the release type (*Recommended* for official or bugfix releases or
*Development* for development versions).
* Select the **Release Type** ("Recommended" for official or bugfix releases or
"Development" for development versions).

* Enter the release date.
* Enter the **Release Date**.

* Click on *Add Code Download* then click *Add Link* to add links for each of the following:
* Click on **Add Code Download** then click **Add Link** to add links for each of the following:

* Add Link: |addTarfileStep|

Expand All @@ -41,38 +41,30 @@ Update DTC Website
(If creating a new official release, be sure to add a new *Existing Builds
and Docker* page, if one was not already created.)

* Inside the text box in the "Release Notes" section provide a direct link to
the *release-notes.html* file in the User's Guide.
* In the **Release Notes** text box provide a direct link to the
*release-notes.html* file in the User's Guide.

* Click on "Create Release".
* Click on **Create Release**.

* Update the existing releases, as needed.

* For a development release, ensure the "Release Type" is set to
*Development* and change any previous *Development* versions to
*Other*.
**Development** and change any previous **Development** versions to
**Other**.

* For a bugfix or official release, change any previous
*Recommended* versions to *Other*.
**Recommended** versions to **Other**.

* For an official release, remove the corresponding development
releases.

* Create or edit the "Coordinated METplus Version X.Y" software release.

* For an official release, create the "Coordinated METplus Version X.Y"
release entry if it doesn't already exist. Ensure the "Release Type"
is set to *Recommended*. Consider changing the "Release Type" of
previous coordinated releases from *Recommended* to *Other*. Add
links for the |projectRepo| X.Y.Z, the METplus "Documentation",
the METplus "Existing Builds and Docker" page, and the "Release Notes".
Make the Release Notes a link to the |projectRepo| Release Notes.
* Edit the "Coordinated METplus Version X.Y" software release.

* For a bugfix release, update the existing link and text in
the "Coordinated METplus Version X.Y" release section with the
the "Coordinated METplus-X.Y" release section with the
X.Y.Z+1 information.

* |otherWebsiteUpdates|

* Click on "Save".
* Click on **Save** at the bottom of the page.

Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
Announce Release
----------------

* Contact the METplus project manager to announce the coordinated release via email.

* Contact the RAL-IT group to request that the coordinated release components be installed in */usr/local* to be used on all RAL machines.
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
Finalize Release on GitHub
--------------------------

See :ref:`wo-support-project` to create a support project for
the current METplus coordinated release.
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
Update DTC Website
------------------

* Navigate to https://dtcenter.org and sign in to the Drupal interface.

* Navigate to the METplus downloads page at
https://dtcenter.org/community-code/metplus/download

* Click on the **Edit** button to edit the Downloads page.

* Create a new **Software Release** for the new coordinated release by clicking
on **Add New Release**.

* For **Full Title of Release** type "Coorindated METplus X.Y".

* For **Related Community Code** select only the "METplus" option.

* For **Version Label** type "Coordinated METplus X.Y".

* Select the **Release Type** as "Recommended".

* Select the **Release Options** as "Coordinated".

* Enter the **Release Date**.

* Click on **Add Code Download** then click **Add Link** to add links for each of the following:

* Add Link: Link text should be "METplus X.Y.Z" and the URL should be a link to the METplus component DTC release page.

* Add Link: Link text should be "MET X.Y.Z" and the URL should be a link to the MET component DTC release page.

* Add Link: Link text should be "METviewer X.Y.Z" and the URL should be a link to the METviewer component DTC release page.

* Add Link: Link text should be "METexpress X.Y.Z" and the URL should be a link to the METexpress component DTC release page.

* Add Link: Link text should be "METplotpy X.Y.Z" and the URL should be a link to the METplotpy component DTC release page.

* Add Link: Link text should be "METcalcpy X.Y.Z" and the URL should be a link to the METcalcpy component DTC release page.

* Add Link: Link text should be "METdataio X.Y.Z" and the URL should be a link to the METdataio component DTC release page.

* Add Link: Link text should be "Documentation" and the URL should be the top
level directory of the main_vX.Y branch of the METplus User's Guide hosted on the web.
For example, use
"https://metplus.readthedocs.io/en/main_vX.Y/Users_Guide/" and NOT
"https://metplus.readthedocs.io/en/vX.Y.Z/Users_Guide/"

* Add Link: Link text should be "Existing Builds and Docker" and the URL
should be the latest Existing Builds page, i.e.
https://dtcenter.org/community-code/metplus/metplus-X-Y-existing-builds

* In the **Release Notes** text box provide direct links to the *release-notes.html*
files on the main_vX.Y branch of the User's Guide for each component.

* Click on **Create Release**.

* Update any existing coordinated releases by changing the **Release Type** from
"Recommended" to "Other" and click the **Update Release** button.

* Review the existing component releases and remove any remaining development
releases (e.g. beta and rc) for any of the official releases included in this
coordinated release.

* Click on **Save** at the bottom of the page.

* Create a new **Existing Builds and Docker** page for the next coordinated release.
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,6 @@ Finalize Release on GitHub

* Close the existing development project for the current milestone.

* If necessary, see :ref:`wo-support-project` to create a support project for the current
METplus coordinated release.

* If necessary, see :ref:`wo-development-project` to create a development project for the
next milestone.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@

.. |projectName| replace:: |projectRepo|

.. |addTarfileStep| replace:: Link text should be the file name of the tar file and the URL should be the .tar.gz file created in the "Attach Release Tarfile" step.
.. |addTarfileStep| replace:: Link text should be the name of the release and the URL should be the release page that was just created under the GitHub Releases tab.

.. |otherWebsiteUpdates| replace:: Make any other necessary website updates. For example, the flowchart at https://dtcenter.org/community-code/model-evaluation-tools-met/system-architecture.
2 changes: 1 addition & 1 deletion docs/Users_Guide/release-notes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ METplus Release Information

.. _release-notes:

Users can view the :ref:`releaseCycleStages` section of
Users can view the :ref:`releaseTypes` section of
the Release Guide for descriptions of the development releases (including
beta releases and release candidates), official releases, and bugfix
releases for the METplus Components.
Expand Down