4.2. METdataio Bugfix Release

Create a new vX.Y.Z bugfix release from the main_vX.Y branch.

4.2.1. Open Release Issue

Define a new GitHub issue for creating this new release.

Instructions
  • Define a new issue in the METdataio repository to create the new release.

    • “Create the METdataio vX.Y.Z release” for an official or bugfix release.

    • “Create the METdataio vX.Y.Z-betaN (or -rcN) release” for a development release.

  • For an official or development release, assign the issue to the corresponding METdataio development project.

  • For a bugfix release, assign the issue to the organization level support project.

  • Select the target milestone.

4.2.2. Clone the Project Repository

Clone the repository onto your local machine.

Instructions
  • 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.

Using SSH:

git clone git@github.com:dtcenter/METdataio

Using HTTP:

git clone https://github.com/dtcenter/METdataio
  • Enter the project repository directory:

cd METdataio

4.2.3. Checkout the Main Branch

Instructions

Checkout the main branch for the X.Y release. If you are creating the METdataio-X.Y.Z official or bugfix release, checkout main_vX.Y.

git checkout main_vX.Y

4.2.4. Create Release Feature Branch

Create a feature branch to update the version number and add release notes.

Instructions
  • Include the GitHub issue number in the feature branch 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

4.2.5. Update Version Number

Update the software version information.

Instructions
  • In ‘docs/version’, update the version number. This value is used by METplus use cases that run METdbLoad and is used by METviewer.

  • In the top level ‘pyproject.toml’, update the value of ‘version’.

  • In ‘docs/conf.py’, update the ‘version’, ‘release_year’, and ‘release_date’ variables for the documentation.

4.2.6. Update Release Notes

Update the release notes for this release.

Instructions

You can refer to the GitHub Project board to see what has changed for this release. Open the following URL in a browser:

https://github.com/orgs/dtcenter/projects
  • Click on the project that corresponds to support for the release, i.e. METplus Version X.Y Support

  • Navigate to the “Closed Issues” tab. If this tab does not exist, see GitHub Projects to Manage Support to create it.

  • Find the closed issues with dtcenter/METdataio in the Repository column that have been added since the last bugfix release for METdataio.

  • Open the following URL in a browser:

https://github.com/dtcenter/METdataio/issues
  • Navigate to the METdataio X.Y.Z Milestone to check for any issues that may not appear in the METplus Version X.Y Support project board.

  • 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.

  • When creating a bugfix release, leave the “Version X.Y.0 release notes (YYYYMMDD)” in place, along with any other bugfix release notes and add a section above for the latest bugfix release (i.e. “Version X.Y.Z release notes (YYYYMMDD)”).

  • Commit changes and push to GitHub.

4.2.7. 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.

4.2.8. Create Release on GitHub

Create the new release on GitHub.

Instructions
  • Ensure that any and all dependent releases for METdataio have been created according to Release Dependencies.

  • Go to Releases on GitHub and click ‘Draft a new release’

  • For ‘Choose a tag’, create a new tag based on the version, starting with ‘v’ (i.e. vX.Y.Z-betaN, vX.Y.Z-rcN, or vX.Y.Z)

  • Define the ‘Target’ branch as:

    • ‘develop’ for a beta development release

    • ‘main_vX.Y’ for a release candidate, bugfix, or official release

  • Define the ‘Release title’ based on the repository name and version, without a leading ‘v’ (i.e. METdataio-X.Y.Z-betaN, METdataio-X.Y.Z-rcN, or METdataio-X.Y.Z)

  • Add a link to the release notes from the METdataio User’s Guide, i.e. https://METdataio.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 METdataio User’s Guide on ReadTheDocs. https://METdataio.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.

  • If this is a development release, check the box that says “This is a pre-release”.

  • Click on “Publish release”.

4.2.9. Update DTC Website

METplus software releases are announced on the DTC website. Add or update information about software releases on the website.

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

  • Navigate to the downloads page for the METdataio 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 “METdataio Version X.Y.Z”.

    • For Related Community Code select both the “METplus” and the “METdataio” options (For Macs, hold the Command key to select both).

    • For Version Label type “METdataio 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:

    • 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.

    • 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.

    • Edit the “Coordinated METplus Version X.Y” software release.

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

    • Make any other necessary website updates.

    • Click on Save at the bottom of the page.

4.2.10. Update Version Lookup Table

Modify the version lookup table in the METplus repository to include the correct version.

Instructions
  • Clone the METplus repository.

    Using SSH:

    git clone git@github.com:dtcenter/METplus
    

    Using HTTP:

    git clone https://github.com/dtcenter/METplus
    
  • Enter the METplus repository directory:

cd METplus
  • Checkout the develop branch

git checkout develop
  • Create a branch off of develop to update. Include the name of the repository and version in the name.

git checkout -b update_version_vX.Y.Z_repo
  • Open metplus/component_versions.py and increment the version for the appropriate METdataio entry.

  • Commit change, push to GitHub, and create a pull request to merge change into the develop branch.

4.2.11. Finalize Release on GitHub

Return to GitHub to finalize the details of this release.

Instructions
  • Close the GitHub issue for creating this bugfix release.

  • Edit the milestone for the current release by updating the Due date with the actual release date.

  • Create a new milestone for the next bugfix release (e.g. ‘METdataio X.Y.{Z+1} (bugfix)’).

  • If necessary, reassign any remaining issues for the current bugfix milestone to the next one.

  • Close the current bugfix milestone.