Releases: melbinjp/docproof
Release list
v0.2.4
What's Changed
- Pin the action to a commit, and prove the read-only claim by @melbinjp in #30
- 0.2.4, because the README said it was not on PyPI while it was by @melbinjp in #31
- Point every README pin at v0.2.4, and stop hardcoding a SHA that cannot be right by @melbinjp in #32
Full Changelog: v0.2.3...v0.2.4
v0.2.3
v0.2.2
v0.2.1
What's Changed
- The verdict says how much of the documentation it actually covered by @melbinjp in #21
- Release notes with the version in the filename are history too by @melbinjp in #22
- The line telling you what to widen to should name your documentation, not your biggest folder by @melbinjp in #23
- A verifier that checked nothing must not be printed with a tick by @melbinjp in #24
- A changelogs directory is history too by @melbinjp in #25
- The argparse flag set is not complete for a command built with typer by @melbinjp in #26
- A deleted re-export is not a deleted file by @melbinjp in #27
- The two ends of one report disagreed about the same files by @melbinjp in #28
- A directory that was emptied for good is not a directory that might refill by @melbinjp in #29
Full Changelog: v0.2.0...v0.2.1
v0.2.0
What's Changed
- docs: pin the CI snippet at v0.1.4 by @melbinjp in #13
- docs: say why the pinned run's header shows 0.1.0 by @melbinjp in #14
- docs: say which document kinds are skipped automatically and which are not by @melbinjp in #15
- feat: say how many documents were not read, and where they are by @melbinjp in #16
- fix: report the line a path is on, not the line its fence started on by @melbinjp in #17
- fix: read a directory diagram whose entries carry a description column by @melbinjp in #18
- fix: the release gate has crashed on every tag since v0.1.3 by @melbinjp in #19
- 0.2.0: coverage reporting, and two fixes to what a finding says by @melbinjp in #20
Full Changelog: v0.1.4...v0.2.0
v0.1.4
A stale path that is only a link LABEL is a display name, not a claim (#11).
see [`docs/STATE-MD-LIFECYCLE.md`](reference/state-md.md) for the field reference
The label went stale, the target resolves, and nobody following that link lands anywhere wrong. docproof already skipped the reference form [label]: target on exactly this reasoning; judging the inline form while skipping the reference form was an inconsistency, and the inline form is the common one.
Measured before it was built, across 134 cloned repositories: 137,937 inline links, 7,426 with a path-shaped label, 5,529 where the label is not in the tree and the target resolves. 4,838 of those resolve to a URL and almost all are org/repo slugs used as labels (shadcn/ui, encode/broadcaster) which were never repository paths. 687 resolve to a file on disk, which is the real class, and 4 of the 217 corpus findings sit in it.
A URL target earns no skip, and that is the whole safety of the rule: docproof cannot fetch, and when a repository deletes a file the blob URL pointing at it dies too.
Only when the label does not resolve. Skipping every label whose target works turned 85 gsd-core claims into skips to remove 3 findings; the other 82 named real files being checked correctly. Tightened, gsd-core goes 34 broken / 1085 checked to 31 / 1082.
173 tests, 3 operating systems, Python 3.10 to 3.13.
v0.1.3
Two fixes, and the second one was found by checking a promise.
moved_to follows a rename to the end (#8). It looked at the deleting commit and stopped, so a file renamed more than once was reported at its first hop, which may itself be gone. Found on open-gsd/gsd-core, where docs/CONFIGURATION.md cites sdk/shared/model-catalog.json and the chain is two hops:
11918dcc sdk/shared/model-catalog.json -> get-shit-done/bin/shared/model-catalog.json
463cffd8 get-shit-done/bin/shared/...json -> gsd-core/bin/shared/model-catalog.json
The old answer was the middle one, and get-shit-done/ has zero files at that repository's HEAD. So the advice pointed into a directory that no longer exists anywhere in the tree. A destination is only named if it is there now; a chain that dead-ends reports "deleted and never restored", which is true, instead of naming a phantom.
The tool was misreporting its own version (#9). pyproject.toml said 0.1.2 while src/docproof/__init__.py said 0.1.0, so every report header and --version printed docproof 0.1.0 on an install pinned to v0.1.2. A documented claim contradicted by the repository, which is what this tool is for. The second copy is gone rather than corrected: the build reads the package attribute, so there is one literal and nothing left to disagree.
167 tests, 3 operating systems, Python 3.10 to 3.13.
v0.1.2
v0.1.1
What's Changed
- paths: a document can say it is finished in a status field by @melbinjp in #1
- docs: the CI snippet was 274 lines down, and nothing guarded its version by @melbinjp in #2
- paths: a historical label is not only the word 'record', and ARCHIVE.md is an archive by @melbinjp in #3
- marketplace: the action's name cannot be an account that exists, and one does by @melbinjp in #4
New Contributors
Full Changelog: v0.1.0...v0.1.1
v0.1.0
Full Changelog: https://github.com/melbinjp/docproof/commits/v0.1.0