Commit f2833c2c, titled "feat: add ECHIDNA validation modules" and authored by Test,
deleted 149 files, 22 of them .idr, while its message claims only to add modules.
Five were later restored to the working tree but never re-added to git. Verified against
pristine origin/main today:
| File |
In worktree |
In origin/main |
src/Proven/SafeRegex/Parser.idr |
yes |
NO — re-tracked by PR #206 |
src/Proven/SafeRegex/Matcher.idr |
yes |
NO |
src/Proven/SafeSQL/Builder.idr |
yes |
NO |
src/Proven/SafeXML/Parser.idr |
yes |
NO |
src/Proven/SafeYAML/Parser.idr |
yes |
NO |
Four remain untracked. They are imported by modules that are tracked, so a clean checkout cannot
build — and the module-not-found error is masked by an earlier parse failure, which is why this
was not noticed: the build dies before it gets far enough to complain about the missing file.
Proposed detector — this class is mechanically checkable
For every module named in an .ipkg, and every module transitively imported by one, assert the
source file is present in HEAD.
Cheap, exact, and it would have caught this at the commit that caused it. Nothing in the current
31 workflows checks it. A commit whose message says "add" while its diff deletes 149 files is
also a reviewable signal in its own right.
Context: docs/IDRIS2-BUILD-WORK-PACKAGE.adoc §2.1.
Commit
f2833c2c, titled "feat: add ECHIDNA validation modules" and authored byTest,deleted 149 files, 22 of them
.idr, while its message claims only to add modules.Five were later restored to the working tree but never re-added to git. Verified against
pristine
origin/maintoday:origin/mainsrc/Proven/SafeRegex/Parser.idrsrc/Proven/SafeRegex/Matcher.idrsrc/Proven/SafeSQL/Builder.idrsrc/Proven/SafeXML/Parser.idrsrc/Proven/SafeYAML/Parser.idrFour remain untracked. They are imported by modules that are tracked, so a clean checkout cannot
build — and the module-not-found error is masked by an earlier parse failure, which is why this
was not noticed: the build dies before it gets far enough to complain about the missing file.
Proposed detector — this class is mechanically checkable
Cheap, exact, and it would have caught this at the commit that caused it. Nothing in the current
31 workflows checks it. A commit whose message says "add" while its diff deletes 149 files is
also a reviewable signal in its own right.
Context:
docs/IDRIS2-BUILD-WORK-PACKAGE.adoc§2.1.