Author: Tom Sydney Kerckhove <syd@cs-syd.eu>
Committer: Tom Sydney Kerckhove <NorfairKing@users.noreply.github.com>
Drop the guide citation and the class from a rule
Both were fields the tool carried and nothing acted on.
The class was the shipping gate rule-triage.md describes, printed by list-rules
as though it were a runtime setting. Its own Haddock said so: "which list-rules
prints and nothing else acts on", and "Not a runtime setting. Every finding
fails the run whatever this says." So TestGenValidSpecPerGenValid said ratchet
and failed the build exactly like an error. A label that claims a behaviour
nothing implements is worse than no label.
The guide was a citation, and for HsNoFilePath it pointed at a section of
haskell-style.md that says nothing about paths, because that rule was decided in
review. Worse, the report said the requirement twice for every rule that did
have a guide: once in the guide's words under the span, once in the rule's own in
the note above the reason. The goldens show what that cost a reader:
- • ╰╸ Put generators (like GenValid instances) in the <package>-gen package
- │ Note: From haskell-style.md. A GenValid instance in a package's own
- library gets compiled into the executable. Move it to the matching -gen
- package.
+ • ╰╸ A GenValid instance in a package's own library gets compiled into the
+ executable. Move it to the matching -gen package.
What a rule asks for and why is in ruleText and ruleWhy, which every finding
already carried.
Class, classText, GuideRef and its accessors go with the fields, along with
their generators and their genValidSpec calls. list-rules prints the id, whether
this run makes the rule, and what it sees. explain drops the guide line and the
class from the level line.
The README's table carries what a rule sees instead of which guide says it, so
scripts/check-readme.sh now holds the levels rather than the citations. plan/
keeps its class column: it is a gate on shipping, which is what it always said it
was, rather than something the tool was meant to distinguish.
| Time to Start | Worker time | Duration | Time to finish | Idle | |
| Config | 52s | 1s | 1s | 53s | 52s |
| Eval | 53s | 14s | 14s | 1m07s | 0s |
| Build | 1m03s | 0s | 2h08m11s | 2h09m14s | 2h08m07s |
| Suite | 52s | 15s | 2h08m22s | 2h09m14s | 2h08m59s |