fix(core): Restore tarball script permissions and missing EAS build hook#6049
Merged
antonis merged 2 commits intorelease/8.9.1from Apr 27, 2026
Merged
fix(core): Restore tarball script permissions and missing EAS build hook#6049antonis merged 2 commits intorelease/8.9.1from
antonis merged 2 commits intorelease/8.9.1from
Conversation
The npm pack -> yarn pack switch in #6037 introduced two regressions: 1. yarn pack stores files with mode 0644. scripts/sentry-xcode.sh, invoked directly by Xcode's build phase, fails with "Permission denied" (#6047). Re-pack the tarball after yarn pack to restore 0755 on shell scripts and bin entrypoints. 2. yarn pack does not auto-include files referenced from the bin field. scripts/eas-build-hook.js was never in the .npmignore allowlist, so the three sentry-eas-build-* bin commands silently stopped working in the tarball (#6048 follow-up). Add it to the allowlist. Add a job_validate_tarball CI job that installs the produced tarball into a fresh project and asserts script modes, bin links, post-install executability, and that workspace:* specs were resolved. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Contributor
Author
|
@sentry review |
Contributor
Author
|
@cursor review |
There was a problem hiding this comment.
✅ Bugbot reviewed your changes and found no new issues!
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit bb63082. Configure here.
Contributor
Android (legacy) Performance metrics 🚀
|
Contributor
iOS (legacy) Performance metrics 🚀
|
📲 Install BuildsAndroid
|
Contributor
Android (new) Performance metrics 🚀
|
Contributor
iOS (new) Performance metrics 🚀
|
alwx
approved these changes
Apr 27, 2026
3 tasks
10 tasks
3 tasks
11 tasks
antonis
added a commit
that referenced
this pull request
Apr 27, 2026
* fix(core): Restore tarball script permissions and missing EAS build hook (#6049) * fix(core): Restore tarball script permissions and missing EAS build hook The npm pack -> yarn pack switch in #6037 introduced two regressions: 1. yarn pack stores files with mode 0644. scripts/sentry-xcode.sh, invoked directly by Xcode's build phase, fails with "Permission denied" (#6047). Re-pack the tarball after yarn pack to restore 0755 on shell scripts and bin entrypoints. 2. yarn pack does not auto-include files referenced from the bin field. scripts/eas-build-hook.js was never in the .npmignore allowlist, so the three sentry-eas-build-* bin commands silently stopped working in the tarball (#6048 follow-up). Add it to the allowlist. Add a job_validate_tarball CI job that installs the produced tarball into a fresh project and asserts script modes, bin links, post-install executability, and that workspace:* specs were resolved. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs: Update changelog Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * fix(ci): Install both tarballs in validate job to satisfy cross-dep (#6052) The validate job ran `npm install <core tarball>` only. The published core package.json declares `@sentry/expo-upload-sourcemaps` at the same version as core (workspace:* is resolved at pack time). On a release branch the bumped version is not on the npm registry yet, so npm tried to fetch from registry and failed with ETARGET (e.g. when releasing 8.9.2: "No matching version found for @sentry/expo-upload-sourcemaps@8.9.2"). Install both tarballs together so the sister dep is satisfied from local. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * release: 8.9.2 --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Co-authored-by: antonis <304044+antonis@users.noreply.github.com> Co-authored-by: sentry-release-bot[bot] <180476844+sentry-release-bot[bot]@users.noreply.github.com>
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.
📢 Type of change
📜 Description
8.9.1 shipped two regressions caused by switching
packages/core/scripts/build-tarball.shfromnpm packtoyarn packin #6037:yarn packstores files with mode0644.scripts/sentry-xcode.sh, invoked directly by Xcode's build phase, fails withPermission denied([8.9.1] ../node_modules/@sentry/react-native/scripts/sentry-xcode.sh: Permission denied #6047).scripts/eas-build-hook.jsmissing from the tarball.yarn packdoes not auto-include files referenced from thebinfield;npm packdid. The file has never been in the.npmignoreallowlist, so the threesentry-eas-build-on-{success,error,complete}bin commands silently stopped working in 8.9.1 (#6048 follow-up).Changes:
packages/core/scripts/build-tarball.sh— afteryarn pack, extract →chmod 0755onscripts/*.shand the two bin.jsentries → re-pack.packages/core/.npmignore— allowscripts/eas-build-hook.js..github/workflows/buildandtest.yml— newjob_validate_tarballjob that installs the produced tarball into a fresh project and asserts script modes, bin links, post-install executability ofsentry-xcode.sh, and thatworkspace:*specs were resolved.Note: this PR fixes only the bin-scripts follow-up of #6048. The primary bug in that issue (config plugin not applied during EAS cloud prebuild) is unrelated and stays open.
💡 Motivation and Context
8.9.1 reached npm with a broken tarball: iOS builds break with
Permission denied, and the EAS build-hook bin commands no longer resolve. Both ship the same week and share the same root cause. Users currently downgrade to 8.8.0 as a workaround.Fixes #6047. Fixes the bin-scripts portion of #6048.
💚 How did you test it?
Locally:
build-tarball.shand inspected withtar -tvf: all*.shfiles and both bin*.jsentries are0755;eas-build-hook.jsis present.npm init -yproject: all foursentry-eas-build-*/sentry-expo-upload-sourcemapsbin links resolve and are executable;scripts/sentry-xcode.shis-rwxr-xr-xpost-install;package.jsonno longer containsworkspace:strings.job_build.📝 Checklist
sendDefaultPIIis enabled🔮 Next steps
Changelog entry will be added once this PR has a number to reference.
🤖 Generated with Claude Code