1.3. METplus Development Release
Create a new vX.Y.Z-betaN or vX.Y.Z-rcN development release from the develop branch while working toward an official vX.Y.Z release.
1.3.1. Open Release Issue
Define a new issue in the METplus repository to create the new release.
“Create the METplus vX.Y.Z release” for an official or bugfix release.
“Create the METplus vX.Y.Z-betaN (or -rcN) release” for a development release.
For an official or development release, assign the issue to the corresponding METplus development project.
For a bugfix release, assign the issue to the organization level support project.
Select the target milestone.
1.3.2. Clone the Project Repository
Create and work in a new directory to ensure a fresh environment:
mkdir release-X.Y.Z cd release-X.Y.Z
Run the clone command to obtain the repository.
git clone email@example.com:dtcenter/METplus
git clone https://github.com/dtcenter/METplus
Enter the project repository directory:
1.3.3. Checkout the Develop Branch
Checkout the develop branch:
git checkout develop
1.3.4. Create Release Feature Branch
Create a feature branch in which to update the version number and add release notes being sure to include the GitHub issue number for the new release.
git checkout -b feature_NNNN_vX.Y.Z # for an official or bugfix release git checkout -b feature_NNNN_vX.Y.Z-betaN # for a development release git checkout -b feature_NNNN_vX.Y.Z-rcN # for a development release
1.3.5. Update Version Number for Release
Remove -dev from the version number:
As of METplus v4.0.0-beta2, we are naming releases with X.Y.Z format even if Z is 0. ( As of METplus v4.0.0-beta4, the file containing the version number is located at metplus/VERSION (in earlier releases, the file was located at docs/version or doc/version)
In the develop branch, the version should match the upcoming release with -dev added to the end like X.Y.Z-betaN-dev, i.e. 4.0.0-beta1-dev
Remove -dev from the version number so that it matches the release you are creating.
Commit changes and push to GitHub.
1.3.6. Update Release Notes
You can refer to the GitHub Project board to see what has changed for this release. Open the following URL in a browser:
Click on the project that corresponds to this release, i.e. METplus-X.Y.Z Development
Navigate to the “Closed Issues” tab. If this tab does not exist, see GitHub Projects to manage development to create it.
Update the release-notes.rst file found in the User’s Guide directory.
Consider organizing release notes into logical groups (e.g. Enhancements, Bugfixes, Documentation, etc.) and modifying GitHub issue titles for consistency. The release notes should match the GitHub issue titles, when possible.
Use your best judgement to apply bold formatting for any major or important changes.
If you are creating a beta1 release, remove the previous version’s release notes, i.e. for 3.0.0-beta1, remove all 2.Y.Z notes and start a 3.0.0 section with the format “Version X.Y.Z release notes (YYYYMMDD)”.
If you are creating a betaX release, add a new betaX section above the betaX-1 release.
Commit changes and push to GitHub.
1.3.7. Update Upgrade Instructions
Occasionally, changes will be made to software that will require users to make changes to their configuration files in order to use the latest release. For example, when ensemble post-processing was added to Gen-Ens-Prod and removed from Ensemble-Stat, users were required to make changes in their configuration files.
This section is not always applicable.
To alert the users to the necessary steps involved with the upgrade:
Update the Upgrade Instructions section of the release-notes.rst file found in the METplus User’s Guide directory with the necessary information.
Add an “upgrade instructions” link next to the appropriate METplus component (METplus) after “latest” and before “development” in the METplus Components Release Note Links section in the release-notes.rst file in the METplus User’s Guide in the METplus GitHub repository ONLY if there are Upgrade Instructions for this release.
1.3.8. Merge Release Issue
After updating the release-specific content on a release feature branch, submit a pull request to merge those changes back into the source branch.
1.3.9. Create Release on GitHub
Go to Releases on GitHub and click ‘Draft a new release’
Set the tag based on the version, starting with ‘v’, i.e. vX.Y.Z-betaN, vX.Y.Z-rcN, or vX.Y.Z
Set the branch value to ‘develop’ for a development release or ‘main_vX.Y’ for a bugfix or official release
Choose a release name (i.e. METplus-X.Y.Z-betaN, METplus-X.Y.Z-rcN, or METplus-X.Y.Z)
Add a link to the release notes from the METplus User’s Guide, i.e. https://METplus.readthedocs.io/en/vX.Y.Z-betaN/Users_Guide/release-notes.html (Note: the URL will not be active until the release is created) Refer to a previous release to easily copy and modify this information.
Add links to the HTML and PDF versions of the METplus User’s Guide on ReadTheDocs. https://METplus.readthedocs.io/_/downloads/en/vX.Y.Z-betaN/pdf/ (Note: the URL will not be active until the release is created) Refer to a previous release to easily copy and modify this information.
Add link to METplus_Data and add a note to instruct users to use sub-directory corresponding to this release, i.e. v4.0) Refer to a previous release to easily copy and modify this information.
If this is a development release, check the box that says “This is a pre-release” and uncheck “Set as latest release”
Click on “Publish release”.
1.3.10. Update Version on Develop Branch
Switch to the develop branch and change metplus/VERSION value to the next release after this one with -dev added to the end. Releases will loosely following these names, but are subject to change:
New Develop Version
1.3.11. Update DTC Website
Navigate to https://dtcenter.org and sign in to the Drupal interface.
Navigate to the downloads page for the METplus repository 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 newly released version by clicking on Add New Release.
For Full Title of Release type “METplus Version X.Y.Z”.
For Related Community Code select both the METplus and the METplus Wrappers options (For Macs, hold the Command key to select both).
For Version Label type “METplus X.Y.Z-betaN”.
Select the release type (Recommended for official or bugfix releases or Development for development versions).
Enter the release date.
Click on Add Code Download then click Add Link to add links for each of the following:
Add Link: The URL should be the release page that was just created under the GitHub Releases tab and the link text should be the name of the release (i.e. METplus X.Y.Z-betaN).
Add Link: Link text should be “User’s Guide” and the URL should be the top level directory of the User’s Guide hosted on the web. Beta releases can use “develop” in the URL, but for official releases, please ensure the link uses the branch name (e.g. main_vX.Y) as opposed to the tag name (e.g. vX.Y.Z). 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 (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.
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.
For a bugfix or official release, change any previous 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 METplus 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 METplus Release Notes.
For a bugfix release, update the existing link and text in the “Coordinated METplus Version X.Y” release section with the X.Y.Z+1 information.
Make any other necessary website updates. For example, adding the User’s Guide to https://dtcenter.org/community-code/metplus/documentation
Click on “Save”.
1.3.12. Finalize Release on GitHub
Close the GitHub issue for creating this development release.
Edit the date of the development cycle for the current release to indicate the actual release date.
Review the remaining development cycles, and if neccessary, adjust dates and/or add new cycles.
If necessary, reassign any remaining issues for the current development cycle to the next one.