The rejection rationale is published as structured data
- Created
- Decided
- Versions
- History
Context
Raised on , while the gate on reject was being changed to judge a document with its rationale in place.
Under ADR-0020 a document's questions and its Changelog are published as structured data and left out of contents, because they record the document's process rather than its design, and archdoc.dev shows a document's contents as the document. Another section receives the same treatment only by a decision that names it, and the sections named leave contents in one release. ADR-0020 names Rejection rationale among the sections a rule for every process section would have left open.
reject appends Rejection rationale to a document, as archdoc new does to one it creates rejected, and L08 requires it on a rejected document and forbids it on any other RFC or ADR. It records why the proposal was turned down: the verdict, not the design. A required section that leaves contents is still named among the document's required sections, so under ADR-0020 its presence has to be recorded elsewhere, or the requirement lifted.
Under ADR-0019, before ArchDoc 1.0, a change that removes a field, or changes a field's type or meaning, moves schema to the next integer, at most once between two tagged releases. schema: 3, which takes the question sections and the Changelog out of contents, has not been in a tagged release.
Decision
Rejection rationale is added to the sections ADR-0020 names: it is published as structured data and left out of contents, in the release that takes the question sections and the Changelog out. L08's requirement of it on a rejected document stays, and the structured form records whether the section is present.
Alternatives
- Leaving it in
contents. The heading is fixed, so a consumer can find the section by its title. Lost because a consumer showing the design fromcontentswould show the verdict as part of it. - Leaving
contentsin a later release, atschema: 4. Lost because under ADR-0019 a second break costs every consumer the change again, where joiningschema: 3before it is released costs nothing beyond the break already made. - Lifting the requirement. L08 would no longer require the section on a rejected document. Lost because a rejected document could then freeze with no reason for its verdict.
Consequences
Easier:
- A consumer will show why a document was rejected without searching
contentsfor its heading.
Harder:
Rejection rationalewill be the first required section absent fromcontents, so a consumer checking a rejected document'srequired_sectionsagainstcontentswill find it missing, and will have to read its structured form.- A fix merged where the code emits
schema: 3will not be released until the section's structured form is built, unless it is released from code still emittingschema: 2.
Constrained:
- No release will carry
schema: 3until the section's structured form is built.
Source adr/0021-the-rejection-rationale-is-published-as-structured-data.md · commit aa43057 · exported