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

Abierto Apto para principiantes
#59,942 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 2 días

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
78/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
javascript, node.js, react-native

Línea de trabajo

Empieza por packages/react-native/scripts/spm/download-spm-artifacts.js, especialmente por resolveNightlyVersion, resolveLatestV1Version y resolveSnapshotUrl; compara sus llamadas individuales a fetch con el comportamiento de reintento en download(). Ejecuta el reproductor proporcionado y confirma que cada consulta de versión o metadatos vuelve a intentarse si se interrumpe la conexión. Después, verifica que la configuración continúa con las descargas de artefactos.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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.

Lenguaje dominante
C++
Estrellas
127k
Forks
25.5k
Merge medio
3 d 18 h
PR fusionados (30 d)
188

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de react/react-native

Todos los issues de react/react-native

Issues similares

Más issues de C++

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.