8.2. METexpress 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.

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

Using SSH:

git clone git@github.com:dtcenter/METexpress

Using HTTP:

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

cd METexpress

8.2.2. Checkout the Development Branch

  • Checkout the development branch:

git checkout development

8.2.3. Create Development Feature Branch

  • Create a feature branch in which to perform any required development work.

git checkout -b feature_brief_description_of_work
  • Make desired code changes.

8.2.4. Merge Feature Branch

  • After making the desired code changes on a feature branch, submit a pull request to merge those changes back into the development branch.

8.2.5. 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 METexpress 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 “METexpress Version X.Y.Z”.

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

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

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

    • 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. For example, adding the User’s Guide to https://dtcenter.org/community-code/metexpress/documentation

    • Click on Save at the bottom of the page.

8.2.6. Finalize Release on GitHub

Return to GitHub to finalize the details of this release.

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

  • Any code changes will be automatically incorporated into METexpress development container builds once the pull request is approved.

8.2.7. Release Acceptance Testing

A single Release Acceptance Testing discussion in the METplus repository summarizes the external testing for all development cycles of the METplus components included in a coordinated release.

Instructions
  • If creating a release for the first development cycle (e.g. beta1 release), check to see if the Release Acceptance Testing discussion for the next coordinated release has already been created.

  • If not, create a new one to summarize external testing for all development cycles of the METplus components.

    • Locate the Release Acceptance Testing discussion for the last coordinated release.

    • Copy and paste its contents into a new discussion, being sure to update the title of the discussion and empty the contents of repository testing tables for each of the METplus components.

    • Carefully review the contents and links and update them as needed.

    • If needed, create a new label for the next METplus X.Y Coordinated Release in the METplus repository and add that label to this discussion.

  • Update the contents of the Release Acceptance Testing discussion for each METexpress development release.

    • Locate the METexpress repository testing table within the body of the discussion.

    • For issues for which no external testing is required:

      • Create a single table entry for this development cycle.

      • Set the “Status” column to PASS.

      • Set the “METexpress Issue” column to a list of links for all of the issues.

      • Set the “Dev Cycle” column to the current development cycle name (e.g. beta1, beta2, beta3, rc1).

      • Leave the “Tester” column empty.

      • Set the “Acceptance Testing Comment Link” column to No external testing required.

    • For issues that do require external testing:

      • Create a separate table entry for each issue.

      • Set the “Status” column to OPEN.

      • Set the “METexpress Issue” column to link to the issue.

      • Set the “Dev Cycle” column to the current development cycle name (e.g. beta1, beta2, beta3, rc1).

      • Set the “Tester” column to a list of GitHub user name(s) to solicit their feedback.

      • Leave the “Acceptance Testing Comment Link” column empty.

    • Save your edits to the discussion.

  • External testers are instructed to add comments to the discussion to summarize the status of their testing. The METplus team monitors those comments and, as needed, updates the “Status” and “Acceptance Testing Comment Link” columns of the repository testing table for each METplus component.