Repository navigation
A release descriptor's date follows its digests: release.cs --sbom, and land.cs's three days (#248) - #261
Conversation
…fier is allowed The maintainer's ruling of 2026-10-27, which #169's gate implements, reverses the commit-message half of ADR 0033's amendment of 2026-10-02. A reversal is a change of meaning, so under ADR 0068 point 2 it is a supersession: ADR 0241 supersedes that one ruling, and ModelNamedInTheRecordNotTheCommit moves to 0241's set under its key, filed unaccepted (ADR 0066). 0033's Status names the supersession, and AGENTS.md (Every commit, Never) and CONTRIBUTING.md state the ruling. The record still names the tool and the model exactly. Refs #257 Refs #169 Co-Authored-By: Claude <noreply@anthropic.com> Signed-off-by: Emil Okkels Klein <emil@okkels-klein.dk>
A section after Every commit: work starts from an issue, decisions and blockers go on it when they arise, found work is filed at once, the pull request lists every issue it touches, closings are checked after landing, and abandoned work is closed as not planned. As the prompt's note of 2026-11-10 asks, "the session" in Landing and After landing is whichever session lands: the delegate lands and checks (ADR 0239), and a cloud session posts its head, lists the issues and asks. Refs #257 Co-Authored-By: Claude <noreply@anthropic.com> Signed-off-by: Emil Okkels Klein <emil@okkels-klein.dk>
The prompts, the plan's correction from an amendment to ADR 0241's supersession, what changed and what was found (#258). The model is left for the maintainer to fill in, as ADR 0033 provides. Closes #257 Refs #169 Co-Authored-By: Claude <noreply@anthropic.com> Signed-off-by: Emil Okkels Klein <emil@okkels-klein.dk>
…in moves At both steps land.cs lists every issue a Closes, Fixes or Resolves trailer line in main..head closes, with its title, recognising a trailer as eng/issue-refs.cs does. A pull request's Completes: line is required: missing, malformed, or naming an issue no pushed trailer closes, the landing is refused, and a body it cannot read is refused too rather than skipped. A release descriptor's trailer is a commit's trailer, so it counts. After --main moves main, an issue a pushed trailer names that is still open is printed with its commit and the exit is 1; GitHub unread is 2. It closes nothing itself. Nine fixtures under tests/fixtures/land/, run by eng/ci.cs's land-fixtures job. Refs #209 Co-Authored-By: Claude <noreply@anthropic.com> Signed-off-by: Emil Okkels Klein <emil@okkels-klein.dk>
The template opens with `Completes: none` and says what the line is and that it is not a closing keyword (#108). AGENTS.md's Landing and After landing bullets name the line, land.cs's refusal and its check after main moves, so the rule and the script say the same thing. Refs #209 Co-Authored-By: Claude <noreply@anthropic.com> Signed-off-by: Emil Okkels Klein <emil@okkels-klein.dk>
…ogether Under ADR 0224 point 2 the SBOMs are created at the descriptor's date, so the two move together. --sbom runs eng/sbom.cs created at the current UTC day (or --today), replaces the sbom: block with its sbom.txt and sets date: to that day in one edit, then regenerates CHANGELOG.md. --from takes SBOMs already written and refuses them unless each was created on that day; --out says where eng/sbom.cs writes. A tagged version and a descriptor with no sbom: block are refused. --draft points at it. Gates: four fixtures under tests/fixtures/release-sbom/, run by eng/ci.cs's release-sbom-fixtures job, and a ci.yml step that rewrites the newest format-2 descriptor, renamed and backdated, in a scratch directory and requires every SBOM created at the new date and eng/sbom.cs --descriptor to match. Refs #248 Co-Authored-By: Claude <noreply@anthropic.com> Signed-off-by: Emil Okkels Klein <emil@okkels-klein.dk>
…fore landing At both steps, each release descriptor the head adds or changes is judged against the landing day (UTC): a date: more than three days earlier, or none, is refused, printing the release.cs --sbom command that writes the digests and the date again. Three fixtures join tests/fixtures/land/: four days refused, three days passing, no date refused. Refs #248 Co-Authored-By: Claude <noreply@anthropic.com> Signed-off-by: Emil Okkels Klein <emil@okkels-klein.dk>
docs/releases.md rule 3, amended 2026-11-10 with the old text struck and kept, and rule 11's "written, not typed" naming release.cs --sbom. ADR 0102 gets a dated amendment, add-only, saying the same, since rule 3 restates its line on date; no ruling changes, and ADR 0224 is untouched. AGENTS.md's close-out names the command and land.cs's refusal. Refs #248 Co-Authored-By: Claude <noreply@anthropic.com> Signed-off-by: Emil Okkels Klein <emil@okkels-klein.dk>
…s its digests Closes #248 Co-Authored-By: Claude <noreply@anthropic.com> Signed-off-by: Emil Okkels Klein <emil@okkels-klein.dk>
The three pull requests and their order, ADR 0241 and ADR 0102's amendment, the issues opened, closed and touched, the fixture counts, the questions for the maintainer, and #258 deferred. Refs #257 Refs #209 Refs #248 Co-Authored-By: Claude <noreply@anthropic.com> Signed-off-by: Emil Okkels Klein <emil@okkels-klein.dk>
|
The run used Fix: Generated by Claude Code |
|
Head for approval: Generated by Claude Code |
Main is at 2cad18d. This branch is the top of three pull requests that land as one fast-forward: #259 (issues are the work log, ADR 0241), #260 (land.cs checks closing trailers) and #261 (a descriptor's date follows its digests). One file met: docs/adr/README.md, where main had added the section for ADR 0223 and this branch the section for ADR 0241 at the same place. Both are kept, 0223's first. eng/ci.cs merged by itself: main's sdk-pin jobs beside this branch's. Refs #257 Refs #209 Refs #248 Delegated-by: Emil Okkels Klein <emil@okkels-klein.dk> Co-Authored-By: Claude <noreply@anthropic.com> Signed-off-by: Emil Okkels Klein <emil@okkels-klein.dk>
…entifiers allowed The maintainer read ADR 0241 on #259 and directed it accepted on 2026-11-11. ModelNamedInTheRecordNotTheCommit, as this ADR restates it, gains accepted-by and accepted-at, its statement unchanged, and the ADR's Status line opens Accepted, as eng/release.cs reads it. Written by his delegate at his word (ADR 0239), on the top of the three pull requests that land together. Refs #257 Delegated-by: Emil Okkels Klein <emil@okkels-klein.dk> Co-Authored-By: Claude <noreply@anthropic.com> Signed-off-by: Emil Okkels Klein <emil@okkels-klein.dk>
|
approve 3da8929 (delegate) |
|
Pushed to this branch by the landing queue: |
Completes: #248
What this changes, and why
Step 3 of the "issues are the work log" session, for #248 as corrected on 2026-11-10. It is stacked on #260, which is stacked on #259, so it lands last. Its own commits are the last four.
dotnet run eng/release.cs -- --sbom <version>:eng/sbom.cscreated at the current UTC day;sbom:block with itssbom.txtand setsdate:to that day, in one edit;CHANGELOG.md.Under ADR 0224 point 2 (D3, untouched) the SBOMs are created at
date, so the two now move together. Other behaviour:--syft,--binaryand--imagepass through toeng/sbom.cs, and--outnames where it writes;--from <dir>takes SBOMs already written, and refuses them unless every one was created on that day;sbom:block;--draftpoints at the command.eng/land.cs -- N, at both steps, refuses a descriptor the head adds or changes whosedate:is more than three days before the landing day (UTC), or that has no date. It prints the--sbomcommand.docs/releases.mdrule 3, amended 2026-11-10: the old text is struck through and kept, anddateis now the day the digests were last written. Rule 11's "written, not typed" names--sbom.ADR 0102 gets a dated amendment saying the same, because rule 3 restates 0102's line on
date. It is add-only and changes no ruling (ADR 0068 point 2).AGENTS.md's close-out names the command and the refusal.Preview.18 keeps 2026-10-27.
What was measured
release.cs --sbom-fixtures tests/fixtures/release-sbom: 4 cases, 0 judged wrong.land.cs --fixtures tests/fixtures/land: 12 cases, 0 judged wrong. Three are this PR's date cases: four days refused, three passing, no date refused.ci.ymlstep, run locally. The newest format-2 descriptor, renamedv0.0.0-sbom-rewriteand backdated to 2026-01-01 in a scratch directory, was rewritten with--sbom:--created 2026-11-09:eng/ci.cswith onlylicence-headers,decision-sets,release-sbom-fixtures,land-fixtures,changelog,release,status,release-fixtures,land,issue-refsanddco: all pass.What was found
sbom:block before this. The digests were pasted fromsbom.txtby hand, so "release.cs setsdate:whenever it rewrites the block" needed the rewrite itself.What is left
Closes #248trailer) and land.cs: list the issues a landing closes, and refuse a PR whose declared issue has no closing trailer #209 (its fixture runner gains thedatestep).Checklist
Refs #248on each commit, andCloses #248on the last.docs/releases.mdrules 3 and 11.eng/ci.csrun, and an end-to-end CI step.docs/traceability/2026-11-10-issue-248-the-descriptor-date-follows-the-digests.md.dotnet run eng/ci.cspasses locally: the process gates and fixtures were run; the full test pipeline is left to CI.Generated by Claude Code