docs(versioning): define release policy and close MVP0 pipeline tasks
Some checks failed
CMS CI/CD (Theoretical) / Lint Typecheck Tests (push) Failing after 5m34s
CMS CI / Governance Checks (push) Failing after 4m47s
CMS CI/CD (Theoretical) / Build Staging Images (push) Has been skipped
CMS CI / Lint Typecheck Unit E2E (push) Has been skipped
CMS CI/CD (Theoretical) / Build Production Images (push) Has been skipped
CMS CI/CD (Theoretical) / Deploy Staging (Placeholder) (push) Has been skipped
CMS CI/CD (Theoretical) / Deploy Production (Placeholder) (push) Has been skipped
Some checks failed
CMS CI/CD (Theoretical) / Lint Typecheck Tests (push) Failing after 5m34s
CMS CI / Governance Checks (push) Failing after 4m47s
CMS CI/CD (Theoretical) / Build Staging Images (push) Has been skipped
CMS CI / Lint Typecheck Unit E2E (push) Has been skipped
CMS CI/CD (Theoretical) / Build Production Images (push) Has been skipped
CMS CI/CD (Theoretical) / Deploy Staging (Placeholder) (push) Has been skipped
CMS CI/CD (Theoretical) / Deploy Production (Placeholder) (push) Has been skipped
This commit is contained in:
71
VERSIONING.md
Normal file
71
VERSIONING.md
Normal file
@@ -0,0 +1,71 @@
|
||||
# Versioning Policy
|
||||
|
||||
## Source Of Truth
|
||||
|
||||
- Canonical version: root `package.json` field `version`
|
||||
- Tag format: `vX.Y.Z`
|
||||
|
||||
Tag validation is enforced in CI:
|
||||
|
||||
- `.gitea/scripts/validate-tag-version.sh`
|
||||
|
||||
## SemVer Strategy
|
||||
|
||||
- `major`: breaking API/behavior changes
|
||||
- `minor`: backward-compatible features
|
||||
- `patch`: backward-compatible fixes
|
||||
|
||||
## Build Metadata Policy
|
||||
|
||||
Use git metadata in runtime display format:
|
||||
|
||||
- `<version>+sha.<short>`
|
||||
|
||||
Example:
|
||||
|
||||
- `0.1.0+sha.a1b2c3d`
|
||||
|
||||
## Footer Display Plan (Admin + Web)
|
||||
|
||||
Planned runtime footer fields:
|
||||
|
||||
- app name
|
||||
- version from root `package.json`
|
||||
- commit hash (short)
|
||||
- environment (`dev|staging|production`)
|
||||
|
||||
Implementation note:
|
||||
|
||||
- inject values at build/deploy time through env vars
|
||||
- render in shared footer components
|
||||
|
||||
## CI Version Injection
|
||||
|
||||
Release/deploy workflows pass release tag and commit metadata:
|
||||
|
||||
- `.gitea/workflows/release.yml`
|
||||
- `.gitea/workflows/deploy.yml`
|
||||
|
||||
Required inputs:
|
||||
|
||||
- release tag (`vX.Y.Z`)
|
||||
- image tag for deployment
|
||||
|
||||
## Validation Strategy
|
||||
|
||||
CI validations:
|
||||
|
||||
- tag equals `v${package.json.version}`
|
||||
- required checks pass before release builds
|
||||
|
||||
Runtime validations (planned):
|
||||
|
||||
- smoke tests assert footer version/hash format
|
||||
- environment-specific deployment checks assert expected image tag
|
||||
|
||||
## Changelog and Release Publication
|
||||
|
||||
- changelog generation command:
|
||||
- `bun run changelog:release`
|
||||
- release workflow generates changelog on tag pipeline
|
||||
- release notes publication remains a dedicated step in CI workflow.
|
||||
Reference in New Issue
Block a user