Keep the release dry-run switch out of the preflight checks
Merged
RO
10h ago
+11+11+01234567890123456789-2-2-0123456789
What
scripts/release.sh runs make release-check without its own DRY_RUN in the environment, and gives the nested make an empty one.
Why
make release VERSION=vX.Y.Z DRY_RUN=1, the rehearsal RELEASING.md documents, passed DRY_RUN=1 down to make release-check, which runs test-sync-skills. sync-skills.sh reads a variable of the same name and accepts only local or remote, so every case failed:
not ok - sync as hey-cli succeeded
ERROR: DRY_RUN must be unset, 'local' or 'remote', not '1'
Unsetting the shell variable alone is not enough: a DRY_RUN=1 given on make's command line also travels to the nested make through MAKEFLAGS. A real release sets no DRY_RUN and was unaffected. basecamp-cli and hey-cli already keep the switch out of the checks in their release scripts; this does the same here.
Testing
make check passes
From a make given DRY_RUN=1, a nested make test-sync-skills fails 33 assertions; env -u DRY_RUN make DRY_RUN= test-sync-skills passes them all.
Confidence Score: 5/5
The change appears safe to merge.
Summary
Clears inherited DRY_RUN in scripts/test-sync-skills.sh so release rehearsals do not pass an unsupported value to the sync script.
The skills-sync test clears release dry-run settings before its cases run.