From 1de70344e25dc7770b703a87d96a8249bcae9d60 Mon Sep 17 00:00:00 2001 From: Antonis Lilis Date: Fri, 24 Jul 2026 14:38:49 +0200 Subject: [PATCH 1/2] ci: Disable yarn age gate when bumping first-party @sentry deps The dependency updater's `set-version` step runs `yarn up` on the just-published @sentry/* version. Yarn 4's npmMinimalAgeGate (default 1 day, auto-enabled on CI) quarantines the fresh release and fails the install. Since these are all first-party packages with no supply-chain risk, disable the gate for that single command so the updater can adopt the new version immediately instead of waiting a day. Co-Authored-By: Claude Opus 4.8 (1M context) --- scripts/update-package-json.sh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/scripts/update-package-json.sh b/scripts/update-package-json.sh index d89cd70125..c189aa10c8 100755 --- a/scripts/update-package-json.sh +++ b/scripts/update-package-json.sh @@ -32,7 +32,12 @@ set-version) done ( cd "${monorepoRoot}" - yarn up $list + # These are all first-party @sentry/* packages and the updater's job is to + # adopt the just-published version immediately. Yarn 4's npmMinimalAgeGate + # (default 1 day, auto-enabled on CI) quarantines a fresh release and fails + # `yarn up`. There's no supply-chain risk for our own packages, so disable + # the gate for this single command. + YARN_NPM_MINIMAL_AGE_GATE=0 yarn up $list ) ;; *) From 0503a9e4a7e1c31dc7b641f8ea1a956c832feaf9 Mon Sep 17 00:00:00 2001 From: Antonis Lilis Date: Fri, 24 Jul 2026 14:53:18 +0200 Subject: [PATCH 2/2] ci: Scope age-gate bypass to first-party @sentry packages only The set-version path is also sourced by update-rn.sh, which bumps the third-party react-native package. Only disable npmMinimalAgeGate when every package being upgraded is @sentry/*, so third-party bumps keep the supply-chain safeguard. Co-Authored-By: Claude Opus 4.8 (1M context) --- scripts/update-package-json.sh | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/scripts/update-package-json.sh b/scripts/update-package-json.sh index c189aa10c8..3c145bea37 100755 --- a/scripts/update-package-json.sh +++ b/scripts/update-package-json.sh @@ -27,17 +27,25 @@ set-version) if [[ "$version" == "$tagPrefix"* ]]; then version="${version:${#tagPrefix}}" fi + # Only first-party @sentry/* packages are safe to adopt immediately (see below). + allFirstParty=true for i in ${!packages[@]}; do list+="${packages[$i]}@$version " + if [[ "${packages[$i]}" != @sentry/* ]]; then + allFirstParty=false + fi done ( cd "${monorepoRoot}" - # These are all first-party @sentry/* packages and the updater's job is to - # adopt the just-published version immediately. Yarn 4's npmMinimalAgeGate - # (default 1 day, auto-enabled on CI) quarantines a fresh release and fails - # `yarn up`. There's no supply-chain risk for our own packages, so disable - # the gate for this single command. - YARN_NPM_MINIMAL_AGE_GATE=0 yarn up $list + # The updater's job is to adopt the just-published version immediately, but + # Yarn 4's npmMinimalAgeGate (default 1 day, auto-enabled on CI) quarantines a + # fresh release and fails `yarn up`. For first-party @sentry/* packages there's + # no supply-chain risk, so disable the gate. Third-party packages (e.g. + # react-native via update-rn.sh) keep the gate. + if [[ "$allFirstParty" == true ]]; then + export YARN_NPM_MINIMAL_AGE_GATE=0 + fi + yarn up $list ) ;; *)