SwiftPM artifact setup gives up on the first dropped connection to a version lookup

Aperta Adatta ai principianti
#59,942 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 2 giorni

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
78/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
javascript, node.js, react-native

Direzione di ricerca

Inizia da packages/react-native/scripts/spm/download-spm-artifacts.js, in particolare da resolveNightlyVersion, resolveLatestV1Version e resolveSnapshotUrl; confronta le singole chiamate a fetch con il comportamento di ripetizione dei tentativi in download(). Esegui il riproduttore fornito e conferma che ogni ricerca di versione o metadati viene ripetuta in caso di interruzione della connessione, quindi verifica che la configurazione prosegua con i download degli artefatti.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Description

#59214 made download() in packages/react-native/scripts/spm/download-spm-artifacts.js retry transport errors and HTTP 408, 429 and 5xx. The lookups that run before the downloads still call fetch once: resolveNightlyVersion (registry.npmjs.org/<package>/nightly), resolveLatestV1Version (registry.npmjs.org/hermes-compiler/latest-v1) and resolveSnapshotUrl (each maven-metadata.xml). A dropped connection to any of them ends the SwiftPM setup with fetch failed, and the CI lane with it:

  • test_ios_spm_helloworld / test (Debug), run 38960453730 on #59149: Fetching snapshot metadata: https://central.sonatype.com/repository/maven-snapshots/com/facebook/hermes/hermes-ios/260318099.0.4-SNAPSHOT/maven-metadata.xml, then hermes-engine: fetch failed.
  • test_ios_rntester (Release), run 43036111930 on #59073, after #59214: Resolving nightly version from npm: react-native, then [setup-apple-spm] Artifact setup failed: fetch failed.
Steps to reproduce
  1. Clone the reproducer. It is the reproducer template with react-native and every @react-native/* package at 0.90.0-nightly-20261111-1273ca128 and @react-native-community/cli at 21.0.0-alpha.1, as the current community template sets up the nightly, plus drop-first-lookup.mjs, a node --import preload that fails the first request to each lookup with the TypeError: fetch failed a reset connection gives and answers each xcframework download with 404, and repro.sh.
  2. Run bash repro.sh. It installs the app and runs node_modules/react-native/scripts/spm/download-spm-artifacts.js --version nightly --flavor debug under the preload.
  3. Expected: the setup sends the lookup again, as download() does, and goes on to the downloads. Seen: it exits 1 after one attempt.
node v26.12.1, MINGW64_NT-10.0-26300 x86_64, react-native 0.90.0-nightly-20261111-1273ca128
[download-spm-artifacts]   Resolving nightly version from npm: react-native
[drop-first-lookup] attempt 1: https://registry.npmjs.org/react-native/nightly
fetch failed
download-spm-artifacts.js exited 1
RESULT: the setup exited 1 with "fetch failed" after one dropped connection to: https://registry.npmjs.org/react-native/nightly
React Native Version

0.90.0-nightly-20261111-1273ca128

Affected Platforms

Build - MacOS, Build - Windows

Output of npx @react-native-community/cli info
System:
  OS: Windows 11 10.0.26300
  CPU: "(32) x64 AMD Ryzen 9 9950X3D 16-Core Processor          "
  Memory: 110.43 GB / 255.67 GB
Binaries:
  Node:
    version: 26.12.1
    path: C:\Program Files\nodejs\node.EXE
  Yarn:
    version: 1.22.22
    path: C:\Users\yevhe.YEVHENII\AppData\Roaming\npm\yarn.CMD
  npm:
    version: 12.2.1
    path: C:\Program Files\nodejs\npm.CMD
  Watchman: Not Found
SDKs:
  Android SDK: Not Found
  Windows SDK:
    AllowDevelopmentWithoutDevLicense: Enabled
    Versions:
      - 10.0.19041.0
      - 10.0.26100.0
IDEs:
  Android Studio: AI-262.9437.185.2621.16467767
  Visual Studio: Not Found
Languages:
  Java:
    version: 17.0.20.1
    path: C:\Program Files\Microsoft\jdk-17.0.20.101-hotspot\bin\javac.EXE
  Ruby: Not Found
npmPackages:
  "@react-native-community/cli":
    installed: 21.0.0-alpha.1
    wanted: 21.0.0-alpha.1
  react:
    installed: 19.3.0
    wanted: 19.3.0
  react-native:
    installed: 0.90.0-nightly-20261111-1273ca128
    wanted: 0.90.0-nightly-20261111-1273ca128
  react-native-windows: Not Found
npmGlobalPackages:
  "*react-native*": Not Found
Android:
  hermesEnabled: true
  newArchEnabled: true
iOS:
  hermesEnabled: Not found
  newArchEnabled: Not found

Stacktrace or Logs
node v26.12.1, MINGW64_NT-10.0-26300 x86_64, react-native 0.90.0-nightly-20261111-1273ca128
[download-spm-artifacts]   Resolving nightly version from npm: react-native
[drop-first-lookup] attempt 1: https://registry.npmjs.org/react-native/nightly
fetch failed
download-spm-artifacts.js exited 1
RESULT: the setup exited 1 with "fetch failed" after one dropped connection to: https://registry.npmjs.org/react-native/nightly
MANDATORY Reproducer

https://github.com/YevheniiKotyrlo/rn-spm-lookup-not-retried

Screenshots and Videos

None: the setup's output above is the whole of it.

Lingua principale
C++
Stelle
127k
Fork
25.5k
Merge medio
3g 18h
PR unite (30g)
188

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di react/react-native

Tutte le issue di react/react-native

Issue simili

Altre issue su C++

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.