By: Tom Sydney Kerckhove <syd@cs-syd.eu>
Grandfather flag skips per-change round-trip too, not just idempotence The grandfather flag previously only skipped the per-change idempotence check. But the round-trip check is just as much an end-state invariant that legacy scripts aren't expected to satisfy in isolation — e.g. revert scripts that recreate a table via a "_new" swap leave the primary-key index with a different name than the original deploy, so revert+redeploy lands at a structurally different schema even though the columns match. Now stepIsGrandfathered skips both checks. The whole-plan cycle and schema-equality checks still apply to grandfathered steps end-to-end, so the end-state invariants are not lost. Fixture: toy-sqitch-grandfathered gains an add-shape change whose revert uses the swap-via-_new pattern, making round-trip catch the index-name asymmetry. The "with grandfather tag" test confirms it's skipped; the "without grandfather tag" test confirms it would fire. Module and field docs updated.