magus v0.4.3 is out. See what's new
¶ View markdown source · ✎ Suggest an edit
2 min read

approve-blocker

A rule that is off by default: it reports an approving review whose body names a blocker ("must fix", "blocking", "before merge") once a decisions table turns it on.

What it catches

An approving review whose body names a blocker ("must fix", "blocking", "before merge").

Dimension

stance: the text reads as a verdict on a person, or as addressed to someone else. A finding is counted on the dimension of its rule, the cost it names to the reader.

Why

Google's review guide (eng-practices, "The Standard of Code Review") approves a change once it improves code health and labels what is left as optional. An approval that names a blocker lets the change merge with the blocker in it, or leaves the author unsure the approval holds. "non-blocking" and "no blockers" are left alone. It needs the review's event (--event), and judges nothing without it. It is a convention, not a study, so it advises.

Default decision

The code is PRF8033. The decision depends on the kind of text judged:

Kind Default
review-summary off

Changing it

A decisions table sets this rule to deny, advise or off, for everything judged or for the files a glob matches. Proofread reads the table from the file its -decisions flag names:

{
  "rules": {"approve-blocker": "deny"},
  "paths": {"blog/**": {"approve-blocker": "off"}}
}

rules applies to every file. A glob in paths applies to the files it matches, and the last match wins. A rule set to off never reports.

Seeing it

A finding names the rule, its code and the decision that applies, and links here:

{"rule": "approve-blocker", "code": "PRF8033", "decision": "off", "url": "https://eli.gladman.cc/magus/reference/proofread/approve-blocker/"}

proofread rules prints this entry with every other rule's.

See also

proofreadrulesapprove-blockeroff
Last updated (29d8b3de)
Glossary

Op

A single tool-native command a target composes (long form: operation); the middle of the work hierarchy (Spell to Op to Target). Op in full.

CI

An ordinary target you compose yourself with ctx.needs; magus does not hardcode its stages. It is the anchor magus affected ci keys off, and ci strips the rw charm. CI in full.

Health

The at-a-glance daemon state derived from the pool: healthy when the pool is reporting, degraded when it reports an error, down when there is no pool. The dashboard color-codes each state. Health in full.

Conventions

This page uses none of the site's convention markers. The full set is on the conventions page.