Add workflow adoption rules and move the framework to v0.16.1 #217

Merged
Tirsvad merged 2 commits from TirSystem/workflow-rules-sqa-qc-d0d86e into main 2026-10-26 15:27:34 +01:00
5 changed files with 47 additions and 1 deletions
+17
View File
@@ -119,6 +119,23 @@ A change that spans repositories:
inside the accepted plan only if the plan names it; otherwise the run stops
and reports.
## Workflow adoption rules
When a workflow is added to this repository (`.gitea/workflows/`,
`.gitea/scoped_workflows/`) or a composite action to `actions/`, the same pull
request adds its rule for when a repository uses it in SQA and QC:
1. A row in `guides/adoption-rules.md` with the columns *Use when*, *Do not use
when* and *What it gives SQA and QC*. The condition is checkable from the
repository itself (a file type, a test report, a wiki folder), never
"when useful".
2. The workflow's guide and its README section link to that row, and the
README workflow table and count stay in step.
3. A workflow that applies to every repository (scoped) or only to this one
says so in the row instead of leaving it empty.
4. The rule is changed in the same pull request as the workflow when the
workflow's behaviour changes; the CHANGELOG entry names it.
## Workflow order
Business Case, Stakeholder Analysis, Project Plan, milestones, tasks synced as
+4
View File
@@ -20,6 +20,10 @@ Each release lists its changes in these groups, in this order:
## [Unreleased]
### Added
- The [adoption rules](guides/adoption-rules.md): for each workflow, when a repository uses it in SQA and QC. A new workflow adds its rule in the same pull request (`AGENTS.md`).
## [2.2.0] - 2026-10-21
### Added
+2
View File
@@ -21,6 +21,8 @@ It contains eleven workflows: metadata sync to the GitHub mirror, wiki publishin
## 🔧 Workflows
When a repository should use each workflow in its SQA and QC is set out in the [adoption rules](guides/adoption-rules.md).
Eleven workflows live in this repository. A **scoped** workflow is delivered by the instance to every repository of the TirSystem organizations and needs nothing in the repository; a **reusable** workflow is called by a repository with `uses:`; the others run only here. The diagrams are PlantUML source.
| Workflow | File | Kind | Starts on | Purpose |
+23
View File
@@ -0,0 +1,23 @@
# When a repository uses a workflow
Each workflow of this repository has one rule here that says when a repository
of the organisation, in its SQA and QC, should use it. The rule is the opt-in
test: a repository that meets the "Use when" condition calls the workflow, and a
review of that repository (SQA) checks that it does. A repository that does not
meet the condition does not call it.
A new workflow is not finished until its row is in the table below
(`AGENTS.md`, rule "Workflow adoption rules").
| Workflow | Use when | Do not use when | What it gives SQA and QC |
| --- | --- | --- | --- |
| Sync GitHub mirror metadata | Scoped: nothing to do. Every repository of the organisation gets it, so a repository has a GitHub push mirror only if it needs one. | The repository has no GitHub mirror. | The mirror shows the same description and topics as the source of truth. |
| Quality checks | The repository tracks Python (`*.py`) or shell (`*.sh`) files. | It has neither. | Evidence for the code checklists that formatting, typing and shell lint are clean before a merge. Mark the check required in the branch protection. |
| Quality checks C++ | The repository tracks C or C++ files. | It has none. | The same evidence for C and C++, at exact tool versions. |
| Quality checks C# | The repository tracks C# files and can restore packages from the network. | It has none, or cannot reach the package source. | The same evidence for C#, on an exact .NET SDK. |
| Code metrics | The repository has a test suite that writes a Cobertura report and its README or wiki shows size and coverage. | It has no tests, or no report is produced. | Coverage and size as badges, so a reviewer sees them without running anything. |
| English comments | The repository's code comments must be English (the project's language rule) and it takes pull requests. | The project's language rule allows other languages in comments. | Enforces the language rule on every pull request, with the author named. Mark it required to block the merge. |
| Publish wiki pages | The repository has a wiki and its pages are written as Markdown under `docs/wiki/` (or `wiki_dir`). | It has no wiki, or the wiki is edited by hand. | The wiki equals the reviewed files; a page change goes through a pull request and its review. |
| Release | Opt-in is not by call: it is for repositories that publish versioned releases pinned by others, and it is run only in this repository. | Not applicable to other repositories. | A tagged, checked release other repositories can pin. |
| Publish accepted milestones | Internal to this repository (it reads this repository's milestones and reviews). A project that keeps `docs/milestones/` and `docs/sqa/reviews/` uses the framework's `templates/ci/` copy. | The repository has no `MIL-*` documents. | Only a milestone that is Accepted with a Go review becomes an issue (the plan-first gate). |
| Validate workflows | Internal: it gates this repository's own pull requests. | Not applicable to other repositories. | Proof that every workflow parses and passes the offline tests. |