decision: which linked issues must be closed before adr check passes an accepted record? #634
Labels
No labels
breaking
bug
documentation
enhancement
epic
good first issue
help wanted
refactoring
resolution/duplicate
resolution/invalid
resolution/wontfix
security
severity/critical
severity/high
severity/low
severity/medium
status/abandoned
status/blocked
status/needs-decision
status/needs-info
status/needs-verification
testing
upstream
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
sixfold-space/madtea#634
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What happens
adr checkreads every issue link under## More Information. On an accepted record, it fails while any linked issue is still open, and while a closed one has no comment that names the record. On a proposed record, it fails when any linked issue in the record's repos is closed.My records link more than their tracking issues there: the epic that carries the work, the work issue in each repo, and the issues the decision resolves. That work goes on for weeks after the record is accepted. So a record I accept today fails the check until every one of those issues is closed. A proposed record fails as soon as one issue that it resolves is closed.
Open question
Which linked issues does the check require to be open or closed?
Tracking issues:list under More Information, and the check reads only that list. Every other link is free.impacts). Once it is accepted, it requires one closed issue in each of those repos that names the record. It ignores every other link.Acceptance
Decided: option 1, only the tracking issues.
How a record marks its tracking issues is not decided yet.
Decided: a record marks its tracking issues with a list under More Information. The list starts with the line
Tracking issues:, followed by a bullet list of issue links. The check reads only the links in that list. The MADR template and the front matter do not change.Build outline:
Tracking issues:list under More Information, and apply the open and closed rules above to its links only.Tracking issues:list fails, and the message says to add one.Decided. This replaces the
Tracking issues:heading from my earlier comment.Decision issues:. "Tracking" can mean the epic that holds the work, and the check must ignore the epic.Decision issues:list failsadr check. This includes decided records, so every existing tree needs a list in each record. The release notes must say so.Decision issues: none - <reason>. A bareDecision issues: nonefails. Thenoneform is valid only on a decided record, which means a record with the status accepted, rejected, deprecated, or superseded. A proposed record with thenoneform fails.adr initwrites record 0000 with aDecision issues: none - <reason>line, so a new tree passes.adr new --decision-issuesreplaces--tracking. It takes more than one value and writes the list. The MCP parameter isdecision_issues.--trackingis removed, with no alias.Tests to add: a decided record with no list fails;
Decision issues: none - <reason>passes on a decided record; a bareDecision issues: nonefails; thenoneform on a proposed record fails; a tree fresh fromadr initpasses.Decisions from my review of the build, and the fixes that must land before merge:
Decision issues:list is nameddecision-issues.Decision issues:line, then one-line for each issue.adr checkalso accepts*lines and blank lines between items, as a grace. The help text documents neither.madt_adr action=newexample includesdecision_issues, like the CLI examples.decision-issues.ADR-ACCEPT 0045
Decided in ADR 0045, docs/decisions/0045-adr-check-reads-only-a-decision-issues-list.md, now accepted:
adr checkreads only the issues in a record'sDecision issues:list under## More Information. That is option 1 of this issue, with the list namedDecision issues:instead ofTracking issues:, because "tracking" can mean the epic that holds the work. Every other link in a record is context, and the check ignores it.