fix: add missing icu_locale_core src files to vendor tree#2
Merged
Conversation
There was a problem hiding this comment.
Copilot wasn't able to review any files in this pull request.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Agent-Logs-Url: https://github.com/piyyy314/node/sessions/71e34f59-0243-4f85-9dc7-390a2fc659d8 Co-authored-by: piyyy314 <192450738+piyyy314@users.noreply.github.com>
Agent-Logs-Url: https://github.com/piyyy314/node/sessions/71e34f59-0243-4f85-9dc7-390a2fc659d8 Co-authored-by: piyyy314 <192450738+piyyy314@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Fix failing GitHub Actions job Build from tarball
fix: add missing icu_locale_core src files to vendor tree
May 3, 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.
Build from tarballCI was failing becausedeps/crates/vendor/icu_locale_core/src/(62 files) was never committed to git. Since tarball creation usesgit checkout-index -a, these files were absent from the produced tarball, causing Cargo checksum validation to fail at build time withNo such file or directory.Changes
deps/crates/vendor/icu_locale_core/src/— adds the 62 missing source files foricu_locale_corev2.0.1. Files sourced from the published crate onstatic.crates.io; all 84 file checksums verified against the existing.cargo-checksum.jsonbefore committing..github/workflows/build-tarball.yml— adds a post-extract assertion step that checks fordeps/crates/vendor/icu_locale_core/src/extensions/private/other.rsin$TAR_DIRand fails fast with a descriptive error if absent, so regressions surface immediately rather than deep in a Cargo compile step.Original prompt
Fix failing GitHub Actions job Build from tarball (run 25258211913, job 74063864685).
Failure:
test-tarball-linuxjob, step "Build" runsmake -C "$TAR_DIR" build-ciand fails with Cargo error:error: failed to calculate checksum of: .../deps/crates/vendor/icu_locale_core/src/extensions/private/other.rsfailed to open file ... other.rsNo such file or directory (os error 2)This indicates the source tarball being tested is missing vendored Rust crate sources under
deps/crates/vendor/....Repository: piyyy314/node
Ref for failure context: 849ad8d
Tasks:
deps/cratesis not removed when building tarballs intended to be buildable/testable from source.make tartarget in the repo Makefile and anySKIP_SHARED_DEPSrelated logic that removesdeps/crates.deps/crates(and vendor files likedeps/crates/vendor/icu_locale_core/.../other.rs)..github/workflows/build-tarball.ymlafter extracting the tarball to check for presence of a representative vendored crate file (deps/crates/vendor/icu_locale_core/src/extensions/private/other.rs) and fail early with a helpful error if missing.Deliverable:
mainthat fixes the tarball contents and makes theBuild from tarballworkflow pass.Relevant files:
.github/workflows/build-tarball.ymlMakefiletarball packaging section.The following is the prior conversation context from the user's chat exploration (may be truncated):
User: Please find a solution for this failing job. Use the logs, job definition, and any referenced files where the failure occurred. Keep your response focused on the solution and include code suggestions when appropriate.
Assistant: The job is failing during Build from tarball →
test-tarball-linux→ “Build” with:error: failed to calculate checksum of: .../deps/crates/vendor/icu_locale_core/.../other.rsfailed to open file ... other.rsNo such file or directory (os error 2)That means the extracted tarball is missing at least one file inside the vendored Rust crates tree (
deps/crates/vendor/...). This is almost always caused by the tarball packaging step not including all vendored crate sources, or by the tarball generation depending on files that are present in a full git checkout but not staged into the release tarball.Fix: ensure the release tarball includes the vendored crates (and the missing file)
1) Add a verification step right after extracting the tarball (to make failures obvious)
In
.github/workflows/build-tarball.ymlatref: 849ad8dfa35bac9d2b6bc83d942b690047d4c5f2, add a quick check after “Extract tarball”:This doesn’t fix the bug by itself, but it confirms the root cause immediately and prevents confusing build logs.
2) Fix tarball generation to include
deps/crates/vendor/**The actual fix needs to be in the tarball creation logic that runs in the
build-tarballjob:In Node’s build system,
make taruses a manifest/list of files to include. Your tarball is being produced successfully, but it’s incomplete. The fix is to update the tarball file manifest (commonly atools/release/...file list, or the gyp/release tar logic) so it explicitly includes the vendored crates directory and any generated metadata Cargo needs.Concrete change to make in the repo’s tarball manifest logic:
deps/crates/vendor/**(all files, not justCargo.toml)deps/crates/Cargo.tomldeps/crates/Cargo.lock(if used).cargo/config.tomlor checksum/metadata files that the build expectsWhy this resolves the failure: the build step is compiling Rust deps and validating sources/checksums; if a source file referenced by the crate is absent from the tarball, Cargo fails exactly as shown.
3) Optional: make the build robust by (re)vendoring in the tarball build (only if acceptable)
If you intend tarballs not to carry the full vendor tree, then you must regenerate it inside the extracted tarball before buil...
This pull request was created from Copilot chat.