Repository navigation
Fix the false FAILs the big-repo sweeps turned up - #29
Merged
Merged
Conversation
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.
Two sweeps over 84 large repositories found two real documentation defects and 24 places where kibble misread a document or its output. This fixes those misreads and the new ones the reruns reached for the first time. Twenty-two commits. Each fix comes with unit tests built from the real document or output and a negative control, and was then rerun in Docker against the repositories that exposed it.
Documents kibble never read are now read. A README named in any letter case is found. A
go installline with a valued flag such as-tags 'postgres'is read as an install route. A localnpm install <name>runs in a scratch project when a manifest in the checkout declares that name, and its binary comes from the package's ownbinfield.Lines kibble should not run are left alone. An ellipsis used as a path segment and an all-caps name with a numeric suffix such as
UTILITY_1are placeholders. A block under a bare platform heading such as### macOSis skipped on Linux. Guides kept for a retired version, with legacy, deprecated, or archived in the file name, are skipped.Files a document shows and then runs are written first. A shell block whose first line is a comment naming one file is written as that file. A fenced block is also written as a file when the paragraph just above it names exactly one file whose extension matches the fence language. A path the checkout already holds is never overwritten.
Outputs kibble misread are read correctly. tcell's unset TERM error reads as interactive. A longer no-match message, and an exit code the document lists as not found, read as no data. An installer that stops because crontab is missing reads as a missing program. A line after a skipped line that would have provided its tool is blocked, not failed. Subcommands the source defines but the released binary lacks are reported as unreleased instead of drift. A failure is explained by its message, not by a trailing stack frame or file location.
Python steps run on the newest release the project's stated range allows, so a project capped below the newest Python no longer fails on it.
The reruns exposed cases where the checkout, not the document, was at fault, and these now read as blocked. A Go build fails because the document's file landed beside the repository's own package. A Node script imports a package the reader has not installed, when the import comes from the script the line names. A bundler cannot resolve its entry file. A tool says the checkout is not its kind of repository and names its own init command, which moves 183 jj lines that all failed for that one reason.
Equal flag-check and doc-coverage rows of one binary collapse to one row. nodemon's corpus pin moves from 2,0,0 to 3,0,0, since its local install route now runs and the collapse removes the doubled row. The README and design notes document each new rule.
Checked: build, vet, race tests, and golangci-lint are clean. The Docker reruns reconcile 768 rows with no unexplained move. Both real finds still fail, the true failures of three control repositories are unchanged, and every corpus pin holds.