You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit af21446
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: AGENTS.md
+18Lines changed: 18 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -207,6 +207,13 @@ stays optional for everyone else.
207
207
bumps nothing is a no-op for all seven. `ffi-preflight.yml` is the dry run
208
208
(`changeset publish` has no `--dry-run`); dispatch it against the Version
209
209
Packages branch before merging a release that moves an FFI version.
210
+
**The `release` job waits for npm to list all seven** (and the seven
211
+
`@cipherstash/auth` packages `publish-auth` publishes the same way) before
212
+
`changeset publish`, through `scripts/wait-for-npm-versions.mjs`. npm lists
213
+
a publish minutes after accepting it, and `changeset publish` publishes any
214
+
version npm does not list yet a second time — with `restricted` access, so
215
+
npm refuses it with E402 and the job fails. That happened to protect-ffi
216
+
0.33.0 and @cipherstash/auth 0.44.1 before the wait existed.
210
217
-**Trusted publishing binds to (repository, workflow filename).** Keep
211
218
`release.yml` as the single npm entry point; a rename silently invalidates all
212
219
seven publisher configurations. Each one must also list `npm publish` under
@@ -361,6 +368,17 @@ monorepo, which is where the silent failures are.
361
368
|`lint-release.yml`| merged into the root file of the same name |
362
369
|~~`rebuild-docs.yml`~~|**not ported.** It targeted the retired docs site through the deprecated `DOCS_WEBHOOK_URL`; versioned docs artifacts are still built by `_build-eql-docs.yml`|
363
370
371
+
**The SQL, docs and image jobs key on the registry and the tags, not on the
372
+
run that published.**`release.yml`'s `eql-assets` job runs
373
+
`scripts/eql-release-assets.mjs`, which reports the assets as owed when npm
374
+
carries the tree's EQL version and the `eql-<version>` tag does not exist,
375
+
and builds them at the commit the `@cipherstash/eql@<version>` tag names. So
376
+
a run whose `changeset publish` failed still builds them, and a later push
377
+
repairs a release that never got them — EQL 3.0.6 was the first. The four
378
+
jobs are `!cancelled() && …` because the implicit `success()` is false when
379
+
any job up the `needs:` chain was skipped, and `publish-ffi` and
380
+
`publish-auth` are skipped on most releases.
381
+
364
382
**Inertness is a derived switch, not a flag somebody flips.** The one piece
365
383
of state is `FROZEN_PUBLISHERS` in `scripts/release-gate.mjs` — the existing
366
384
map recording "this package lives here but is published elsewhere" — and
0 commit comments