add release artifacts: license, CI, tests, and policy docs
All checks were successful
ci / shell-and-release-guards (push) Successful in 18s
ci / nix-flake-check (push) Successful in 1m42s

- MIT LICENSE
- CHANGELOG.md (CalVer, first entry 2026.04.15)
- CODE_OF_CONDUCT, CONTRIBUTING, SECURITY, SUPPORT policies
- docs/release.md covering preflight, tagging, rollback
- GitHub Actions CI running shell syntax, shellcheck,
  desktop-file-validate, script tests, and nix flake check
- tests/ harness with activate-path and preflight checks;
  preflight test stubs `id` via PATH so it cannot launch real
  Steam on a developer machine where /opt/steam already exists
This commit is contained in:
2026-04-15 09:53:15 +02:00
parent 1ece944a45
commit 264db61127
11 changed files with 273 additions and 0 deletions

47
docs/release.md Normal file
View File

@@ -0,0 +1,47 @@
# Release Guide
This guide defines the repeatable release procedure for GitHub product releases.
## Preflight
Run all checks locally from the repository root:
```bash
shellcheck scripts/*.sh tests/*.sh
bash -n scripts/*.sh tests/*.sh
desktop-file-validate desktop/steam.desktop
tests/run.sh
XDG_CACHE_HOME=/tmp nix flake check --no-build --no-write-lock-file
```
## Versioning
Use CalVer tags: `YYYY.MM.DD`.
If multiple releases happen on the same day, append `.1`, `.2`, and so on.
## Release Steps
1. Update `CHANGELOG.md` with the exact release version and notes.
2. Push all release files to `main`.
3. Create an annotated tag.
4. Push the tag.
5. Create a GitHub Release from that tag and copy release notes from `CHANGELOG.md`.
Example:
```bash
git tag -a 2026.04.15 -m "release 2026.04.15"
git push origin 2026.04.15
```
## Rollback
1. Revert the problematic commit range on `main`.
2. Cut a new patch release tag for the rollback build (for example `2026.04.15.1`).
3. If a system needs cleanup after failed deployment, run:
```bash
nix run .#uninstall
```
Then re-activate with the corrected release once available.