-
Notifications
You must be signed in to change notification settings - Fork 2
Technical Release Process
-
pytestpasses,ruff check .is clean. -
python manage.py generate_docshas been run and its output committed. -
python manage.py migratehas been run against a scratch PostgreSQL database. The test suite disables migrations, so it cannot catch a broken one; see testing.md. -
CHANGELOG.mdentries under## [Unreleased]are consolidated : one line per entry, one block per category, and noChangedorFixeddescribing somethingAddedin the same release.
The changelog promotion is the one commit that goes directly on main, with
exactly this message:
git commit -m 'Bump version `v0.36.0`'
git tag v0.36.0
git push origin main --tagsPromoting means moving the ## [Unreleased] entries under a new
## [0.36.0] - YYYY-MM-DD heading and adding the comparison link at the bottom
of the file.
| Workflow | Result |
|---|---|
docker-publish.yml |
Builds and pushes frousselet/cairn to Docker Hub with semver tags (0.36.0, 0.36, 0) and latest. APP_VERSION is baked into /etc/app-version, which is what the interface footer shows |
docs.yml |
Builds the wiki from docs/ and pushes it to the wiki repository |
Both need repository secrets : DOCKERHUB_USERNAME / DOCKERHUB_TOKEN for the
image, and a token with wiki write access for the documentation.
Always create it, immediately after pushing the tag. The notes are that
version's CHANGELOG.md section, ending with the full comparison link.
gh release create v0.36.0 --title "v0.36.0" --notes "$(cat <<'NOTES'
### Added
...
**Full changelog**: https://github.com/frousselet/cairn/compare/v0.35.0...v0.36.0
NOTES
)"Check that the wiki actually updated : the workflow reports what it pushed, and the Home page footer carries the version it was built from. A wiki still showing the previous version means the publication step failed, and it fails silently from a reader's point of view.
Built from docs/ at v0.36.0. Edits made here are overwritten by the next release : open a pull request against the source instead.
- Administration
- Ask Cairn
- Assets and suppliers
- Compliance
- The dashboard
- Finding your way
- Getting started
- Incidents
- How records move
- Organisational context
- Reports and management review
- Risks
- Trust Center
- Architecture
- Configuration
- Contributing
- The documentation system
- Installation
- Internationalisation
- Operations
- Release process
- Security
- Testing
- Adding an assistant provider
- Adding a dashboard widget
- Adding a domain entity
- Declaring a lifecycle
- Adding an MCP tool
- Adding a REST endpoint
- Adding a report
- Interface conventions
- Dashboard widgets
- Lifecycles
- MCP tools
- MCP tool parameters : Assets
- MCP tool parameters : Compliance
- MCP tool parameters : Governance and context
- MCP tool parameters : General
- MCP tool parameters : Incidents
- MCP tool parameters : Reports and management review
- MCP tool parameters : Risks
- MCP tool parameters : System and administration
- MCP tool parameters : Trust Center
- Management commands
- Models
- Permissions
- REST endpoints
- Environment variables
- MCP server
- REST API
- Assistant module (Ask Cairn)
- Module 0: User Management and Access Control
- Module 1: Context and Organization
- Module 2: Asset Management
- Module 3: Compliance
- Module 4: Risk Management
- Module 4 bis - EBIOS Risk Manager
- Module 5 : Trust Center
- Module 6 : Security Incident Management
- Management review : ISO 27001:2022 compliance (clause 9.3)