Keep the release dry-run switch out of the preflight checks

Merged
RO
10h ago
+11-2

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.

RetriggerView in GreptileConfidence Score: 5/5 Tier: plus

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.

Reviews (1) · Last reviewed commit: "Let the release dry run pass the skills-..." · Reviewed by Greptile