SwiftPM artifact setup gives up on the first dropped connection to a version lookup
维护者通常 2 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 2/5
- 预计耗时
- 1-3 小时
- 新手友好度
- 78/100
- Issue 类型
- 缺陷
- 描述清晰度
- 描述清楚
- 活跃度
- 活跃
- 技术栈
- javascript, node.js, react-native
- 领域
- build-system, mobile
调研方向
从 packages/react-native/scripts/spm/download-spm-artifacts.js 开始,重点查看 resolveNightlyVersion、resolveLatestV1Version 和 resolveSnapshotUrl;将它们各自单次调用 fetch 的行为与 download() 中的重试行为进行比较。运行提供的复现程序,确认每次版本或元数据查询在连接中断后都会重试,然后验证设置流程会继续下载构件。
由索引模型根据 Issue 内容生成。
描述
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, thenhermes-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
- Clone the reproducer. It is the reproducer template with
react-nativeand every@react-native/*package at0.90.0-nightly-20261111-1273ca128and@react-native-community/cliat21.0.0-alpha.1, as the current community template sets up the nightly, plusdrop-first-lookup.mjs, anode --importpreload that fails the first request to each lookup with theTypeError: fetch faileda reset connection gives and answers each xcframework download with 404, andrepro.sh. - Run
bash repro.sh. It installs the app and runsnode_modules/react-native/scripts/spm/download-spm-artifacts.js --version nightly --flavor debugunder the preload. - 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.
- 主要语言
- C++
- 星标
- 127k
- 派生
- 25.5k
- 平均合并
- 3 天 18 小时
- 30 天内合并 PR
- 188
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
react/react-native 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 76/100
react/react-native#59945 ·
维护者通常 2 天内回复
-
难度 2/5 1-3 小时 新手友好度 82/100
react/react-native#59944 ·
维护者通常 2 天内回复
-
难度 2/5 1-3 小时 新手友好度 76/100
react/react-native#59939 ·
维护者通常 2 天内回复
-
难度 2/5 1-3 小时 新手友好度 78/100
react/react-native#59929 · 1 条评论 ·
维护者通常 2 天内回复
-
iOS Fabric pointer-handler reset leaves the next lone touch non-primary可能已有人在做 @alleneubank 于 1 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 68/100
react/react-native#59919 ·
维护者通常 2 天内回复
查看 react/react-native 的全部 Issue
相似的 Issue
-
type:bug
难度 2/5 1-3 小时 新手友好度 65/100
tensorflow/tflite-micro#3995 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 78/100
-
not for AI lovers
难度 2/5 1-3 小时 新手友好度 76/100
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 78/100
维护者通常 1 天内回复
-
VT: Backend
难度 2/5 1-3 小时 新手友好度 82/100
contour-terminal/contour#2314 ·
维护者通常 1 天内回复