Repository navigation
ci: switch plugin releases from changesets to release-please - #820
Merged
Merged
Conversation
|
josephfusco
marked this pull request as ready for review
October 22, 2026 19:58
josephfusco
requested review from
a team,
colinmurphy and
wpe-ie-deploy-bot
as code owners
October 22, 2026 19:58
josephfusco
marked this pull request as draft
October 22, 2026 19:58
josephfusco
marked this pull request as ready for review
October 22, 2026 20:04
josephfusco
enabled auto-merge
October 22, 2026 20:06
josephfusco
disabled auto-merge
October 22, 2026 20:06
This was referenced Oct 22, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Replaces the changesets release flow with release-please, matching faustjs and wp-graphql-content-blocks. Closes #668.
Why
The changesets workflow named each release branch with a timestamp, so every push to
mainthat touchedplugins/opened a new release PR. On 2026-06-22 that produced #687–#696, most of them closed as duplicates. Lock-file-only changes from Dependabot also triggered it. release-please keeps one release PR per plugin and updates it in place.What changes
release-please-config.json/.release-please-manifest.json: config is copied from faustjs (same changelog sections, node release type). The four released plugins are components;examples/is excluded so example and Dependabot changes don't trigger releases.separate-pull-requests: truegives one release PR per plugin, the same as today.@wpengine/<name>-wordpress-plugin-<version>, viatag-separator: "-"and nov. release-please picks up the existing GitHub Releases as history, and the download URLs inplugins/composer-packages.jsonkeep the same shape.release-please.yml: runs on push tomain. It has three jobs:.github/scripts/sync_plugin_release_files.sh: the version-file logic moved out of the old workflow. It runs each plugin'snpm run version(plugin header,readme.txtStable tag,composer.json) andupdate_composer_package.sh.release-plugin.yml: replacespre-release-tag.yml. It builds the zip withcomposer archiveand uploads it to the release that release-please created, marking 0.x versions as pre-releases as before. It can also be run by hand with a tag to rebuild a release's zip..changeset/,create-release-branch.yml,pre-release-tag.yml, and the@changesets/*dev dependencies.lint-pr.yml: adds thedepstype, which release-please lists under Dependencies.Behavior changes to review
RELEASE_PATapproval step is gone. If we want to keep auto-merge, it can be added back.featandfixdrive minor and patch bumps.0.0.7, the last tagged release.package.jsonalready says 0.0.8, but 0.0.8 was never tagged or released, so the next release should come out as 0.0.8.GITHUB_TOKEN, so CI doesn't run on them automatically, same as faustjs.Testing
sync_plugin_release_files.sh wpgraphql-webhookslocally after bumping itspackage.jsonto 0.0.9. It updated the plugin header,readme.txt,composer.json, andcomposer-packages.json, with the expected release URL.mainafter merge will be the real test.Use of AI Tools
AI assistance: Yes
Tool(s): Claude Code
Model(s): Claude Opus 5.5
Used for: Assisting with porting the release-please setup from faustjs, writing the workflows, and testing the version sync script.