diff --git a/native/scripts/sync-platform-versions.cjs b/native/scripts/sync-platform-versions.cjs index 13f152af2..60c7a388c 100644 --- a/native/scripts/sync-platform-versions.cjs +++ b/native/scripts/sync-platform-versions.cjs @@ -44,22 +44,10 @@ for (const platform of platformPackages) { } } -// Update optionalDependencies in root package.json -let rootChanged = false; -const optDeps = rootPkg.optionalDependencies || {}; -for (const platform of platformPackages) { - const depName = `@gsd-build/engine-${platform}`; - if (optDeps[depName] && optDeps[depName] !== version) { - console.log(` root optionalDependencies ${depName}: ${optDeps[depName]} -> ${version}`); - optDeps[depName] = version; - rootChanged = true; - } -} - -if (rootChanged) { - rootPkg.optionalDependencies = optDeps; - fs.writeFileSync(rootPkgPath, JSON.stringify(rootPkg, null, 2) + "\n"); - console.log(" Updated root package.json optionalDependencies"); -} +// Skip updating root optionalDependencies — they use a >=2.10.2 range +// intentionally so that npm can fall back to the latest available +// platform binary when the exact version hasn't been published yet +// (e.g. main package published before native CI finishes). +console.log(" root optionalDependencies: using range specifiers (not updating)"); console.log("[sync-platform-versions] Done."); diff --git a/package.json b/package.json index afb2a7f76..70365f92d 100644 --- a/package.json +++ b/package.json @@ -82,11 +82,11 @@ "typescript": "^5.4.0" }, "optionalDependencies": { - "@gsd-build/engine-darwin-arm64": "2.10.5", - "@gsd-build/engine-darwin-x64": "2.10.5", - "@gsd-build/engine-linux-x64-gnu": "2.10.5", - "@gsd-build/engine-linux-arm64-gnu": "2.10.5", - "@gsd-build/engine-win32-x64-msvc": "2.10.5", + "@gsd-build/engine-darwin-arm64": ">=2.10.2", + "@gsd-build/engine-darwin-x64": ">=2.10.2", + "@gsd-build/engine-linux-x64-gnu": ">=2.10.2", + "@gsd-build/engine-linux-arm64-gnu": ">=2.10.2", + "@gsd-build/engine-win32-x64-msvc": ">=2.10.2", "fsevents": "~2.3.3" }, "overrides": {