chore: Upgrade release-please-action from v3 to v5#179
Conversation
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
Co-Authored-By: Aaron Zeisler <azeisler@launchdarkly.com>
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ 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' }} |
There was a problem hiding this comment.
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)
Reviewed by Cursor Bugbot for commit c1fad87. Configure here.
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.


Summary
Upgrade
release-please-actionfrom v3.7.13 to v5.0.0 and migrate from the oldgoogle-github-actionsorg togoogleapis. This resolves the Node.js 20 deprecation warning. The only meaningful change in v5 is the runtime bump fromnode20tonode24; all action inputs/outputs remain identical.Tracked by: SDK-2319
Review & Testing Checklist for Human
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-pleaseworkflow 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.13togoogleapis/release-please-action@v5.0.0, and removes the deprecatedcommand: manifestinput.Tightens workflow step gating by updating all
if:checks to explicitly comparesteps.release.outputs.releases_createdto'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.