From 044d8ba21f96f4aceb807d62addc35cdcbb56051 Mon Sep 17 00:00:00 2001 From: Jens Tirsvad Nielsen Date: Sat, 10 Oct 2026 22:46:23 +0800 Subject: [PATCH 1/2] Define the release process and version pinning Add the brief use case UC-006 (Release a Reusable Workflow), the use case in UCD-001, stories US-001.11 to US-001.13 and ADR-0006: one version for the repository with SemVer tags and a moving major tag, a release only from a green commit with a changelog entry, consumers pin the major or an exact tag and never main. Add the maintainers' checklist guides/release-process.md. Review and accept them (RC-040 to RC-043), update TM-001 and the registry. Task: MIL-004#1 --- ...006-release-process-and-version-pinning.md | 136 ++++++++++++++++++ docs/artifact-registry.md | 6 +- docs/sqa/reviews/rc-040-ucd-001-release.md | 47 ++++++ docs/sqa/reviews/rc-041-us-001-release.md | 46 ++++++ docs/sqa/reviews/rc-042-uc-006.md | 51 +++++++ docs/sqa/reviews/rc-043-adr-0006.md | 51 +++++++ docs/sqa/traceability-matrix.md | 23 ++- docs/uc-006/uc.md | 44 ++++++ docs/use-case-diagram.md | 13 +- docs/user-stories.md | 52 ++++++- guides/release-process.md | 64 +++++++++ 11 files changed, 513 insertions(+), 20 deletions(-) create mode 100644 docs/adr/adr-0006-release-process-and-version-pinning.md create mode 100644 docs/sqa/reviews/rc-040-ucd-001-release.md create mode 100644 docs/sqa/reviews/rc-041-us-001-release.md create mode 100644 docs/sqa/reviews/rc-042-uc-006.md create mode 100644 docs/sqa/reviews/rc-043-adr-0006.md create mode 100644 docs/uc-006/uc.md create mode 100644 guides/release-process.md diff --git a/docs/adr/adr-0006-release-process-and-version-pinning.md b/docs/adr/adr-0006-release-process-and-version-pinning.md new file mode 100644 index 0000000..516deeb --- /dev/null +++ b/docs/adr/adr-0006-release-process-and-version-pinning.md @@ -0,0 +1,136 @@ +# ADR-0006: Release process and version pinning + +## Metadata +| Key | Value | +| --- | --- | +| ID | ADR-0006 | +| CrossReference | [MIL-004], [UC-006], [US-001], [ADR-0004], [ADR-0005] | + +## Version History +| Date | Status | Author | Reviewer | Change | Commit | +| --- | --- | --- | --- | --- | --- | +| 2026-10-10 | Deprecated | Jens Tirsvad Nielsen | S01 | Initial version | pending | +| 2026-10-10 | Accepted | Jens Tirsvad Nielsen | S01 | Reviewed (RC-043): SemVer expanded at first use | pending | + +Allowed Status values: `Proposed`, `Accepted`, `Rejected`, `Deprecated`, `Superseded by ADR-NNNN`. + +--- + +## Context + +Every consumer of the shared workflows runs this repository's code, and today +that code is whatever `main` holds: the scoped workflows (sync and publish +wiki) are delivered from `main` and fetch their scripts at `ref: main`, and +the reusable quality-check workflow is called as `@main` in the guide. A merge +to `main` therefore changes the pipelines of repositories in four +organizations at their next run, with no version, no changelog and no way to +stay on the previous behaviour. MIL-004 gives releases a version. + +Facts that shape the decision: + +- A reusable workflow is referenced with `@` where the ref may be a + branch or a tag (verified on 2026-10-10), and a tag is not deleted when a + pull request is merged, unlike the branch the first trial used. +- A **scoped** workflow is delivered by the instance from `main` of this + repository; a consumer cannot pin it. Only what the workflow fetches (the + script files) and what a consumer calls explicitly (the reusable workflow) + can be pinned. +- The repository has a validation run (YAML parse, offline tests, wiki + freshness) that is green or red per commit, and no release process, no + changelog and no tags yet. + +Options for the unit and the scheme of a version: + +1. **One version for the whole repository** with a semantic version (SemVer) tag `vMAJOR.MINOR.PATCH` + and a moving major tag `vMAJOR`. One changelog, one release page. +2. **One version per workflow** (`quality-checks/v1.2.0`). Precise, but five + moving parts for one maintainer, and the scripts and guides span several + workflows. +3. **Date-based tags** (`2026.10.10`). Simple, but they say nothing about + whether a change is breaking. +4. **No versions; consumers copy the files.** The situation MIL-002 moved away + from. + +Options for how a consumer pins: + +a. **Exact tag** (`@v1.2.0`): never changes, never receives fixes. +b. **Moving major tag** (`@v1`): receives compatible releases only. +c. **`@main`**: always the newest, unreviewed by the consumer. + +## Decision + +The repository is released as a whole with a SemVer tag `vMAJOR.MINOR.PATCH` +and a moving major tag `vMAJOR` that always points to the latest compatible +release, and consumers pin `@vMAJOR` or an exact tag and never `@main`. A +release is created from `main` only when the validation run of that exact +commit is green and `CHANGELOG.md` has an entry for the version that marks +each breaking change, and it is announced by a release page generated from +that entry. + +The rules that follow from it: + +- **Breaking (new major):** renaming or removing a workflow, an input, a + secret name or an output; raising a default tool version or changing a + default so that a previously green consumer can turn red; changing the + meaning of a pass or a fail (ADR-0005). +- **Minor:** a new optional input, a new workflow or a new capability that + changes nothing for existing callers. **Patch:** a fix, or a change of + documentation or tests, with no visible change for consumers. +- **First release:** `v1.0.0`, with `v1` pointing to it. +- **Tags are not deleted or moved,** except that the major tag moves forward + with each compatible release and may be moved back to the previous exact + tag when a release proves faulty. +- **Who:** the DevOps Professional (S05) cuts the release and S01 approves it; + a release that touches credentials, tokens or permissions says so in the + changelog. +- **Scripts:** once `v1` exists the scoped workflows fetch their scripts at + `ref: v1` instead of `main`, so that a merge to `main` stops reaching + consumers until it is released. +- **Not automated yet:** the steps are a checklist in + `guides/release-process.md`; the release workflow is task 5 of MIL-004. + +## Consequences + +**Positive:** + +- A consumer chooses between "never changes" (`@v1.2.0`) and "compatible + fixes only" (`@v1`), and a breaking change cannot reach a pipeline that + pins a major version. +- A merge to `main` no longer reaches consumers of the scripts and the + reusable workflow until it is released, so a faulty merge costs a revert, + not an incident in four organizations. +- The changelog gives S02 and S03 one place to see what changed and whether + credentials or permissions are involved. + +**Negative:** + +- **A scoped workflow file is still delivered from `main`:** a consumer cannot + pin it, so a bad merge of `sync-github-metadata.yml` or `publish-wiki.yml` + still reaches every repository at its next run. Review of `main` is the only + protection for those two files, and the release process cannot change that. +- Moving the major tag needs permission to force-update a tag, which is a + second sensitive permission next to merging. +- One version for the whole repository means a fix to one workflow produces a + release for all, and a consumer of one workflow sees changelog entries that + concern another. +- Raising a default tool version is treated as breaking, so keeping the + quality checks current costs a major version each time. + +## Affected Artifacts + +- [MIL-004] — tasks 2 to 5 (issues #21 to #24) implement the changelog and tag + convention, the upgrade guide, the publish destination and the release + workflow on this decision. +- [UC-006] — the use case this process serves. +- [US-001] — stories US-001.11 to US-001.13 state its acceptance criteria. +- [ADR-0005] — its pinned tool versions become defaults that a release moves. +- [ADR-0004] — the scoped publish-wiki workflow is covered by the limitation + above. + +--- + +[MIL-004]: ../milestones/mil-004-versioned-release.md +[UC-006]: ../uc-006/uc.md +[US-001]: ../user-stories.md +[ADR-0004]: ./adr-0004-shared-wiki-publishing-opt-in.md +[ADR-0005]: ./adr-0005-quality-check-contract.md diff --git a/docs/artifact-registry.md b/docs/artifact-registry.md index 4e2469d..a691c89 100644 --- a/docs/artifact-registry.md +++ b/docs/artifact-registry.md @@ -11,12 +11,12 @@ each document lives in *this* project and the next version to use. | SA | Stakeholder Analysis | docs/stakeholder-analysis.md | 002 | | PP | Project Plan | docs/project-plan.md | 002 | | MIL | Milestone / Gateway | docs/milestones/*.md | 007 | -| RC | SQA Review Record | docs/sqa/reviews/rc-*.md | 040 | +| RC | SQA Review Record | docs/sqa/reviews/rc-*.md | 044 | | TM | Traceability Matrix | docs/sqa/traceability-matrix.md | 002 | -| ADR | Architecture Decision Record | docs/adr/adr-NNNN-*.md | 0006 | +| ADR | Architecture Decision Record | docs/adr/adr-NNNN-*.md | 0007 | | UCD | Use Case Diagram | docs/use-case-diagram.md | 002 | | US | User Story | docs/user-stories.md | 002 | -| UC | Use Case | docs/uc-NNN/uc.md | 006 | +| UC | Use Case | docs/uc-NNN/uc.md | 007 | ## Languages diff --git a/docs/sqa/reviews/rc-040-ucd-001-release.md b/docs/sqa/reviews/rc-040-ucd-001-release.md new file mode 100644 index 0000000..74c3574 --- /dev/null +++ b/docs/sqa/reviews/rc-040-ucd-001-release.md @@ -0,0 +1,47 @@ +# Review Record: UCD-001 (release process) + +## Metadata +| Key | Value | +| --- | --- | +| ID | RC-040 | +| CrossReference | [UCD-001], [QC-UCD-001] | + +## Version History +| Date | Status | Author | Reviewer | Change | Commit | +| --- | --- | --- | --- | --- | --- | +| 2026-10-10 | Accepted | Jens Tirsvad Nielsen | S01 | Initial version | pending | + +--- + +## Artifact Under Review + +- Instance reviewed: [UCD-001] +- Checklist used: [QC-UCD-001] + +## Checklist Results + +| # | Criterion | Status | Evidence/Notes | +| --- | --- | --- | --- | +| 1 | Actors are defined with correct UML stereotypes (e.g. `<>`, `<>`) | Pass | Unchanged actors. | +| 2 | System boundary is clearly drawn and labeled | Pass | Unchanged. | +| 3 | Include/extend relationships are used correctly per UML 2.5.1, not as generic "uses" arrows | Pass | The new use case has none. | +| 4 | Every actor participates in at least one use case (no orphan actors) | Pass | DevOps Professional reaches Release a Reusable Workflow. | +| 5 | Diagram is traceable to a documented stakeholder need | Pass | S05 in the Actor Table. | +| 6 | Use case names are verb phrases describing actor goals, not internal system operations | Pass | "Release a Reusable Workflow". | +| 7 | Diagram is free of implementation detail (e.g. UI widgets, database tables) | Pass | No tool or file named. | +| 8 | Actor and use case naming is consistent with corresponding Use Case and User Story documents | Pass | UC-006's title and the story roles match. | + +## Overall Verdict + +Go - all eight criteria pass for the amendment (the use case of UC-006). S01 gave the Go in chat on 2026-10-10, standing in for the other reviewers as ADR-0002 records; there is no independent reader. + +## Action Items + +| Action | Owner | Due | +| --- | --- | --- | +| None | - | - | + +--- + +[UCD-001]: ../../use-case-diagram.md +[QC-UCD-001]: ../../../framework/qc/qc-use-case-diagram.md diff --git a/docs/sqa/reviews/rc-041-us-001-release.md b/docs/sqa/reviews/rc-041-us-001-release.md new file mode 100644 index 0000000..d32f8e4 --- /dev/null +++ b/docs/sqa/reviews/rc-041-us-001-release.md @@ -0,0 +1,46 @@ +# Review Record: US-001 (release process) + +## Metadata +| Key | Value | +| --- | --- | +| ID | RC-041 | +| CrossReference | [US-001], [QC-US-001] | + +## Version History +| Date | Status | Author | Reviewer | Change | Commit | +| --- | --- | --- | --- | --- | --- | +| 2026-10-10 | Accepted | Jens Tirsvad Nielsen | S01 | Initial version | pending | + +--- + +## Artifact Under Review + +- Instance reviewed: [US-001] +- Checklist used: [QC-US-001] + +## Checklist Results + +| # | Criterion | Status | Evidence/Notes | +| --- | --- | --- | --- | +| 1 | Follows INVEST criteria (Independent, Negotiable, Valuable, Estimable, Small, Testable) | Pass | INVEST check updated to thirteen stories. | +| 2 | Written in "As a / I want / So that" form | Pass | US-001.11 to US-001.13. | +| 3 | Clear, testable acceptance criteria are included | Pass | Two Given/When/Then criteria each, matching ADR-0006. | +| 4 | Traceable to a use case or epic | Pass | Finding fixed during this review: US-001.13 is a consumer's goal (pin a version) but traced to UC-006, whose actor is the DevOps Professional. It now traces to the epic MIL-004 and names its use case, Consume a Workflow Update, as not yet written; UC-006 lists only US-001.11 and US-001.12. | +| 5 | Story is sized to fit within a single iteration | Pass | One goal each. | +| 6 | Story statement avoids technical implementation detail | Pass | Tags are named only in the criteria, as the observable result. | +| 7 | Role named in the story matches an actor defined in the Use Case Diagram | Pass | DevOps Professional and Software Engineer are in UCD-001. | + +## Overall Verdict + +Go - all seven criteria pass; the one finding (criterion 4) was fixed during the review. S01 gave the Go in chat on 2026-10-10, standing in for the other reviewers as ADR-0002 records; there is no independent reader. + +## Action Items + +| Action | Owner | Due | +| --- | --- | --- | +| None | - | - | + +--- + +[US-001]: ../../user-stories.md +[QC-US-001]: ../../../framework/qc/qc-user-story.md diff --git a/docs/sqa/reviews/rc-042-uc-006.md b/docs/sqa/reviews/rc-042-uc-006.md new file mode 100644 index 0000000..cbe3002 --- /dev/null +++ b/docs/sqa/reviews/rc-042-uc-006.md @@ -0,0 +1,51 @@ +# Review Record: UC-006 + +## Metadata +| Key | Value | +| --- | --- | +| ID | RC-042 | +| CrossReference | [UC-006], [QC-UC-001] | + +## Version History +| Date | Status | Author | Reviewer | Change | Commit | +| --- | --- | --- | --- | --- | --- | +| 2026-10-10 | Accepted | Jens Tirsvad Nielsen | S01 | Initial version | pending | + +--- + +## Artifact Under Review + +- Instance reviewed: [UC-006] +- Checklist used: [QC-UC-001] (Brief format) + +## Checklist Results + +| # | Criterion | Status | Evidence/Notes | +| --- | --- | --- | --- | +| 1 | Consists of a single, concise paragraph summarizing only the primary success scenario | Pass | The paragraph describes the main flow: validation, changelog, tags, release page. The failure and undo paths are in the process guide and the stories. | +| 2 | Written as an informal multi-paragraph narrative; may mention some alternate flows without formal structure | N-A | Format is Brief. | +| 3 | All standard sections are present: actors, preconditions, postconditions, main success scenario, alternative/exception flows | N-A | Format is Brief; actor, stakeholders, pre- and postconditions and the paragraph are present. | +| 4 | Preconditions and postconditions are explicitly defined | Pass | Both stated. | +| 5 | Primary actor is explicitly stated | Pass | DevOps Professional. | +| 6 | Stakeholders and their interests are stated | Pass | S05, S02 and S03. | +| 7 | Main success scenario is written as clear, numbered steps | N-A | Format is Brief. | +| 8 | Alternative/exception flows correctly reference `<>`/`<>` use cases where relevant, per UML 2.5.1 | N-A | No alternative flows in a Brief use case. | +| 9 | Explicit business rules are captured per step where applicable, rather than embedded loosely in narrative text | N-A | No steps in a Brief use case. | +| 10 | Naming of actors and use case title is consistent with the corresponding Use Case Diagram and User Stories | Pass | Title and actor match UCD-001; its stories are US-001.11 and US-001.12. | +| 11 | Scope/level (e.g. summary, user-goal, subfunction) is explicitly stated | Pass | Scope and user-goal level. | +| 12 | Use case is written from the actor's goal perspective, free of UI or implementation detail | Pass | Goal wording; tags and the changelog are domain terms. | + +## Overall Verdict + +Go - all applicable criteria pass. S01 gave the Go in chat on 2026-10-10, standing in for the other reviewers as ADR-0002 records; there is no independent reader. + +## Action Items + +| Action | Owner | Due | +| --- | --- | --- | +| None | - | - | + +--- + +[UC-006]: ../../uc-006/uc.md +[QC-UC-001]: ../../../framework/qc/qc-use-case.md diff --git a/docs/sqa/reviews/rc-043-adr-0006.md b/docs/sqa/reviews/rc-043-adr-0006.md new file mode 100644 index 0000000..8a095e6 --- /dev/null +++ b/docs/sqa/reviews/rc-043-adr-0006.md @@ -0,0 +1,51 @@ +# Review Record: ADR-0006 + +## Metadata +| Key | Value | +| --- | --- | +| ID | RC-043 | +| CrossReference | [ADR-0006], [QC-ADR-001] | + +## Version History +| Date | Status | Author | Reviewer | Change | Commit | +| --- | --- | --- | --- | --- | --- | +| 2026-10-10 | Accepted | Jens Tirsvad Nielsen | S01 | Initial version | pending | + +--- + +## Artifact Under Review + +- Instance reviewed: [ADR-0006] +- Checklist used: [QC-ADR-001] + +## Checklist Results + +| # | Criterion | Status | Evidence/Notes | +| --- | --- | --- | --- | +| 1 | The ID (`ADR-NNNN`, 4-digit) matches the filename number and is unique and sequential | Pass | ADR-0006 in `adr-0006-release-process-and-version-pinning.md`. | +| 2 | Context states the problem, the forces (cost, risk, constraints) and the options evaluated | Pass | Names that every consumer runs `main`, what can and cannot be pinned, and the options. | +| 3 | At least two options were considered, or the absence of alternatives is justified | Pass | Four options for the version unit and three for the pin. | +| 4 | Decision is stated in one or two unhedged sentences and matches one of the evaluated options | Pass | Two sentences; options 1 and b. | +| 5 | Consequences list both Positive and Negative outcomes | Pass | Three positive and four negative. | +| 6 | Quality-attribute impacts (performance, security, portability, etc.) are named where the decision affects them | Pass | Reliability for consumers and the security of tag permissions and of a bad merge of a scoped file are named. | +| 7 | Affected Artifacts are listed as links, and each is also in CrossReference | Pass | MIL-004, UC-006, US-001, ADR-0005 and ADR-0004 are linked and cited. | +| 8 | Status changes are recorded as new Version History rows with a Change summary and Commit link; retained rows are never rewritten | Pass | The earlier row is kept and only its status changed. | +| 9 | A superseded or deprecated ADR names its successor, and the successor links back | N-A | Nothing is superseded. | +| 10 | Written in business or technical language of the domain, with no unexplained abbreviations | Pass | Finding fixed during this review: SemVer was used without being expanded; it is now introduced as semantic version (SemVer). | +| 11 | Status is one of `Proposed`, `Accepted`, `Rejected`, `Deprecated` or `Superseded by ADR-NNNN`, and every Version History row uses only these | Pass | Deprecated and Accepted only. | + +## Overall Verdict + +Go - all applicable criteria pass; the one finding (criterion 10) was fixed during the review. It unlocks tasks 2 to 5 of MIL-004 (#21 to #24) under the plan-first gate. S01 gave the Go in chat on 2026-10-10, standing in for the other reviewers as ADR-0002 records; there is no independent reader. + +## Action Items + +| Action | Owner | Due | +| --- | --- | --- | +| Pin the scripts fetched by the two scoped workflows to `v1` once it exists (the workflows still say `ref: main`) | S05 | 2026-11-28 | +| Review who may merge to `main` and who may move tags, since a scoped workflow file cannot be pinned by consumers | S01 | 2026-11-14 | + +--- + +[ADR-0006]: ../../adr/adr-0006-release-process-and-version-pinning.md +[QC-ADR-001]: ../../../framework/qc/qc-adr.md diff --git a/docs/sqa/traceability-matrix.md b/docs/sqa/traceability-matrix.md index a448af5..39268df 100644 --- a/docs/sqa/traceability-matrix.md +++ b/docs/sqa/traceability-matrix.md @@ -4,13 +4,13 @@ | Key | Value | | --- | --- | | ID | TM-001 | -| CrossReference | [BC-001], [SA-001], [PP-001], [MIL-001], [MIL-002], [MIL-003], [MIL-004], [MIL-005], [MIL-006], [RC-001], [RC-002], [RC-003], [RC-004], [RC-005], [RC-006], [RC-007], [RC-008], [RC-009], [RC-010], [RC-011], [RC-012], [RC-013], [RC-014], [RC-015], [RC-016], [RC-017], [RC-018], [RC-019], [RC-020], [RC-021], [RC-022], [RC-023], [RC-024], [RC-025], [RC-026], [RC-027], [RC-028], [RC-029], [RC-030], [RC-031], [RC-032], [RC-033], [RC-034], [RC-035], [RC-036], [RC-037], [RC-038], [RC-039], [UC-005], [ADR-0005], [UCD-001], [US-001], [UC-001], [UC-002], [UC-003], [UC-004], [ADR-0001], [ADR-0002], [ADR-0003], [ADR-0004] | +| CrossReference | [BC-001], [SA-001], [PP-001], [MIL-001], [MIL-002], [MIL-003], [MIL-004], [MIL-005], [MIL-006], [RC-001], [RC-002], [RC-003], [RC-004], [RC-005], [RC-006], [RC-007], [RC-008], [RC-009], [RC-010], [RC-011], [RC-012], [RC-013], [RC-014], [RC-015], [RC-016], [RC-017], [RC-018], [RC-019], [RC-020], [RC-021], [RC-022], [RC-023], [RC-024], [RC-025], [RC-026], [RC-027], [RC-028], [RC-029], [RC-030], [RC-031], [RC-032], [RC-033], [RC-034], [RC-035], [RC-036], [RC-037], [RC-038], [RC-039], [RC-040], [RC-041], [RC-042], [RC-043], [UC-006], [ADR-0006], [UC-005], [ADR-0005], [UCD-001], [US-001], [UC-001], [UC-002], [UC-003], [UC-004], [ADR-0001], [ADR-0002], [ADR-0003], [ADR-0004] | ## Version History | Date | Status | Author | Reviewer | Change | Commit | | --- | --- | --- | --- | --- | --- | -| 2026-10-10 | Deprecated | Jens Tirsvad Nielsen | S01 | Added UC-005, ADR-0005 and RC-035 to RC-038 | [385d2fb] | -| 2026-10-10 | Accepted | Jens Tirsvad Nielsen | S01 | Added RC-039 for MIL-003 | [3b8681d] | +| 2026-10-10 | Deprecated | Jens Tirsvad Nielsen | S01 | Added RC-039 for MIL-003 | [3b8681d] | +| 2026-10-10 | Accepted | Jens Tirsvad Nielsen | S01 | Added UC-006, ADR-0006 and RC-040 to RC-043 | pending | --- @@ -55,14 +55,16 @@ updated whenever an artifact instance is created or reviewed. | [RC-016] | RC | [MIL-006] | - | - | | [RC-017] | RC | [PP-001] | - | - | | [RC-018] | RC | [ADR-0004] | - | - | -| [UCD-001] | UCD | [SA-001], [BC-001] | [US-001], [UC-001], [UC-002], [UC-003], [UC-004], [UC-005] | [RC-019], [RC-035] | -| [US-001] | US | [UCD-001], [BC-001], [MIL-001], [MIL-002], [MIL-003] | [UC-001], [UC-002], [UC-003], [UC-004], [UC-005] | [RC-020], [RC-036] | +| [UCD-001] | UCD | [SA-001], [BC-001] | [US-001], [UC-001], [UC-002], [UC-003], [UC-004], [UC-005], [UC-006] | [RC-019], [RC-035], [RC-040] | +| [US-001] | US | [UCD-001], [BC-001], [MIL-001], [MIL-002], [MIL-003], [MIL-004] | [UC-001], [UC-002], [UC-003], [UC-004], [UC-005], [UC-006] | [RC-020], [RC-036], [RC-041] | | [UC-001] | UC | [UCD-001], [US-001], [SA-001] | - | [RC-021] | | [UC-002] | UC | [UCD-001], [US-001], [SA-001] | - | [RC-022] | | [UC-003] | UC | [UCD-001], [US-001], [SA-001] | - | [RC-023] | | [UC-004] | UC | [UCD-001], [US-001], [SA-001] | - | [RC-024] | | [UC-005] | UC | [UCD-001], [US-001], [SA-001] | [ADR-0005] | [RC-037] | | [ADR-0005] | ADR | [MIL-003], [UC-005], [US-001], [ADR-0004] | - | [RC-038] | +| [UC-006] | UC | [UCD-001], [US-001], [SA-001] | [ADR-0006] | [RC-042] | +| [ADR-0006] | ADR | [MIL-004], [UC-006], [US-001], [ADR-0004], [ADR-0005] | - | [RC-043] | | [RC-019] | RC | [UCD-001] | - | - | | [RC-020] | RC | [US-001] | - | - | | [RC-021] | RC | [UC-001] | - | - | @@ -84,6 +86,10 @@ updated whenever an artifact instance is created or reviewed. | [RC-037] | RC | [UC-005] | - | - | | [RC-038] | RC | [ADR-0005] | - | - | | [RC-039] | RC | [MIL-003] | - | - | +| [RC-040] | RC | [UCD-001] | - | - | +| [RC-041] | RC | [US-001] | - | - | +| [RC-042] | RC | [UC-006] | - | - | +| [RC-043] | RC | [ADR-0006] | - | - | ## Coverage Notes @@ -152,7 +158,12 @@ updated whenever an artifact instance is created or reviewed. [RC-037]: ./reviews/rc-037-uc-005.md [RC-038]: ./reviews/rc-038-adr-0005.md [RC-039]: ./reviews/rc-039-mil-003-adoption.md +[RC-040]: ./reviews/rc-040-ucd-001-release.md +[RC-041]: ./reviews/rc-041-us-001-release.md +[RC-042]: ./reviews/rc-042-uc-006.md +[RC-043]: ./reviews/rc-043-adr-0006.md +[UC-006]: ../uc-006/uc.md +[ADR-0006]: ../adr/adr-0006-release-process-and-version-pinning.md [UC-005]: ../uc-005/uc.md [ADR-0005]: ../adr/adr-0005-quality-check-contract.md -[385d2fb]: https://git.tirsystem.com/TirSystem/github-action/commit/385d2fb7cb9be1fdc8fd3503d0af624fa38eafc7 [3b8681d]: https://git.tirsystem.com/TirSystem/github-action/commit/3b8681d0236c669b794ffbba725433fff600a2d2 diff --git a/docs/uc-006/uc.md b/docs/uc-006/uc.md new file mode 100644 index 0000000..17aca4b --- /dev/null +++ b/docs/uc-006/uc.md @@ -0,0 +1,44 @@ +# UC-006: Release a Reusable Workflow + +## Metadata +| Key | Value | +| --- | --- | +| ID | UC-006 | +| CrossReference | [UCD-001], [US-001], [SA-001], [ADR-0006] | + +## Version History +| Date | Status | Author | Reviewer | Change | Commit | +| --- | --- | --- | --- | --- | --- | +| 2026-10-10 | Accepted | Jens Tirsvad Nielsen | S01 | Initial version | pending | + +--- + +**Format:** Brief + +**Title:** Release a Reusable Workflow +**Scope:** Reusable Workflow Collection +**Level:** user-goal +**Primary Actor:** DevOps Professional +**Stakeholders:** S05, S02, S03 (interests below) +**Stories:** US-001.11, US-001.12 + +## Brief + +When a change to the workflows or their scripts is ready on the default branch, the DevOps Professional checks that the repository's validation run on that commit is green, adds the version to the changelog with each breaking change marked, and creates the version tag and moves the major tag of the same major version. The release page for the tag is created from the changelog entry and announces what changed and whether consumers need to act. Consumers pinned to the previous version are not affected. + +**Stakeholder interests** + +- S05 — a release is a deliberate, validated, reviewed step, and a faulty one can be undone +- S02 — a pinned pipeline never changes under them, and a changelog tells them whether to act +- S03 — a change to credentials, tokens or permissions is visible in the changelog before it reaches runners + +**Preconditions:** The repository's validation run exists and is green on the commit to be released, and the version scheme of ADR-0006 is defined. + +**Postconditions (success guarantee):** A version tag and a changelog entry exist for the commit, the major tag points to the latest compatible release, the release page announces it, and pipelines pinned to earlier versions run unchanged. + +--- + +[UCD-001]: ../use-case-diagram.md +[US-001]: ../user-stories.md +[SA-001]: ../stakeholder-analysis.md +[ADR-0006]: ../adr/adr-0006-release-process-and-version-pinning.md diff --git a/docs/use-case-diagram.md b/docs/use-case-diagram.md index 8a285f1..05a9c66 100644 --- a/docs/use-case-diagram.md +++ b/docs/use-case-diagram.md @@ -4,13 +4,13 @@ | Key | Value | | --- | --- | | ID | UCD-001 | -| CrossReference | [SA-001], [BC-001], [US-001], [UC-001], [UC-002], [UC-003], [UC-004], [UC-005] | +| CrossReference | [SA-001], [BC-001], [US-001], [UC-001], [UC-002], [UC-003], [UC-004], [UC-005], [UC-006] | ## Version History | Date | Status | Author | Reviewer | Change | Commit | | --- | --- | --- | --- | --- | --- | -| 2026-10-10 | Deprecated | Jens Tirsvad Nielsen | S01 | Initial version | [a2bf2d4] | -| 2026-10-10 | Accepted | Jens Tirsvad Nielsen | S01 | Added the actor Software Engineer and the use case Run Project Quality Checks | [385d2fb] | +| 2026-10-10 | Deprecated | Jens Tirsvad Nielsen | S01 | Added the actor Software Engineer and the use case Run Project Quality Checks | [385d2fb] | +| 2026-10-10 | Accepted | Jens Tirsvad Nielsen | S01 | Added the use case Release a Reusable Workflow (UC-006) | pending | --- @@ -44,12 +44,14 @@ rectangle "Reusable Workflow Collection" <> { usecase "Onboard a Repository" as UC3 usecase "Diagnose a Failed Workflow" as UC4 usecase "Run Project Quality Checks" as UC5 + usecase "Release a Reusable Workflow" as UC6 } DevOps --> UC1 DevOps --> UC2 DevOps --> UC3 DevOps --> UC4 +DevOps --> UC6 Operator --> UC2 Operator --> UC4 Engineer --> UC5 @@ -64,7 +66,7 @@ UC4 ..> UC1 : <> | Actor | Stereotype | Stakeholder ID (SA) | Goals (use cases) | | --- | --- | --- | --- | -| DevOps Professional | `<>` | S05 | Synchronize Repository Metadata, Configure Workflow Credentials, Onboard a Repository, Diagnose a Failed Workflow | +| DevOps Professional | `<>` | S05 | Synchronize Repository Metadata, Configure Workflow Credentials, Onboard a Repository, Diagnose a Failed Workflow, Release a Reusable Workflow | | Platform Operator | `<>` | S03 | Configure Workflow Credentials, Diagnose a Failed Workflow | | Software Engineer | `<>` | S02 | Run Project Quality Checks | | Gitea Instance | `<>` | - | Synchronize Repository Metadata (source of description and topics) | @@ -79,6 +81,7 @@ UC4 ..> UC1 : <> | Onboard a Repository | DevOps Professional | A repository consumes the shared workflows | | Diagnose a Failed Workflow | DevOps Professional, Platform Operator | The cause of a failed run is found and placed in a category | | Run Project Quality Checks | Software Engineer | Lint, format and type checks run on every change and report a pass or a fail | +| Release a Reusable Workflow | DevOps Professional | A validated, versioned update that consumers can pin | ## Relationships @@ -96,6 +99,6 @@ UC4 ..> UC1 : <> [UC-002]: ./uc-002/uc.md [UC-003]: ./uc-003/uc.md [UC-004]: ./uc-004/uc.md -[a2bf2d4]: https://git.tirsystem.com/TirSystem/github-action/commit/a2bf2d420416f7aff2badc6fe32a7690e2e523fd [UC-005]: ./uc-005/uc.md [385d2fb]: https://git.tirsystem.com/TirSystem/github-action/commit/385d2fb7cb9be1fdc8fd3503d0af624fa38eafc7 +[UC-006]: ./uc-006/uc.md diff --git a/docs/user-stories.md b/docs/user-stories.md index 134f328..2c6e1fc 100644 --- a/docs/user-stories.md +++ b/docs/user-stories.md @@ -4,13 +4,13 @@ | Key | Value | | --- | --- | | ID | US-001 | -| CrossReference | [UCD-001], [BC-001], [MIL-001], [MIL-002], [MIL-003], [UC-001], [UC-002], [UC-003], [UC-004], [UC-005] | +| CrossReference | [UCD-001], [BC-001], [MIL-001], [MIL-002], [MIL-003], [MIL-004], [UC-001], [UC-002], [UC-003], [UC-004], [UC-005], [UC-006] | ## Version History | Date | Status | Author | Reviewer | Change | Commit | | --- | --- | --- | --- | --- | --- | -| 2026-10-10 | Deprecated | Jens Tirsvad Nielsen | S01 | Initial version | [a2bf2d4] | -| 2026-10-10 | Accepted | Jens Tirsvad Nielsen | S01 | Added US-001.09 and US-001.10 (quality checks, UC-005) | [385d2fb] | +| 2026-10-10 | Deprecated | Jens Tirsvad Nielsen | S01 | Added US-001.09 and US-001.10 (quality checks, UC-005) | [385d2fb] | +| 2026-10-10 | Accepted | Jens Tirsvad Nielsen | S01 | Added US-001.11 to US-001.13 (releases, UC-006); US-001.13 traced to the epic (RC-041) | pending | --- @@ -19,7 +19,7 @@ These stories cover the P1 use cases of the Project Plan that MIL-002 delivers (O1 to O3 of [BC-001]): keeping the mirror metadata correct, configuring credentials, onboarding a repository and diagnosing a failed run. Roles are the -actors of [UCD-001]. Stories for quality checks and releases (MIL-004) and for the wiki (MIL-005, MIL-006) are not written yet. +actors of [UCD-001]. Stories for quality checks and releases (the consumer's update, MIL-004) and for the wiki (MIL-005, MIL-006) are not written yet. ## Story List @@ -153,9 +153,48 @@ actors of [UCD-001]. Stories for quality checks and releases (MIL-004) and for t | --- | --- | --- | | [UC-005], [MIL-003] | fits one iteration | none | +### US-001.11 — Only validated commits are released + +**As a** DevOps Professional, **I want** a release to be created only from a commit whose validation run is green, **so that** consumers never receive an unchecked version. + +**Acceptance Criteria** + +- Given a commit whose validation run failed, when a release is attempted, then no version tag is created. +- Given a green commit and a changelog entry for the version, when the release is created, then the version tag, the major tag and the release page exist. + +| Traces to | Size | INVEST exceptions | +| --- | --- | --- | +| [UC-006], [MIL-004] | fits one iteration | none | + +### US-001.12 — A release says whether it is breaking + +**As a** DevOps Professional, **I want** every release to say whether it is breaking, **so that** consumers know whether they must act. + +**Acceptance Criteria** + +- Given a change that renames a workflow, an input or a secret, or can turn a passing consumer red, when it is released, then the changelog marks it as breaking and a new major version is created. +- Given a compatible change, when it is released, then the major tag moves to it and consumers pinned to that major version receive it. + +| Traces to | Size | INVEST exceptions | +| --- | --- | --- | +| [UC-006], [MIL-004] | fits one iteration | none | + +### US-001.13 — A pin that does not move + +**As a** Software Engineer, **I want** to pin the shared workflows to a version that does not change under me, **so that** a release cannot break my pipeline by surprise. + +**Acceptance Criteria** + +- Given a repository that calls a shared workflow at an exact version tag, when a new release is made, then its runs use the same code as before. +- Given a repository that calls a shared workflow at a major tag, when a compatible release is made, then it receives the release and a breaking release is not delivered to it. + +| Traces to | Size | INVEST exceptions | +| --- | --- | --- | +| [MIL-004] (epic; its use case, Consume a Workflow Update, is not written yet) | fits one iteration | none | + ## INVEST Check -All ten stories are independent of each other except that US-001.05 and +All thirteen stories are independent of each other except that US-001.05 and US-001.06 build on US-001.04 (the secrets must exist before a repository can run the workflow). Each states one goal and can be negotiated, delivers value to the named role, is small enough for one iteration, and has acceptance @@ -170,10 +209,11 @@ behaviour is tested rather than built. [MIL-001]: ./milestones/mil-001-stabilise-metadata-sync.md [MIL-002]: ./milestones/mil-002-onboarding-and-operations.md [MIL-003]: ./milestones/mil-003-quality-checks.md +[MIL-004]: ./milestones/mil-004-versioned-release.md [UC-001]: ./uc-001/uc.md [UC-002]: ./uc-002/uc.md [UC-003]: ./uc-003/uc.md [UC-004]: ./uc-004/uc.md -[a2bf2d4]: https://git.tirsystem.com/TirSystem/github-action/commit/a2bf2d420416f7aff2badc6fe32a7690e2e523fd [UC-005]: ./uc-005/uc.md [385d2fb]: https://git.tirsystem.com/TirSystem/github-action/commit/385d2fb7cb9be1fdc8fd3503d0af624fa38eafc7 +[UC-006]: ./uc-006/uc.md diff --git a/guides/release-process.md b/guides/release-process.md new file mode 100644 index 0000000..dca2e05 --- /dev/null +++ b/guides/release-process.md @@ -0,0 +1,64 @@ +# Release process + +For the maintainers of this repository: how a change to the shared workflows +is validated, versioned and announced, and how consumers pin a version. The +decisions are in ADR-0006; this guide is the checklist. It is not published +on the wiki. + +Until the release workflow exists (MIL-004 task 5) the steps are done by hand. + +## What a version is + +| Item | Rule | +| --- | --- | +| Unit | The whole repository: the workflows, their scripts and the guides | +| Version tag | `vMAJOR.MINOR.PATCH`, for example `v1.2.0`; never deleted or moved | +| Major tag | `vMAJOR`, for example `v1`; points to the latest compatible release | +| First release | `v1.0.0` | +| Breaking (new major) | A renamed or removed workflow, input, secret name or output; a raised default tool version or a changed default that can turn a green consumer red; a changed meaning of pass or fail | +| Minor | A new optional input, workflow or capability; nothing changes for existing callers | +| Patch | A fix, or documentation and tests, with no visible change for consumers | + +## Checklist for a release + +1. **Decide the version** from the table above, looking at every merged change + since the last tag. +2. **Check the commit.** The validation run (`validate-workflows`) on the exact + commit of `main` to be released is green; do not release from a red or + unchecked commit. +3. **Write the changelog entry** in `CHANGELOG.md`: the version, the date, and + the changes in the groups Breaking, Added, Changed and Fixed. A change that + touches credentials, tokens or permissions says so. +4. **Get the approval** of S01 for the release, in the pull request that adds + the changelog entry. +5. **Tag.** Create `vMAJOR.MINOR.PATCH` on the approved commit, then move + `vMAJOR` to it: + ```bash + git tag -a v1.2.0 -m "v1.2.0" + git push origin v1.2.0 + git tag -f v1 && git push -f origin v1 + ``` +6. **Announce.** Create the release page for the tag with the changelog entry + as its text, and say whether consumers must act. +7. **Verify.** One repository pinned to the previous exact tag still runs the + same code; one repository on the major tag receives the release. + +## How consumers pin + +| Pin | Receives | Use when | +| --- | --- | --- | +| `@v1.2.0` | nothing new, ever | a pipeline must not change | +| `@v1` | compatible releases only | the default for a project | +| `@main` | everything, unreleased | never; only this repository's own tests | + +Reusable workflows are pinned in the `uses:` line of the caller. The scoped +workflows (sync and publish wiki) are delivered from `main` by the instance +and cannot be pinned by a consumer; they fetch their scripts at the major tag +once `v1` exists. + +## Undoing a faulty release + +1. Move the major tag back to the previous exact tag: + `git tag -f v1 v1.1.0 && git push -f origin v1`. +2. Fix forward on `main` and release a patch version. +3. Do not delete or move an exact tag; consumers may have pinned it. -- 2.54.0 From a04b578d7000f5bf473df3c2c145d46000a63aba Mon Sep 17 00:00:00 2001 From: Jens Tirsvad Nielsen Date: Sat, 10 Oct 2026 22:46:26 +0800 Subject: [PATCH 2/2] Resolve pending commit links in the release process documents --- docs/adr/adr-0006-release-process-and-version-pinning.md | 5 +++-- docs/sqa/reviews/rc-040-ucd-001-release.md | 3 ++- docs/sqa/reviews/rc-041-us-001-release.md | 3 ++- docs/sqa/reviews/rc-042-uc-006.md | 3 ++- docs/sqa/reviews/rc-043-adr-0006.md | 3 ++- docs/sqa/traceability-matrix.md | 3 ++- docs/uc-006/uc.md | 3 ++- docs/use-case-diagram.md | 3 ++- docs/user-stories.md | 3 ++- 9 files changed, 19 insertions(+), 10 deletions(-) diff --git a/docs/adr/adr-0006-release-process-and-version-pinning.md b/docs/adr/adr-0006-release-process-and-version-pinning.md index 516deeb..3de0e96 100644 --- a/docs/adr/adr-0006-release-process-and-version-pinning.md +++ b/docs/adr/adr-0006-release-process-and-version-pinning.md @@ -9,8 +9,8 @@ ## Version History | Date | Status | Author | Reviewer | Change | Commit | | --- | --- | --- | --- | --- | --- | -| 2026-10-10 | Deprecated | Jens Tirsvad Nielsen | S01 | Initial version | pending | -| 2026-10-10 | Accepted | Jens Tirsvad Nielsen | S01 | Reviewed (RC-043): SemVer expanded at first use | pending | +| 2026-10-10 | Deprecated | Jens Tirsvad Nielsen | S01 | Initial version | [044d8ba] | +| 2026-10-10 | Accepted | Jens Tirsvad Nielsen | S01 | Reviewed (RC-043): SemVer expanded at first use | [044d8ba] | Allowed Status values: `Proposed`, `Accepted`, `Rejected`, `Deprecated`, `Superseded by ADR-NNNN`. @@ -134,3 +134,4 @@ The rules that follow from it: [US-001]: ../user-stories.md [ADR-0004]: ./adr-0004-shared-wiki-publishing-opt-in.md [ADR-0005]: ./adr-0005-quality-check-contract.md +[044d8ba]: https://git.tirsystem.com/TirSystem/github-action/commit/044d8ba21f96f4aceb807d62addc35cdcbb56051 diff --git a/docs/sqa/reviews/rc-040-ucd-001-release.md b/docs/sqa/reviews/rc-040-ucd-001-release.md index 74c3574..82defed 100644 --- a/docs/sqa/reviews/rc-040-ucd-001-release.md +++ b/docs/sqa/reviews/rc-040-ucd-001-release.md @@ -9,7 +9,7 @@ ## Version History | Date | Status | Author | Reviewer | Change | Commit | | --- | --- | --- | --- | --- | --- | -| 2026-10-10 | Accepted | Jens Tirsvad Nielsen | S01 | Initial version | pending | +| 2026-10-10 | Accepted | Jens Tirsvad Nielsen | S01 | Initial version | [044d8ba] | --- @@ -45,3 +45,4 @@ Go - all eight criteria pass for the amendment (the use case of UC-006). S01 gav [UCD-001]: ../../use-case-diagram.md [QC-UCD-001]: ../../../framework/qc/qc-use-case-diagram.md +[044d8ba]: https://git.tirsystem.com/TirSystem/github-action/commit/044d8ba21f96f4aceb807d62addc35cdcbb56051 diff --git a/docs/sqa/reviews/rc-041-us-001-release.md b/docs/sqa/reviews/rc-041-us-001-release.md index d32f8e4..6db6ca6 100644 --- a/docs/sqa/reviews/rc-041-us-001-release.md +++ b/docs/sqa/reviews/rc-041-us-001-release.md @@ -9,7 +9,7 @@ ## Version History | Date | Status | Author | Reviewer | Change | Commit | | --- | --- | --- | --- | --- | --- | -| 2026-10-10 | Accepted | Jens Tirsvad Nielsen | S01 | Initial version | pending | +| 2026-10-10 | Accepted | Jens Tirsvad Nielsen | S01 | Initial version | [044d8ba] | --- @@ -44,3 +44,4 @@ Go - all seven criteria pass; the one finding (criterion 4) was fixed during the [US-001]: ../../user-stories.md [QC-US-001]: ../../../framework/qc/qc-user-story.md +[044d8ba]: https://git.tirsystem.com/TirSystem/github-action/commit/044d8ba21f96f4aceb807d62addc35cdcbb56051 diff --git a/docs/sqa/reviews/rc-042-uc-006.md b/docs/sqa/reviews/rc-042-uc-006.md index cbe3002..05c2c04 100644 --- a/docs/sqa/reviews/rc-042-uc-006.md +++ b/docs/sqa/reviews/rc-042-uc-006.md @@ -9,7 +9,7 @@ ## Version History | Date | Status | Author | Reviewer | Change | Commit | | --- | --- | --- | --- | --- | --- | -| 2026-10-10 | Accepted | Jens Tirsvad Nielsen | S01 | Initial version | pending | +| 2026-10-10 | Accepted | Jens Tirsvad Nielsen | S01 | Initial version | [044d8ba] | --- @@ -49,3 +49,4 @@ Go - all applicable criteria pass. S01 gave the Go in chat on 2026-10-10, standi [UC-006]: ../../uc-006/uc.md [QC-UC-001]: ../../../framework/qc/qc-use-case.md +[044d8ba]: https://git.tirsystem.com/TirSystem/github-action/commit/044d8ba21f96f4aceb807d62addc35cdcbb56051 diff --git a/docs/sqa/reviews/rc-043-adr-0006.md b/docs/sqa/reviews/rc-043-adr-0006.md index 8a095e6..3b79453 100644 --- a/docs/sqa/reviews/rc-043-adr-0006.md +++ b/docs/sqa/reviews/rc-043-adr-0006.md @@ -9,7 +9,7 @@ ## Version History | Date | Status | Author | Reviewer | Change | Commit | | --- | --- | --- | --- | --- | --- | -| 2026-10-10 | Accepted | Jens Tirsvad Nielsen | S01 | Initial version | pending | +| 2026-10-10 | Accepted | Jens Tirsvad Nielsen | S01 | Initial version | [044d8ba] | --- @@ -49,3 +49,4 @@ Go - all applicable criteria pass; the one finding (criterion 10) was fixed duri [ADR-0006]: ../../adr/adr-0006-release-process-and-version-pinning.md [QC-ADR-001]: ../../../framework/qc/qc-adr.md +[044d8ba]: https://git.tirsystem.com/TirSystem/github-action/commit/044d8ba21f96f4aceb807d62addc35cdcbb56051 diff --git a/docs/sqa/traceability-matrix.md b/docs/sqa/traceability-matrix.md index 39268df..b0690e2 100644 --- a/docs/sqa/traceability-matrix.md +++ b/docs/sqa/traceability-matrix.md @@ -10,7 +10,7 @@ | Date | Status | Author | Reviewer | Change | Commit | | --- | --- | --- | --- | --- | --- | | 2026-10-10 | Deprecated | Jens Tirsvad Nielsen | S01 | Added RC-039 for MIL-003 | [3b8681d] | -| 2026-10-10 | Accepted | Jens Tirsvad Nielsen | S01 | Added UC-006, ADR-0006 and RC-040 to RC-043 | pending | +| 2026-10-10 | Accepted | Jens Tirsvad Nielsen | S01 | Added UC-006, ADR-0006 and RC-040 to RC-043 | [044d8ba] | --- @@ -167,3 +167,4 @@ updated whenever an artifact instance is created or reviewed. [UC-005]: ../uc-005/uc.md [ADR-0005]: ../adr/adr-0005-quality-check-contract.md [3b8681d]: https://git.tirsystem.com/TirSystem/github-action/commit/3b8681d0236c669b794ffbba725433fff600a2d2 +[044d8ba]: https://git.tirsystem.com/TirSystem/github-action/commit/044d8ba21f96f4aceb807d62addc35cdcbb56051 diff --git a/docs/uc-006/uc.md b/docs/uc-006/uc.md index 17aca4b..10bbbe5 100644 --- a/docs/uc-006/uc.md +++ b/docs/uc-006/uc.md @@ -9,7 +9,7 @@ ## Version History | Date | Status | Author | Reviewer | Change | Commit | | --- | --- | --- | --- | --- | --- | -| 2026-10-10 | Accepted | Jens Tirsvad Nielsen | S01 | Initial version | pending | +| 2026-10-10 | Accepted | Jens Tirsvad Nielsen | S01 | Initial version | [044d8ba] | --- @@ -42,3 +42,4 @@ When a change to the workflows or their scripts is ready on the default branch, [US-001]: ../user-stories.md [SA-001]: ../stakeholder-analysis.md [ADR-0006]: ../adr/adr-0006-release-process-and-version-pinning.md +[044d8ba]: https://git.tirsystem.com/TirSystem/github-action/commit/044d8ba21f96f4aceb807d62addc35cdcbb56051 diff --git a/docs/use-case-diagram.md b/docs/use-case-diagram.md index 05a9c66..025fa7f 100644 --- a/docs/use-case-diagram.md +++ b/docs/use-case-diagram.md @@ -10,7 +10,7 @@ | Date | Status | Author | Reviewer | Change | Commit | | --- | --- | --- | --- | --- | --- | | 2026-10-10 | Deprecated | Jens Tirsvad Nielsen | S01 | Added the actor Software Engineer and the use case Run Project Quality Checks | [385d2fb] | -| 2026-10-10 | Accepted | Jens Tirsvad Nielsen | S01 | Added the use case Release a Reusable Workflow (UC-006) | pending | +| 2026-10-10 | Accepted | Jens Tirsvad Nielsen | S01 | Added the use case Release a Reusable Workflow (UC-006) | [044d8ba] | --- @@ -102,3 +102,4 @@ UC4 ..> UC1 : <> [UC-005]: ./uc-005/uc.md [385d2fb]: https://git.tirsystem.com/TirSystem/github-action/commit/385d2fb7cb9be1fdc8fd3503d0af624fa38eafc7 [UC-006]: ./uc-006/uc.md +[044d8ba]: https://git.tirsystem.com/TirSystem/github-action/commit/044d8ba21f96f4aceb807d62addc35cdcbb56051 diff --git a/docs/user-stories.md b/docs/user-stories.md index 2c6e1fc..d08170e 100644 --- a/docs/user-stories.md +++ b/docs/user-stories.md @@ -10,7 +10,7 @@ | Date | Status | Author | Reviewer | Change | Commit | | --- | --- | --- | --- | --- | --- | | 2026-10-10 | Deprecated | Jens Tirsvad Nielsen | S01 | Added US-001.09 and US-001.10 (quality checks, UC-005) | [385d2fb] | -| 2026-10-10 | Accepted | Jens Tirsvad Nielsen | S01 | Added US-001.11 to US-001.13 (releases, UC-006); US-001.13 traced to the epic (RC-041) | pending | +| 2026-10-10 | Accepted | Jens Tirsvad Nielsen | S01 | Added US-001.11 to US-001.13 (releases, UC-006); US-001.13 traced to the epic (RC-041) | [044d8ba] | --- @@ -217,3 +217,4 @@ behaviour is tested rather than built. [UC-005]: ./uc-005/uc.md [385d2fb]: https://git.tirsystem.com/TirSystem/github-action/commit/385d2fb7cb9be1fdc8fd3503d0af624fa38eafc7 [UC-006]: ./uc-006/uc.md +[044d8ba]: https://git.tirsystem.com/TirSystem/github-action/commit/044d8ba21f96f4aceb807d62addc35cdcbb56051 -- 2.54.0