Skip to main content

Building and Publishing a Release

Prerequisites

  • You must have a WordPress.org account with committer access to the WooCommerce plugin to approve the commit.

Pre-Checks

  1. Verify no open Pull Requests or Issues for the milestone matching the release being published.
    • All pull requests tied to the release milestone must be closed, including backported pull requests that may need to be merged into other release branches or trunk.
  2. Check for unresolved "cherry pick failed" Pull Requests.
    • Ensure any such PRs are either expected or manually resolved via another PR.
  3. Confirm the Stable tag in readme.txt matches trunk on WordPress.org.
    • The value should match the current stable version, not the version being built.
  4. Ensure GitHub services are fully operational

Building WooCommerce

  1. Run the "Release: Bump version number" workflow.
    • Run from trunk.
    • Choose the type of version you're releasing (beta, rc, or stable).
    • Enter as Release branch the branch you are about to release from (e.g. release/10.0).
    • Review and merge the PR created.
  2. Run the “Release: Compile changelog” workflow.
    • Run from trunk and enter the major version number and the intended release date.
    • Review and merge the two PRs created (one for trunk, one for the release branch).
    • Ensure the changelog date is correct.
  3. Build the release ZIP file using the “Release: Build ZIP file” workflow.
    • Run from trunk and enter the release branch as argument.
    • Set "Create GitHub release" to true.
    • The workflow will create a draft release tag with an attached woocommerce.zip file.

Publishing the Release

Step 1: Upload Release to WordPress.org

Step 2: Approve the Release

Step 3: Verify Release Availability

Step 4: Test and Validate the Release

  • Condition: Only perform this step for stable and RC releases (-rc.x or .x).
  • Action: Conduct thorough testing and validation of the release to ensure stability and functionality. Carefully monitor for any issues that could critically impact sites running this version.

Step 5: Update Stable Tag

  • Condition: Only perform this step if:
    • The release is a stable release (.x), and
    • No major issues were found during testing and validation (Step 4).
  • Action: Run the "Release: Update stable tag" workflow from trunk, set the version, and select the option to update the stable tag as part of the workflow input.
    • Review and merge the pull requests for both the release branch and trunk.

Step 6: Publish GitHub Release Tag

  • Action: Publish the previously created GitHub draft release tag.
  • When setting release status:
    • If releasing a dev, beta, or RC, check "Set as a pre-release."
    • If the version was marked as stable in Step 5, check "Set as the latest release."
    • If the version was not marked as stable in Step 5, do not set as the latest release.

Decision Table

StepCondition to RunAction if Condition Not Met
Step 4Not a Stable or Release Candidate (RC)Skip Step 4
Step 5Not a Stable release and no major issues in Step 4Skip Step 5
Step 6Always publish tag; mark as "latest" only if version was marked as stable in 5Do not mark as "latest" if not stable in 5