From dc3a6d35d81eae530f926aecff150813ee4eff06 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Thu, 27 Aug 2026 17:37:56 +1000 Subject: [PATCH 1/4] Bump release-toolkit to 15.0.0 15.0.0 is the first release carrying `get_prs_between_tags`' `fail_on_error:` ([wordpress-mobile/release-toolkit#772](https://github.com/wordpress-mobile/release-toolkit/pull/772)), which the next commit adopts. Major bump, so Dependabot's `ruby-minor-and-patch` group would never have proposed it. Its two breaking changes leave this repo alone: no `*_build_preflight` call sites, and `EnvManager` populating the process `ENV` by default is a no-op where no `.env` file ships. For [CMM-2332](https://linear.app/a8c/issue/CMM-2332). --- Generated with the help of Claude Code, https://claude.ai/code Co-Authored-By: Claude Code Opus 5 --- Gemfile | 2 +- Gemfile.lock | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index 4d8b4496b..b2d205dd3 100644 --- a/Gemfile +++ b/Gemfile @@ -3,4 +3,4 @@ source 'https://rubygems.org' gem 'fastlane', '~> 2.238' -gem 'fastlane-plugin-wpmreleasetoolkit', '~> 14.11' +gem 'fastlane-plugin-wpmreleasetoolkit', '~> 15.0' diff --git a/Gemfile.lock b/Gemfile.lock index 9c2747d03..8c8135fbd 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -120,7 +120,7 @@ GEM xcodeproj (>= 1.13.0, < 2.0.0) xcpretty (~> 0.4.1) xcpretty-travis-formatter (>= 0.0.3, < 2.0.0) - fastlane-plugin-wpmreleasetoolkit (14.11.3) + fastlane-plugin-wpmreleasetoolkit (15.0.0) buildkit (~> 1.5) chroma (= 0.2.0) diffy (~> 3.3) @@ -316,7 +316,7 @@ PLATFORMS DEPENDENCIES fastlane (~> 2.238) - fastlane-plugin-wpmreleasetoolkit (~> 14.11) + fastlane-plugin-wpmreleasetoolkit (~> 15.0) CHECKSUMS CFPropertyList (3.0.8) sha256=2c99d0d980536d3d7ab252f7bd59ac8be50fbdd1ff487c98c949bb66bb114261 @@ -358,7 +358,7 @@ CHECKSUMS faraday-retry (2.4.0) sha256=7b79c48fb7e56526faf247b12d94a680071ff40c9fda7cf1ec1549439ad11ebe fastimage (2.4.1) sha256=c64bebd46b6fd8943ab70c1e6e85ff728f970f2e48f92ecd249b6bc3a540ad20 fastlane (2.238.0) sha256=78e9252df2224c7e427012638e41051edfa29b133a40fda883fd2f1c13a77b98 - fastlane-plugin-wpmreleasetoolkit (14.11.3) sha256=cfe39597775611aa7745ff3a6d6c7ac07644a052bee9d7e4c3eaebe0f7e03cac + fastlane-plugin-wpmreleasetoolkit (15.0.0) sha256=6ffd06713e7e98c0d4a65df404b6cf8ffe66258b0976900899d888e57909aa67 fastlane-sirp (1.1.0) sha256=10bc94f9682efd8e1badfb31452a76dd8981f1f3a33717c765fde6d75b54d847 fiddle (1.1.8) sha256=7fa8ee3627271497f3add5503acdbc3f40b32f610fc1cf49634f083ef3f32eee forwardable (1.4.0) sha256=f1cd40cc9812937980e1c76f1aa053660990a7c9b6a98fc37d945468afcce838 From ed6f7b9cacbfb0de59deb9ed0c3ba31af518c71d Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Thu, 27 Aug 2026 17:38:03 +1000 Subject: [PATCH 2/4] Generate release notes via get_prs_between_tags MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Restores the action over the helper it wraps, now that `fail_on_error:` lets the step fail instead of publishing an error message as the release body. Verified against the live API on both paths: a real tag pair returns the notes, and a bogus `previous_tag` now raises `Octokit::BadRequest` where `fail_on_error: false` returns "❌ Error computing the list of PRs…" as the changelog. One visible change: the action rewrites GitHub's `## What's Changed` heading into `## New PRs since []()`. For [CMM-2332](https://linear.app/a8c/issue/CMM-2332). --- Generated with the help of Claude Code, https://claude.ai/code Co-Authored-By: Claude Code Opus 5 --- fastlane/Fastfile | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 416f56cb8..e3848f2fe 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -317,14 +317,16 @@ end # previous tag. `set_github_release`'s `is_generate_release_notes` cannot express # one. # -# Uses `GithubHelper` rather than the `get_prs_between_tags` action that wraps it -# until https://github.com/wordpress-mobile/release-toolkit/pull/772 gets ships in the next release-toolkit -# version (at which point we'll be able to use the action and its new `fail_on_error: true` parameter) +# `fail_on_error` is required, not cosmetic: the tag is already pushed by this +# point, and the action otherwise returns the API error as the changelog itself, +# publishing a release whose notes read "❌ Error computing the list of PRs…". def generated_release_notes(version:, token:) - Fastlane::Helper::GithubHelper.new(github_token: token).generate_release_notes( + get_prs_between_tags( repository: GITHUB_REPO, tag_name: version, - previous_tag: previous_release_tag!(version: version, token: token) + previous_tag: previous_release_tag!(version: version, token: token), + fail_on_error: true, + github_token: token ) end From ae7c8ef50dd1e7ddc1591ae3c48045c40a171cd2 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Thu, 27 Aug 2026 19:15:31 +1000 Subject: [PATCH 3/4] Streamline AI-generated comment Co-authored-by: Gio Lodi --- fastlane/Fastfile | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/fastlane/Fastfile b/fastlane/Fastfile index e3848f2fe..3d41c1b37 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -317,14 +317,13 @@ end # previous tag. `set_github_release`'s `is_generate_release_notes` cannot express # one. # -# `fail_on_error` is required, not cosmetic: the tag is already pushed by this -# point, and the action otherwise returns the API error as the changelog itself, -# publishing a release whose notes read "❌ Error computing the list of PRs…". def generated_release_notes(version:, token:) get_prs_between_tags( repository: GITHUB_REPO, tag_name: version, previous_tag: previous_release_tag!(version: version, token: token), + # Hard fail on errors. Otherwise, we might get release notes reading something + # like "Error computing the list of PRs." fail_on_error: true, github_token: token ) From aea5c594d2312701caf9af2eab8101c66e54dc1b Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Thu, 27 Aug 2026 19:16:02 +1000 Subject: [PATCH 4/4] Remove a commented empty line Co-authored-by: Gio Lodi --- fastlane/Fastfile | 1 - 1 file changed, 1 deletion(-) diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 3d41c1b37..e98916691 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -316,7 +316,6 @@ end # Build the release body via GitHub's notes generator, pinned to an explicit # previous tag. `set_github_release`'s `is_generate_release_notes` cannot express # one. -# def generated_release_notes(version:, token:) get_prs_between_tags( repository: GITHUB_REPO,