Commit d53335e
fix(release): retry the post-publish npm check, and verify all 69 packages instead of 1 (#15331)
* fix(release): retry the post-publish npm check, and check all 69 packages
The last step of the publish job verified the release with one `npm view` of
@objectstack/cli. On 17.3.0 it exited 1 on a release that had succeeded
completely.
It raced the registry: npm committed cli@17.3.0 at 10:53:25.108 and the check
read at 10:53:32, seven seconds later, and got an absence. The write path and
the CDN-fronted read path are eventually consistent.
And it looked at 1 package of 69, so a package that genuinely failed to publish
is the one case it could not see — and the false red on cli would have masked
it. @objectstack/runtime did not commit until 11:00:32.
scripts/release-verify-npm.mjs replaces it: bounded backoff over the whole
derived publishable set, with the absent packages named on failure. It still
fails closed — the retry absorbs latency, never absence — and an empty target
set is refused rather than passed vacuously.
Publish gating is untouched: everything up to the step body and everything from
"Create GitHub Releases" to EOF is byte-identical.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UHvF5hyiZjnCyExFnfQB8m
* fix(release): write the job summary synchronously, and pin that it lands
The append was `import('node:fs').then(...)` — a floating promise, discarded by
the caller's `process.exit(await main())`. It wrote the summary on neither path
while reading, in review, exactly like one that did.
Battery 9 pins it the only way this class can be pinned: append, then read the
file back with no await in between. A deferred write fails that case.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UHvF5hyiZjnCyExFnfQB8m
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>1 parent ab50c8f commit d53335e
3 files changed
Lines changed: 1037 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2872 | 2872 | | |
2873 | 2873 | | |
2874 | 2874 | | |
| 2875 | + | |
| 2876 | + | |
| 2877 | + | |
| 2878 | + | |
| 2879 | + | |
| 2880 | + | |
| 2881 | + | |
| 2882 | + | |
| 2883 | + | |
| 2884 | + | |
| 2885 | + | |
| 2886 | + | |
| 2887 | + | |
| 2888 | + | |
| 2889 | + | |
| 2890 | + | |
| 2891 | + | |
| 2892 | + | |
| 2893 | + | |
| 2894 | + | |
| 2895 | + | |
| 2896 | + | |
| 2897 | + | |
| 2898 | + | |
2875 | 2899 | | |
2876 | 2900 | | |
2877 | 2901 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1224 | 1224 | | |
1225 | 1225 | | |
1226 | 1226 | | |
1227 | | - | |
| 1227 | + | |
1228 | 1228 | | |
1229 | | - | |
1230 | | - | |
| 1229 | + | |
| 1230 | + | |
| 1231 | + | |
| 1232 | + | |
| 1233 | + | |
| 1234 | + | |
| 1235 | + | |
| 1236 | + | |
| 1237 | + | |
| 1238 | + | |
| 1239 | + | |
| 1240 | + | |
| 1241 | + | |
| 1242 | + | |
| 1243 | + | |
| 1244 | + | |
| 1245 | + | |
| 1246 | + | |
| 1247 | + | |
| 1248 | + | |
| 1249 | + | |
| 1250 | + | |
| 1251 | + | |
| 1252 | + | |
| 1253 | + | |
| 1254 | + | |
| 1255 | + | |
| 1256 | + | |
| 1257 | + | |
| 1258 | + | |
| 1259 | + | |
| 1260 | + | |
| 1261 | + | |
| 1262 | + | |
| 1263 | + | |
| 1264 | + | |
| 1265 | + | |
| 1266 | + | |
| 1267 | + | |
1231 | 1268 | | |
1232 | 1269 | | |
1233 | 1270 | | |
| |||
0 commit comments