ArchDoc Design record
ArchDoc
RFC-0005 Accepted

Refreshing generated files raises the version pin

Created
Decided
Versions
History

Abstract

archdoc update raises the workflow's ARCHDOC_VERSION to the version doing the update, holding the existing pin only when the running binary is not a published release. This amends the pin rule of RFC-0003.

Motivation

The command rewrites PROCESS.md, which describes what lint enforces. Refreshing that description while leaving CI pinned to an older ArchDoc leaves a repository documenting one set of rules and enforcing another. A repository four releases behind was found with exactly that arrangement, its owner having raised the pin by hand to the value the command declined to write.

Proposal

The rule

Running binary Written as ARCHDOC_VERSION
A published release the running binary's version
Not a published release, and a pin exists the existing pin
Not a published release, and no pin exists latest

A version is a published release when it is a release tag and not a pseudo-version. The change appears in the diff like any other and is confirmed the same way.

Steps

Step 2 of RFC-0003 renders the workflow with the version chosen by the table above. Every other step is unchanged.

Out of scope

  • Any other file. Only the workflow carries a pin.

Alternatives considered

  • Keeping the pin as it was. The rule this replaces. Its reason held only for an unreleased binary, which would write latest over a real version, and the table keeps that case.

No other alternatives were weighed.

Backwards compatibility

The behaviour of archdoc update changes. A repository pinned to one release and updated with a later one previously kept its pin; it now takes the later release. The diff shows the change before it is written.

Sources

  • da4fd10 makes the change and sets created and decided. Its message states the documenting-one-thing-enforcing-another argument.
  • docs/ARCHDOC.md at da4fd10a, section archdoc update, describes the amended rule.
  • The repository found four releases behind, and its owner's hand edit matching the command's later output, are taken from what followed rather than anticipated.

Source rfc/0005-refreshing-generated-files-raises-the-version-pin.md · commit aa43057 · exported