Skip to content

CI: Don't build release notes during plugin build workflow for WP Core sync#76398

Merged
ockham merged 1 commit intotrunkfrom
fix/build-plugin-workflow-dont-build-release-notes-for-wordpress-core-sync
Mar 11, 2026
Merged

CI: Don't build release notes during plugin build workflow for WP Core sync#76398
ockham merged 1 commit intotrunkfrom
fix/build-plugin-workflow-dont-build-release-notes-for-wordpress-core-sync

Conversation

@ockham
Copy link
Copy Markdown
Contributor

@ockham ockham commented Mar 11, 2026

What?

Fixes a bug in the "Build Gutenberg Plugin Zip" GHA workflow.

Why?

When manually running the "Build Gutenberg Plugin Zip" GHA workflow to publish version 22.7.0 RC 3 of the plugin, it failed with the following error:

Error: Failed to CreateArtifact: Received non-retryable error: Failed request: (409) Conflict: an artifact with this name already exists on the workflow run

Reported here: #75844 (comment).

How?

tl;dr By only generating and uploading the release notes artifact if run for the IS_GUTENBERG_PLUGIN case (and skipping otherwise).

For a more detailed explanation, refer to #75844 (comment).

Testing Instructions

Gotta manually run the "Build Gutenberg Plugin Zip" GHA workflow to find out 😬
(Should cherry-pick this PR to the release/22.7 before attempting.)

Follow-up

There's some more opportunity for cleanup/optimization of that workflow (but not critical to unblock the GB 22.7.0 release). I'll file another PR in the near future.

@ockham ockham requested review from desrosj and scruffian March 11, 2026 14:46
@ockham ockham self-assigned this Mar 11, 2026
@ockham ockham added [Type] Bug An existing feature does not function as intended [Type] Build Tooling Issues or PRs related to build tooling Backport to Gutenberg RC Pull request that needs to be backported to a Gutenberg release candidate (RC) and removed [Type] Bug An existing feature does not function as intended labels Mar 11, 2026
Copy link
Copy Markdown
Contributor

@scruffian scruffian left a comment

Choose a reason for hiding this comment

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

The reasoning makes sense to me.

@github-actions
Copy link
Copy Markdown

The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the props-bot label.

If you're merging code through a pull request on GitHub, copy and paste the following into the bottom of the merge commit message.

Co-authored-by: ockham <bernhard-reiter@git.wordpress.org>
Co-authored-by: scruffian <scruffian@git.wordpress.org>

To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook.

@ockham ockham merged commit d738de8 into trunk Mar 11, 2026
49 of 55 checks passed
@ockham ockham deleted the fix/build-plugin-workflow-dont-build-release-notes-for-wordpress-core-sync branch March 11, 2026 14:59
@github-actions github-actions bot added this to the Gutenberg 22.8 milestone Mar 11, 2026
@scruffian
Copy link
Copy Markdown
Contributor

I just cherry-picked this PR to the release/22.7 branch to get it included in the next release: 20688f7

