Skip to content

Exclude WASM artifacts from GitHub releases#23221

Merged
ntBre merged 3 commits intoastral-sh:mainfrom
shaanmajid:ci/isolate-wasm-release-artifacts
Feb 12, 2026
Merged

Exclude WASM artifacts from GitHub releases#23221
ntBre merged 3 commits intoastral-sh:mainfrom
shaanmajid:ci/isolate-wasm-release-artifacts

Conversation

@shaanmajid
Copy link
Contributor

Summary

Fixes #23127.

The release.yml workflow downloads artifacts using pattern: artifacts-* with merge-multiple: true. The three WASM build targets (web, bundler, nodejs) were uploaded as artifacts-wasm-{target}, matching that glob. Since all three
contain identically-named files, they silently overwrote each other during the
merge, making the released WASM assets non-deterministic.

Renaming the artifacts from artifacts-wasm-* to wasm-npm-* excludes them from the artifacts-* glob in release.yml. Notably, the npm publish workflow is unaffected (it downloads each target by exact artifact
name and was never subject to the merge conflict).

Test Plan

N/A :p

Happy to investigate a test publish on my fork if anyone feels strongly about this. However, npm does not appear to have a test registry like PyPI -- and in any event testing seemed a bit involved -- so I didn't rush to investigate this before review.

@shaanmajid shaanmajid changed the title Rename WASM artifact names to prevent release merge conflicts [ruff] Rename WASM artifact names to prevent release merge conflicts Feb 11, 2026
@shaanmajid
Copy link
Contributor Author

To confirm my investigation from the issue: these artifacts were added by #22476 and only included in the last 3 releases (0.14.13+). Based on the description of that PR, I don't think these were intentionally added as release artifacts, so removing seems appropriate.

As an aside, some other release artifacts (e.g., dist-manifest.json) look like they can probably be safely removed as well...

Copy link
Contributor

@ntBre ntBre left a comment

Choose a reason for hiding this comment

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

Thank you, I think this makes sense to me. It probably wouldn't hurt to get a quick look from @woodruffw too, though.

For reference, here's the relevant part of release.yml:

# Get all the local artifacts for the global tasks to use (for e.g. checksums)
- name: Fetch local artifacts
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131
with:
pattern: artifacts-*
path: target/distrib/
merge-multiple: true

@ntBre ntBre added the release Related to the release process label Feb 12, 2026
@ntBre ntBre changed the title [ruff] Rename WASM artifact names to prevent release merge conflicts Exclude WASM artifacts from GitHub releases Feb 12, 2026
@ntBre ntBre requested a review from woodruffw February 12, 2026 17:52
Copy link
Member

@woodruffw woodruffw left a comment

Choose a reason for hiding this comment

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

Makes sense to me!

It might be nice to have a small comment explaining the artifact name so we don't reintroduce a clobber here, but not major either way.

@ntBre ntBre merged commit 46be943 into astral-sh:main Feb 12, 2026
44 checks passed
@shaanmajid shaanmajid deleted the ci/isolate-wasm-release-artifacts branch February 12, 2026 18:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

release Related to the release process

Projects

None yet

Development

Successfully merging this pull request may close these issues.

WASM GitHub release artifacts are from non-deterministic build target

3 participants