Skip to content

chore: Upgrade release-please-action from v3 to v5#179

Merged
aaron-zeisler merged 2 commits into
mainfrom
aaronz/SDK-2319/release-please-v5-upgrade
May 7, 2026
Merged

chore: Upgrade release-please-action from v3 to v5#179
aaron-zeisler merged 2 commits into
mainfrom
aaronz/SDK-2319/release-please-v5-upgrade

Conversation

@devin-ai-integration

@devin-ai-integration devin-ai-integration Bot commented May 4, 2026

Copy link
Copy Markdown
Contributor

Summary

Upgrade release-please-action from v3.7.13 to v5.0.0 and migrate from the old google-github-actions org to googleapis. This resolves the Node.js 20 deprecation warning. The only meaningful change in v5 is the runtime bump from node20 to node24; all action inputs/outputs remain identical.

Tracked by: SDK-2319

Review & Testing Checklist for Human

  • Verify the workflow file still has correct indentation and formatting
  • Optionally trigger the workflow via Actions → Run Release Please → Run workflow on this branch to confirm it runs cleanly on node24

Notes

This is a larger version jump (v3 → v5). The v3 → v4 changes were primarily internal refactoring with no breaking changes to action inputs/outputs.

Link to Devin session: https://app.devin.ai/sessions/e58ee26521844473ae277348480a32d1


Note

Low Risk
Low risk: only updates the release-please workflow action version/org and tweaks step gating conditions; failures would be limited to the release automation pipeline.

Overview
Upgrades the Release Please GitHub Action from google-github-actions/release-please-action@v3.7.13 to googleapis/release-please-action@v5.0.0, and removes the deprecated command: manifest input.

Tightens workflow step gating by updating all if: checks to explicitly compare steps.release.outputs.releases_created to 'true', so publish/build steps only run when a release is actually created.

Reviewed by Cursor Bugbot for commit c1fad87. Bugbot is set up for automated code reviews on this repo. Configure here.

@devin-ai-integration

Copy link
Copy Markdown
Contributor Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

@devin-ai-integration devin-ai-integration Bot added the devin-pr PR created by Devin label May 4, 2026
@aaron-zeisler aaron-zeisler marked this pull request as ready for review May 6, 2026 22:31
@aaron-zeisler aaron-zeisler requested a review from a team as a code owner May 6, 2026 22:31
Comment thread .github/workflows/release-please.yml
Comment thread .github/workflows/release-please.yml
Co-Authored-By: Aaron Zeisler <azeisler@launchdarkly.com>

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit c1fad87. Configure here.


- uses: actions/checkout@v3
if: ${{ steps.release.outputs.releases_created }}
if: ${{ steps.release.outputs.releases_created == 'true' }}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wrong output name may always evaluate to true

High Severity

In v4/v5 of release-please-action, releases_created (plural) has a documented bug (Issue #965) where it defaults to "true" even when no release is created. The official documentation and examples recommend using release_created (singular) for single-package repositories like this one. Since the manifest only defines a single package at ., using the plural form may cause all conditional steps—including the publish step with dry_run: false—to execute on every push to main.

Additional Locations (2)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit c1fad87. Configure here.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't believe this is correct. I verified the v5 source code directly — the relevant line is:

core.setOutput('releases_created', releases.length > 0);

This outputs the string "true" when releases exist and "false" when they don't. With the == 'true' comparison I added, the conditional works correctly:

  • Releases created → "true" == 'true'true (steps run)
  • No releases → "false" == 'true'false (steps skip)

The claim that releases_created "defaults to true even when no release is created" (Issue #965) doesn't match the actual source code. The plural releases_created is the correct output for checking whether any releases were created across all packages. The singular release_created is a path-specific output (set per-package), which also works for single-package repos but isn't necessary here.

No change needed — the current == 'true' comparison is correct.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

aside: Bot was confused here because this was the data type mistake. The value is "true"/"false" but it used to be true/false. So if checks started passing for "false" because !!"false" === true.

@aaron-zeisler aaron-zeisler merged commit 2f8f899 into main May 7, 2026
8 checks passed
@aaron-zeisler aaron-zeisler deleted the aaronz/SDK-2319/release-please-v5-upgrade branch May 7, 2026 17:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

devin-pr PR created by Devin

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants