Files
github-action/docs/milestones/mil-008-wiki-reusable-workflow.md
T
Tirsvad 01b9c2972b MIL-008: plan the wiki as a reusable workflow, ADR-0009, RC-060, RC-061
MIL-008 plans publishing the wiki through a reusable workflow that reads
docs/wiki/. ADR-0009 records the decision. RC-060 accepts the plan; RC-061
accepts the amendment that deprecates the scoped workflow instead of
removing it, because eight repositories still publish through it.
2026-10-13 22:20:09 +08:00

5.6 KiB

MIL-008: Wiki publishing as a reusable workflow

Metadata

Key Value
ID MIL-008
CrossReference BC-001, MIL-006, ADR-0004, RC-060, RC-061

Version History

Date Status Author Reviewer Change Commit
2026-10-13 Deprecated Jens Tirsvad Nielsen S01 Initial version; reviewed (RC-060) pending
2026-10-13 Accepted Jens Tirsvad Nielsen S01 Task 5 changed to deprecate the scoped workflow (8 repositories still use it); reviewed (RC-061) pending

Purpose

Decide whether the wiki can be published by a reusable workflow that each repository calls, from docs/wiki/ (the location process/wiki.md of the framework prescribes), instead of a scoped workflow that runs in every repository of the organisation and reads wiki/.

Deliverable

A reusable workflow publish-wiki-pages.yml in .gitea/workflows/ with a wiki_dir input, a caller template for projects, offline tests, a superseding ADR, updated guides and wiki pages, this repository publishing its own wiki from docs/wiki/ through it, the scoped workflow marked deprecated (not removed), and a release that projects can pin.

Go / No-Go Criteria

# Criterion (objectively checkable) Go No-Go
1 The reusable workflow publishes the folder named by wiki_dir (default docs/wiki), and a repository that has no caller workflow is never written to Offline tests pass; no caller means no run Any write without a caller
2 An empty or missing folder never deletes pages, the failure names its category, and the secret is passed explicitly (criteria 1 and 4 of MIL-006 still hold) Existing tests pass unchanged A regression
3 This repository publishes its own wiki from docs/wiki/ through a caller that uses the reusable workflow, and the pages on the host equal the folder 0 differences read back through the API Pages differ or the run fails
4 A caller template exists for projects, with the trigger docs/wiki/** and the secret named File exists and is linted (QC-WF-001) Missing
5 The scoped publish-wiki.yml is marked deprecated in its header, the README and ADR-0009, and the repositories that still use it are listed; it is not removed here Notice present and the list recorded (8 repositories on 2026-10-13) No notice, or the workflow was removed while a repository still depends on it
6 The change is released as patch 1.2.2 and the moving major tag points at it v1 includes the change Not released

Dependencies

Depends on Reason
MIL-006 The publisher script, the prune rule and the safety limits come from it
TirSystem/sqa-qc-framework process/wiki.md Defines docs/wiki/ and the English plus PO language minimum; unmerged when this was written

Traceability

Business Case objective / KPI / user story Reference
O2, O3 BC-001

Ownership

Role Stakeholder ID (SA)
Owner S05
Approving reviewer S01

Target Date

2026-11-15 — the Business Case sets no deadline.

Tasks

# Task Summary Needs its own Use Case/User Story? Reference
1 Record the decision An ADR that supersedes the scoped-delivery part of ADR-0004: publishing is a reusable workflow called by each repository; the caller file is the opt-in, so wiki/.publish is no longer a gate; the prune setting becomes an input. Keep the rest of ADR-0004 (secret handling) as it stands. No
2 Add the reusable workflow .gitea/workflows/publish-wiki-pages.yml with on: workflow_call, inputs wiki_dir (default docs/wiki) and prune, and the token as a declared secret. It runs tools/publish_wiki.py with WIKI_DIR and the prune setting from the inputs. Update the script and its tests: the marker is no longer required. No
3 Add the caller template A publish-wiki.yml caller for projects (uses: TirSystem/github-action/.gitea/workflows/publish-wiki-pages.yml@v1, paths: docs/wiki/**, secrets: mapped). Proposed in sqa-qc-framework under templates/ci/ once this is released. No
4 Move this repository's wiki and call the workflow git mv wiki docs/wiki, check the links and the translation hash comments, add the caller, publish, read the pages back. No
5 Deprecate the scoped workflow Do not remove it: on 2026-10-13, 8 repositories still publish through it with wiki/.publish (sqa-and-qc, sqa-qc-framework, sqa-qc-checklists, github-action, repo-foundry and three of Tirsvad-Udemy-100-days-of-code), and none calls the reusable workflow yet. Add a deprecation notice to its header, the README table and ADR-0009, and record the list. The migrations and the removal are a follow-up milestone after this release (ADR-0006: a removed workflow is a new major). No
6 Update guides and wiki pages Describe the caller, docs/wiki/ and the removed marker in the onboarding and credentials guides and in the English, Danish and Bahasa Malaysia pages (rule 8 of AGENTS.md). No
7 Release Release as a patch, 1.2.1 to 1.2.2, as the owner instructed: changelog entry and a release through the release workflow; the v1 tag moves with it. ADR-0006 classes a new workflow as minor, so the changelog entry states the deviation and the reason. Nothing is removed, so no consumer breaks. No