scruffian added a commit that referenced this pull request Mar 11, 2026
…e sync (#76398)

Co-authored-by: ockham <bernhard-reiter@git.wordpress.org>
Co-authored-by: scruffian <scruffian@git.wordpress.org>
@scruffian scruffian removed the Backport to Gutenberg RC Pull request that needs to be backported to a Gutenberg release candidate (RC) label Mar 11, 2026
@github-actions
Copy link
Copy Markdown

Flaky tests detected in 2f1ede7.
Some tests passed with failed attempts. The failures may not be related to this commit but are still reported for visibility. See the documentation for more information.

🔍 Workflow run URL: https://github.com/WordPress/gutenberg/actions/runs/22958434831
📝 Reported issues:

@ockham
Copy link
Copy Markdown
Contributor Author

ockham commented Mar 11, 2026

Looks like it worked 🎉 https://github.com/WordPress/gutenberg/actions/runs/22959467975

@desrosj
Copy link
Copy Markdown
Member

desrosj commented Mar 11, 2026

Thanks for spotting this and fixing @ockham/@scruffian! This change makes sense.

Process question: do Gutenberg releases ever happen within the wp/X.Y branches? Perhaps for security releases? If so, this should likely get the Backport to WP 7.0 Branch label as well.

I considered whether it would be better to separate these 2 steps into a separate job entirely. These steps are not directly related to "building the plugin asset," and it's not very clear when these steps actually run without knowing they happen as a part of the build job and looking in the log.

But unfortunately, npm run other:changelog requires a full npm install. So these two steps would go from ~2 seconds to ~2 minutes, and I don't think that tradeoff is worth it at this time.

I posed the question of "how to make it so the other:changelog script could run without requiring a full npm i" to Claude, and this was what it came up with:

- name: Install changelog script dependencies
  run: |
      # Install only the packages required by bin/plugin/commands/changelog.js
      # and its dependencies, rather than the full project install.
      npm install --no-save \
        "@octokit/rest@$(jq -r '.packages["node_modules/@octokit/rest"].version' package-lock.json)" \
        "sprintf-js@$(jq -r '.packages["node_modules/sprintf-js"].version' package-lock.json)" \
        "semver@$(jq -r '.packages["node_modules/semver"].version' package-lock.json)" \
        "commander@$(jq -r '.packages["node_modules/commander"].version' package-lock.json)" \
        "chalk@$(jq -r '.packages["node_modules/chalk"].version' package-lock.json)"

If there were an easy way to have a "separate" package.json or text file containing the required dependencies for the script, then I think that would potentially be worth pursuing (maybe creating a package for the script instead of including it in the bin?), but having to list each one out in this step is just asking for a change to be missed in the future.

@ockham
Copy link
Copy Markdown
Contributor Author

ockham commented Mar 12, 2026

Process question: do Gutenberg releases ever happen within the wp/X.Y branches? Perhaps for security releases? If so, this should likely get the Backport to WP 7.0 Branch label as well.

I don't think we ever run GB releases from wp/X.Y branches. The latter are only used to sync GB code over to Core, and to release npms.

I considered whether it would be better to separate these 2 steps into a separate job entirely. These steps are not directly related to "building the plugin asset," and it's not very clear when these steps actually run without knowing they happen as a part of the build job and looking in the log.

But unfortunately, npm run other:changelog requires a full npm install. So these two steps would go from ~2 seconds to ~2 minutes, and I don't think that tradeoff is worth it at this time.

It's a bit of a chicken-egg problem I think. We're trying to isolate the build step as much as possible, and to share the resulting plugin zip available elsewhere (GB release, Core sync) -- previously only through GHA artifact upload and download, now also via GHCR. But as you've observed, right not release notes generation shares the npm install requirement, so it's kind of inextricable from the build step.

I posed the question of "how to make it so the other:changelog script could run without requiring a full npm i" to Claude, and this was what it came up with:

- name: Install changelog script dependencies
  run: |
      # Install only the packages required by bin/plugin/commands/changelog.js
      # and its dependencies, rather than the full project install.
      npm install --no-save \
        "@octokit/rest@$(jq -r '.packages["node_modules/@octokit/rest"].version' package-lock.json)" \
        "sprintf-js@$(jq -r '.packages["node_modules/sprintf-js"].version' package-lock.json)" \
        "semver@$(jq -r '.packages["node_modules/semver"].version' package-lock.json)" \
        "commander@$(jq -r '.packages["node_modules/commander"].version' package-lock.json)" \
        "chalk@$(jq -r '.packages["node_modules/chalk"].version' package-lock.json)"

If there were an easy way to have a "separate" package.json or text file containing the required dependencies for the script, then I think that would potentially be worth pursuing (maybe creating a package for the script instead of including it in the bin?), but having to list each one out in this step is just asking for a change to be missed in the future.

Agree 100% -- it'd be way too fragile to list those dependencies individually. I'm not sure I love the idea of yet another package for a tool that's never going to be "shipped" as part of GB, but maybe we can explore some options. Maybe the bin/ folder can get its own package.json? Or maybe we can rewrite the changelog generation script in a different language (PHP or shell) that doesn't require any dependencies? 🤔

@desrosj desrosj added the Backport to WP 7.0 Beta/RC Pull request that needs to be backported to the WordPress major release that's currently in beta label Mar 16, 2026
@github-actions
Copy link
Copy Markdown

There was a conflict while trying to cherry-pick the commit to the wp/7.0 branch. Please resolve the conflict manually and create a PR to the wp/7.0 branch.

PRs to wp/7.0 are similar to PRs to trunk, but you should base your PR on the wp/7.0 branch instead of trunk.

# Checkout the wp/7.0 branch instead of trunk.
git checkout wp/7.0

# Create a new branch for your PR.
git checkout -b my-branch

# Cherry-pick the commit.
git cherry-pick d738de8b5ccd5cfc0dceee7e7c232738ebade15c

# Check which files have conflicts.
git status

# Resolve the conflict...
# Add the resolved files to the staging area.
git status
git add .
git cherry-pick --continue

# Push the branch to the repository
git push origin my-branch

# Create a PR and set the base to the wp/7.0 branch.
# See https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/changing-the-base-branch-of-a-pull-request.

desrosj pushed a commit that referenced this pull request Mar 17, 2026
…e sync (#76398)

Co-authored-by: ockham <bernhard-reiter@git.wordpress.org>
Co-authored-by: scruffian <scruffian@git.wordpress.org>
desrosj added a commit that referenced this pull request Mar 17, 2026
…e sync (#76398) (#76578)

Co-authored-by: desrosj <desrosj@git.wordpress.org>
Co-authored-by: ockham <bernhard-reiter@git.wordpress.org>
Co-authored-by: scruffian <scruffian@git.wordpress.org>
@desrosj desrosj added Backported to WP Core Pull request that has been successfully merged into WP Core and removed Backport to WP 7.0 Beta/RC Pull request that needs to be backported to the WordPress major release that's currently in beta labels Mar 17, 2026
@desrosj
Copy link
Copy Markdown
Member

desrosj commented Mar 17, 2026

Manually cherry-picked in #76578/d738de8b5ccd5cfc0dceee7e7c232738ebade15c.

pento pushed a commit to WordPress/wordpress-develop that referenced this pull request Mar 19, 2026
This updates the pinned hash from the `gutenberg` from `8c78d87453509661a9f28f978ba2c242d515563b` to `487a096a9782ba6110a7686d7b4b2d0c55ed1b06`.

The following changes are included:

- Disables anchor support for the Page Break block. (WordPress/gutenberg#76434)
- WP Admin: Update Connectors screen footer text for consistency. (WordPress/gutenberg#76382)
- E2E Tests: Add coverage for AI plugin callout banner on Connectors page (WordPress/gutenberg#76432)
- Update sync docs (WordPress/gutenberg#75972)
- RTC: Add preference for collaborator notifications (WordPress/gutenberg#76460)
- Fix "should undo bold" flaky test (WordPress/gutenberg#76464)
- TimePicker: Clamp month day to valid day for month (WordPress/gutenberg#76400)
- RTC: Fix error when entity record doesn't have 'meta' property (WordPress/gutenberg#76311)
- Navigation: Update close button size. (WordPress/gutenberg#76482)
- TemplateContentPanel: fix useSelect warning (WordPress/gutenberg#76421)
- DataViews: Add spinner in `DataViewsLayout` in initial load of data (WordPress/gutenberg#76486) (WordPress/gutenberg#76490)
- RTC: Fix TypeError in areEditorStatesEqual when selection is undefined (WordPress/gutenberg#76163)
- Page/Post Content Focus Mode: Fix insertion into Post Content block (WordPress/gutenberg#76477)
- Revisions: use useSubRegistry={false} to fix global store selectors (WordPress/gutenberg#76152) (WordPress/gutenberg#76522)
- Fix RTL styling on Connectors, Font Library, and boot-based admin pages (WordPress/gutenberg#76496)
- RTC: Auto-register custom taxonomy rest_base values for CRDT sync (WordPress/gutenberg#75983)
- RTC: Add a limit for the default provider (WordPress/gutenberg#76437)
- Fix RTL styling on AI plugin callout banner (WordPress/gutenberg#76497)
- Add command palette trigger button to admin bar (WordPress/gutenberg#75757)
- Block Bindings: Remove source items constrained by enums (WordPress/gutenberg#76200)
- HTML Block: Remove "unsaved changes" check (WordPress/gutenberg#76086)
- CI: Don't build release notes during plugin build workflow for WP Core sync (WordPress/gutenberg#76398) (WordPress/gutenberg#76578)
- CI: Simplify strategy matrix in Build Gutenberg Plugin Zip workflow (WordPress/gutenberg#76435) (WordPress/gutenberg#76538)
- Media: Add hooks and extension points for client-side media processing (WordPress/gutenberg#74913)
- RTC: Fix list sidebar reset during real-time collaboration (WordPress/gutenberg#76025)
- RTC: Fix CRDT serialization of nested RichText attributes (WordPress/gutenberg#76597)
- RTC: Remove post list lock icon and replace user-specific lock text (WordPress/gutenberg#76322)
- Fix HEIC upload error handling and sub-size format (WordPress/gutenberg#76514)
- RTC: Fix cursor index sync with rich text formatting (WordPress/gutenberg#76418)
- RTC: Allow filtering of `SyncConnectionModal` (WordPress/gutenberg#76554)
- RTC: Implement front-end peer limits (WordPress/gutenberg#76565)
- Navigation overlay close button may be displayed twice (WordPress/gutenberg#76585)
- Site Editor > Templates: fix author filter (WordPress/gutenberg#76625)
- Revisions: Show changed block attributes in inspector sidebar (WordPress/gutenberg#76550)
- Fix IS_GUTENBERG_PLUGIN env var override in build config  (WordPress/gutenberg#76605)
- Real Time Collaboration: Introduce filters for the polling intervals. (WordPress/gutenberg#76518)
- RTC: Fix RichTextData deserialization (WordPress/gutenberg#76607)
- Cross Origin Isolation: Remove `img` from the list of elements that get mutated (WordPress/gutenberg#76618)
- RTC: Scroll to collaborator on click (WordPress/gutenberg#76561)
- Update changelog link for pull request 11276 (WordPress/gutenberg#76638)
- Fix backport changelog filename (WordPress/gutenberg#76651)
- Build: Skip non-minified build for WASM-inlined workers (WordPress/gutenberg#76615)
- RTC: Change RTC option name (WordPress/gutenberg#76643)
- BlockListBlock: fix crash when selectedProps are null (WordPress/gutenberg#75826)
- Build: Fix vips worker 404 when SCRIPT_DEBUG is true (WordPress/gutenberg#76657)
- useMediaQuery: support in-iframe queries via new `WindowContext` (WordPress/gutenberg#76446) (WordPress/gutenberg#76660)
- Refactor admin-ui Page component to use @wordpress/theme tokens and @wordpress/ui layout primitive (WordPress/gutenberg#75963)
- Connectors: Improve accessibility (WordPress/gutenberg#76456)
- Build: Remove unused JXL WASM module from vips worker (WordPress/gutenberg#76639)
- Connectors: fix button size (WordPress/gutenberg#76582)
- Compose: Implement useCopyToClipboard and useCopyOnClick with native clipboard API (WordPress/gutenberg#75723) (WordPress/gutenberg#76663)
- Connectors: Fetch specific plugin instead of all plugins (WordPress/gutenberg#76594)
- Revisions: Add Meta fields diff panel to document sidebar (WordPress/gutenberg#76341)
- Loosen client-side media processing requirements (WordPress/gutenberg#76616)
- Reduce the added halo for selected block. (WordPress/gutenberg#76619)
- Connectors: Add unregisterConnector and upsert support (WordPress/gutenberg#76541)

A full list of changes can be found on GitHub: https://github.com/WordPress/gutenberg/compare/8c78d87453509661a9f28f978ba2c242d515563b…487a096a9782ba6110a7686d7b4b2d0c55ed1b06.

Log created with:

git log --reverse --format="- %s" 8c78d87453509661a9f28f978ba2c242d515563b..487a096a9782ba6110a7686d7b4b2d0c55ed1b06 | sed 's|#\([0-9][0-9]*\)|https://github.com/WordPress/gutenberg/pull/\1|g; /github\.com\/WordPress\/gutenberg\/pull/!d' | pbcopy

See #64595.

git-svn-id: https://develop.svn.wordpress.org/trunk@62063 602fd350-edb4-49c9-b593-d223f7449a82
markjaquith pushed a commit to markjaquith/WordPress that referenced this pull request Mar 19, 2026
This updates the pinned hash from the `gutenberg` from `8c78d87453509661a9f28f978ba2c242d515563b` to `487a096a9782ba6110a7686d7b4b2d0c55ed1b06`.

The following changes are included:

- Disables anchor support for the Page Break block. (WordPress/gutenberg#76434)
- WP Admin: Update Connectors screen footer text for consistency. (WordPress/gutenberg#76382)
- E2E Tests: Add coverage for AI plugin callout banner on Connectors page (WordPress/gutenberg#76432)
- Update sync docs (WordPress/gutenberg#75972)
- RTC: Add preference for collaborator notifications (WordPress/gutenberg#76460)
- Fix "should undo bold" flaky test (WordPress/gutenberg#76464)
- TimePicker: Clamp month day to valid day for month (WordPress/gutenberg#76400)
- RTC: Fix error when entity record doesn't have 'meta' property (WordPress/gutenberg#76311)
- Navigation: Update close button size. (WordPress/gutenberg#76482)
- TemplateContentPanel: fix useSelect warning (WordPress/gutenberg#76421)
- DataViews: Add spinner in `DataViewsLayout` in initial load of data (WordPress/gutenberg#76486) (WordPress/gutenberg#76490)
- RTC: Fix TypeError in areEditorStatesEqual when selection is undefined (WordPress/gutenberg#76163)
- Page/Post Content Focus Mode: Fix insertion into Post Content block (WordPress/gutenberg#76477)
- Revisions: use useSubRegistry={false} to fix global store selectors (WordPress/gutenberg#76152) (WordPress/gutenberg#76522)
- Fix RTL styling on Connectors, Font Library, and boot-based admin pages (WordPress/gutenberg#76496)
- RTC: Auto-register custom taxonomy rest_base values for CRDT sync (WordPress/gutenberg#75983)
- RTC: Add a limit for the default provider (WordPress/gutenberg#76437)
- Fix RTL styling on AI plugin callout banner (WordPress/gutenberg#76497)
- Add command palette trigger button to admin bar (WordPress/gutenberg#75757)
- Block Bindings: Remove source items constrained by enums (WordPress/gutenberg#76200)
- HTML Block: Remove "unsaved changes" check (WordPress/gutenberg#76086)
- CI: Don't build release notes during plugin build workflow for WP Core sync (WordPress/gutenberg#76398) (WordPress/gutenberg#76578)
- CI: Simplify strategy matrix in Build Gutenberg Plugin Zip workflow (WordPress/gutenberg#76435) (WordPress/gutenberg#76538)
- Media: Add hooks and extension points for client-side media processing (WordPress/gutenberg#74913)
- RTC: Fix list sidebar reset during real-time collaboration (WordPress/gutenberg#76025)
- RTC: Fix CRDT serialization of nested RichText attributes (WordPress/gutenberg#76597)
- RTC: Remove post list lock icon and replace user-specific lock text (WordPress/gutenberg#76322)
- Fix HEIC upload error handling and sub-size format (WordPress/gutenberg#76514)
- RTC: Fix cursor index sync with rich text formatting (WordPress/gutenberg#76418)
- RTC: Allow filtering of `SyncConnectionModal` (WordPress/gutenberg#76554)
- RTC: Implement front-end peer limits (WordPress/gutenberg#76565)
- Navigation overlay close button may be displayed twice (WordPress/gutenberg#76585)
- Site Editor > Templates: fix author filter (WordPress/gutenberg#76625)
- Revisions: Show changed block attributes in inspector sidebar (WordPress/gutenberg#76550)
- Fix IS_GUTENBERG_PLUGIN env var override in build config  (WordPress/gutenberg#76605)
- Real Time Collaboration: Introduce filters for the polling intervals. (WordPress/gutenberg#76518)
- RTC: Fix RichTextData deserialization (WordPress/gutenberg#76607)
- Cross Origin Isolation: Remove `img` from the list of elements that get mutated (WordPress/gutenberg#76618)
- RTC: Scroll to collaborator on click (WordPress/gutenberg#76561)
- Update changelog link for pull request 11276 (WordPress/gutenberg#76638)
- Fix backport changelog filename (WordPress/gutenberg#76651)
- Build: Skip non-minified build for WASM-inlined workers (WordPress/gutenberg#76615)
- RTC: Change RTC option name (WordPress/gutenberg#76643)
- BlockListBlock: fix crash when selectedProps are null (WordPress/gutenberg#75826)
- Build: Fix vips worker 404 when SCRIPT_DEBUG is true (WordPress/gutenberg#76657)
- useMediaQuery: support in-iframe queries via new `WindowContext` (WordPress/gutenberg#76446) (WordPress/gutenberg#76660)
- Refactor admin-ui Page component to use @wordpress/theme tokens and @wordpress/ui layout primitive (WordPress/gutenberg#75963)
- Connectors: Improve accessibility (WordPress/gutenberg#76456)
- Build: Remove unused JXL WASM module from vips worker (WordPress/gutenberg#76639)
- Connectors: fix button size (WordPress/gutenberg#76582)
- Compose: Implement useCopyToClipboard and useCopyOnClick with native clipboard API (WordPress/gutenberg#75723) (WordPress/gutenberg#76663)
- Connectors: Fetch specific plugin instead of all plugins (WordPress/gutenberg#76594)
- Revisions: Add Meta fields diff panel to document sidebar (WordPress/gutenberg#76341)
- Loosen client-side media processing requirements (WordPress/gutenberg#76616)
- Reduce the added halo for selected block. (WordPress/gutenberg#76619)
- Connectors: Add unregisterConnector and upsert support (WordPress/gutenberg#76541)

A full list of changes can be found on GitHub: https://github.com/WordPress/gutenberg/compare/8c78d87453509661a9f28f978ba2c242d515563b…487a096a9782ba6110a7686d7b4b2d0c55ed1b06.

Log created with:

git log --reverse --format="- %s" 8c78d87453509661a9f28f978ba2c242d515563b..487a096a9782ba6110a7686d7b4b2d0c55ed1b06 | sed 's|#\([0-9][0-9]*\)|https://github.com/WordPress/gutenberg/pull/\1|g; /github\.com\/WordPress\/gutenberg\/pull/!d' | pbcopy

See #64595.
Built from https://develop.svn.wordpress.org/trunk@62063


git-svn-id: http://core.svn.wordpress.org/trunk@61345 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Backported to WP Core Pull request that has been successfully merged into WP Core [Type] Build Tooling Issues or PRs related to build tooling

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants