docs: say what is proven, not what is implemented - #46
Merged
Conversation
The README asked strangers to trust a flat list. "22 supported languages" is true in the sense that 22 backends are registered, and misleading in the sense a reader takes it: ten of them live in one file with no tests of their own and have never been run by CI or by anyone. Someone whose hooks are Julia finds that out at the worst moment. docs/parity.md grades every language by the evidence that exists for it — differential vs Python, unit tests, exercised in CI — and says plainly that the untested rows are untested rather than broken. It also records the two behaviors people meet by surprise: the binary shadows the Python one by design, and the cache is shared, so `clean` removes environments Python pre-commit built. Both are verified here, not assumed: two tools alternating against one store leave db.db and db.json side by side and interlock on the same .lock, and `clean` does take the lot with it. docs/comparison.md leads with the reasons to keep using Python pre-commit, because a reimplementation that oversells itself wastes the reader's afternoon. docs/stability.md explains that v4.6.6 means parity with upstream 4.6 and is not a claim to four majors of maturity. The README now leads with the one sentence that is actually the pitch — run your existing hooks without installing Python — and links these rather than restating them. Its Action example said @main, which pins consumers to an unreleased branch; it now says @v4, and the release workflow moves that alias on every release so the documented path resolves. The tag trigger narrows to full versions, otherwise moving the alias would start a second release of itself. Refs #43
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.
Launch-readiness docs, in the shape stevedore used — with the difference that this project is a port, so every claim gets read by someone who already uses the original.
The claim that needed grading
The README advertises "22 supported languages". All 22 are registered, so it is not false — but ten of them (
conda,coursier,dart,dotnet,haskell,julia,lua,perl,r,swift) live in a singleothers.gowith no test file, and the parity suite's own configs only ever uselanguage: systemandlanguage: python. A reader takes "supported" to mean "someone has run this".docs/parity.mdgrades each language by the evidence that exists — differential vs Python / unit tests / exercised in CI — and says the untested rows are untested, which is a different and more defensible claim than "broken" or "supported".Behaviors documented rather than changed
Per the decisions on #43, the binary keeps its name and the cache stays shared. Both are now stated in the README's install section and in
docs/parity.md, with the mechanics verified rather than assumed:db.dbanddb.jsonside by side,repo3_4fef0cnext torepocf9afd75442a4da1, and they interlock correctly because both take an exclusiveflockon the same.lock.pre-commit cleandoes remove Python's environments along with its own; Python's next run rebuilds ([INFO] This may take a few minutes...).Docs added
docs/parity.mdubuntu-latestonly; Windows never run), and the surprising-but-deliberate behaviorsdocs/comparison.mddocs/stability.mdv4.6.6means parity with upstream 4.6 — not four majors of maturity. What is frozen, what is not, and what the exit looks like if this stops being maintainedOne broken path fixed
The README's Action example pinned
@main— consumers tracking an unreleased branch. It now says@v4, which did not exist, so:v4alias to each new release;v*tov[0-9]+.[0-9]+.[0-9]+*, since matchingv*would make each alias update trigger a duplicate release of itself.The
v4tag itself has to be created once, after this merges, at a commit carrying the narrowed trigger — otherwise pushing it fires a release namedv4.make testandmake lintclean.Refs #43