Repository navigation
specdelta: -dir names a set, so the move gate has an exit that is not a derogation - #875
Merged
Merged
Conversation
`-dir` took one directory. The move gate refuses a run whose surface reaches
outside it and advised "Widen -dir" -- advice that could not be followed, for
the move this repository is actually making:
OPENED language/variables_spec.rb:366 ...
OPENED core/binding/implicit_parameters_spec.rb:3 ...
The 3.4.1 -> 4.0.9 surface spans core/ AND language/, and the only widening
available from `core` was the whole corpus -- library/, optional/,
command_line/, security/ and hours of them. So the only reachable exit was
-partial, and every real answer about the move would have come out stamped
PARTIAL. A derogation that is the normal road is not a derogation, and a gate
whose honest exit nobody can reach is not a gate.
-dir now names a SET, comma-separated, and the refusal names the exact -dir
that would cover the surface instead of saying "widen":
specdelta: the move 3.4.1 -> 4.0.9 touches 1 file(s) that -dir core does not measure:
language/variables_spec.rb
A number from this run would not be a number about the move. Either
-dir core,language
which measures the whole surface, or -partial to say so on purpose --
the report is then stamped PARTIAL.
Top-level suites and no deeper: 50 exact directories would be unreadable and
would go stale with the corpus, while `core,language` is both the honest
surface and something a reader can retype. The suggestion is computed from the
census, so it reaches core/ and language/ and NOT library/.
Two things the set makes possible to get wrong, both tested:
- a file reached through two named directories (`-dir core,core/set`) is
measured ONCE; counted twice it is counted on both sides, and the totals
then move with how the caller spelled -dir rather than with the engines;
- `-dir core,` does not quietly become the whole corpus.
Refs #799
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
#874 gave
cmd/specdeltaa refusal for a run whose measured set does not coverthe surface a declared version move touches. The refusal was right; the exit it
advised was not reachable.
The advice could not be followed
-dirtook one directory, and the refusal said "Widen-dir". For themove this repository is actually making, the census says where the surface is:
3.4.1 → 4.0.9spanscore/andlanguage/. Every one of the 50 openedfiles is under one of the two, and none is outside them — so the surface has an
exact, small description. But from
-dir corethe only widening available wasthe whole corpus:
library/,optional/,command_line/,security/, andhours of sweep for files the move never touches.
That left
-partialas the only reachable exit, which means the headline figurefor #799 would have been published stamped
PARTIAL— a derogation used notbecause the surface was really incomplete, but because the flag could not
express a complete one. A derogation that is the normal road is not a
derogation, and a gate whose honest exit nobody can reach is not a gate.
-dirnames a set, and the refusal names the right oneThe suggestion is computed from the census, top-level suite per uncovered file:
50 exact directories would be unreadable and would go stale the moment the
corpus moves, while
core,languageis both the honest surface and something areader can retype. It reaches
core/andlanguage/and notlibrary/,which the test asserts — a suggestion that over-reaches would re-create the
problem it is fixing.
Two ways a set can be read wrong, both tested
-dir core,core/set-dirrather than with the engines-dir core,And the control beside the refusal: retyping exactly what it advised is
accepted, exits 0, and is not stamped
PARTIAL.Refs #799
🤖 Generated with Claude Code