diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3b44ac698..ff0453d5e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -545,8 +545,9 @@ jobs: # REQUIRED BY `version:` BELOW, and nothing in this file says so without # this comment — which is why there is also a test. `pnpm run version` is - # `changeset version && node scripts/sync-lockstep-versions.mjs`, and that - # script ends in `execFileSync('mise', ['run', + # `changeset version && node scripts/sync-skill-pins.mjs && node + # scripts/sync-lockstep-versions.mjs`, and that last script ends in + # `execFileSync('mise', ['run', # 'release:prepare_bindings_assets', …])`, which reaches # `packages/eql/tasks/build.sh` and two `cargo run -p eql-codegen` calls. # mise is NOT preinstalled on GitHub's ubuntu images, so without this step diff --git a/scripts/__tests__/script-main-guards.test.mjs b/scripts/__tests__/script-main-guards.test.mjs index 98050df9e..71b32e6d9 100644 --- a/scripts/__tests__/script-main-guards.test.mjs +++ b/scripts/__tests__/script-main-guards.test.mjs @@ -22,11 +22,12 @@ import { REPO_ROOT } from './lib/repo-root.mjs' * The failure mode is why this guard is repo-wide rather than a comment on the * one file that got it wrong. A silent exit 0 is indistinguishable from * success to every caller: `package.json`'s `version` script is - * `changeset version && node scripts/sync-lockstep-versions.mjs`, and the `&&` - * means the no-op reports success while `changeset version` has already bumped - * the npm package — producing exactly the lockstep skew that script exists to - * prevent. CI never sees it (`/home/runner/work/stack/stack` has no space), so - * nothing but this test stands between the outlier and a release. + * `changeset version && node scripts/sync-skill-pins.mjs && node + * scripts/sync-lockstep-versions.mjs`, and the `&&` means the no-op reports + * success while `changeset version` has already bumped the npm package — + * producing exactly the lockstep skew that script exists to prevent. CI + * never sees it (`/home/runner/work/stack/stack` has no space), so nothing + * but this test stands between the outlier and a release. */ /** Absolute paths of every `scripts/*.mjs` that is not a test or config file. */ diff --git a/scripts/sync-lockstep-versions.mjs b/scripts/sync-lockstep-versions.mjs index 97b27f718..080e6d697 100644 --- a/scripts/sync-lockstep-versions.mjs +++ b/scripts/sync-lockstep-versions.mjs @@ -593,7 +593,8 @@ function main() { // `fileURLToPath`, not `` `file://${process.argv[1]}` ``: the URL is // percent-encoded and the argv path is not, so the template form is false from // any checkout path containing a space — and this script's caller is -// `changeset version && node scripts/sync-lockstep-versions.mjs`, where a -// silent exit 0 reports a completed lockstep bump that never happened. +// `changeset version && node scripts/sync-skill-pins.mjs && node +// scripts/sync-lockstep-versions.mjs`, where a silent exit 0 reports a +// completed lockstep bump that never happened. // `scripts/__tests__/script-main-guards.test.mjs` holds this form repo-wide. if (process.argv[1] === fileURLToPath(import.meta.url)) main()