Version: 1.0 Tier: Platinum RSR Compliance
This document defines the formal release process for UbiCity, ensuring quality, security, and traceability for all published versions.
Breaking Changes: Data format, core API, migration required
Example: v1.0.0, v2.0.0 Cadence: Yearly or as needed Approval: Consensus of all maintainers
New Features: Backwards compatible, no migration needed
Example: v0.4.0, v0.5.0 Cadence: Quarterly or as features complete Approval: 2+ maintainer approval
-
❏ Create release branch:
release/vX.Y.Z -
❏ Update
CHANGELOG.mdwith all changes -
❏ Update version in
.json -
❏ Update version in
wasm/Cargo.toml -
❏ Update version in
src-/package.json -
❏ Run full test suite:
task test -
❏ Run benchmarks:
task bench -
❏ Verify performance SLOs met
-
❏ Run security audit:
./security/audit.sh -
❏ Check test coverage ≥ 95%:
coverage -
❏ Verify offline-first (no network calls)
-
❏ Test all export formats (CSV, GeoJSON, DOT, Markdown)
-
❏ Verify data migration (if major/minor)
-
❏ Update documentation (README, QUICK_START, API)
-
❏ Review open issues/PRs for inclusion
-
❏ Create draft GitHub release notes
-
❏ Tag RC:
git tag vX.Y.Z-rc.1 -
❏ Build binaries:
task compile -
❏ Test binaries on all platforms (Linux, macOS, Windows)
-
❏ Smoke test: fresh install, capture experience, export
-
❏ Beta testing (internal or community)
-
❏ Fix critical bugs → RC.2, RC.3, etc.
-
❏ Document known issues (if any)
-
❏ Merge release branch to
main -
❏ Tag release:
git tag vX.Y.Z -
❏ Sign tag (GPG):
git tag -s vX.Y.Z -m "Release vX.Y.Z" -
❏ Push tag:
git push origin vX.Y.Z -
❏ Build release artifacts
-
❏ Generate checksums (SHA-256)
-
❏ Sign binaries (GPG)
-
❏ Create GitHub release (with artifacts)
-
❏ Update latest docs on website
-
❏ Announce release (community channels)
# Compile for all platforms
task compile:cli # ubicity CLI
task compile:capture # capture tool
task compile:wasm # WASM modulePlatforms: - Linux (x86_64, ARM64) - macOS (x86_64, ARM64 M1/M2) - Windows (x86_64)
Following Semantic Versioning 2.0.0:
Format: MAJOR.MINOR.PATCH[-PRERELEASE][+BUILDMETA]
Examples: - 0.3.0 - Minor release - 0.3.1 - Patch release -
1.0.0-rc.1 - Release candidate - 1.0.0 - Major release
Pre-release Tags: - alpha - Early testing, unstable - beta -
Feature complete, testing - rc - Release candidate, final testing
Following Keep a Changelog:
## [X.Y.Z] - YYYY-MM-DD
### Added
- New features
### Changed
- Changes to existing features
### Deprecated
- Soon-to-be removed features
### Removed
- Removed features
### Fixed
- Bug fixes
### Security
- Vulnerability fixesClassification: - BREAKING - Requires user action - Deprecation - 1 major version warning before removal
Timeline: 24-48 hours Process: 1. Private patch development 2. Coordinate with security researchers 3. Release patch ASAP 4. Public disclosure after patch
Timeline: 7 days Process: 1. Develop patch 2. Test thoroughly 3. Coordinate disclosure (90 days max) 4. Release patch
-
main- Stable, production-ready -
develop- Integration branch (optional, for large teams)
-
feature/description- New features -
fix/description- Bug fixes -
chore/description- Maintenance
-
✅ All tests pass (100%)
-
✅ Test coverage ≥ 95%
-
✅ Benchmarks meet SLOs
-
✅ Security audit passes
-
✅ No errors (
check) -
✅ No lint warnings (
lint) -
✅ Format check passes (
fmt --check)
-
GitHub Releases - Official announcements
-
CHANGELOG.md - Detailed changes
-
Twitter/Mastodon - Community announcements
-
Email - Security disclosures
# UbiCity vX.Y.Z Released!
## Highlights
- Key feature 1
- Key feature 2
- Important fix 3
## Download
- [Linux]()
- [macOS]()
- [Windows]()
## Checksums
SHA-256: [link to SHA256SUMS.asc]
## Upgrade Guide
See [MIGRATION.md]() for detailed instructions.
## Contributors
Thanks to @user1, @user2, @user3!If critical bug discovered post-release:
-
Assessment (< 1 hour)
-
Severity: Does it cause data loss/corruption?
-
Impact: How many users affected?
-
-
Decision (maintainers consensus)
-
Option A: Hotfix patch (preferred)
-
Option B: Rollback release (nuclear option)
-
-
Hotfix Process (< 24 hours)
-
Create
hotfix/vX.Y.Z+1branch -
Fix bug
-
Fast-track testing
-
Release immediately
-
-
Rollback Process (last resort)
-
Yank release from package managers
-
Update docs: “vX.Y.Z deprecated, use vX.Y.Z-1”
-
Post-mortem analysis
-
release:
stage: deploy
only:
- tags
script:
- task test
- task bench
- ./security/audit.sh
- task compile
- ./scripts/checksum.sh
- ./scripts/sign.sh
- gh release create $CI_COMMIT_TAG bin/*Responsibilities: - Coordinate release timeline - Merge PRs - Tag releases - Publish artifacts - Announce release
Term: 1 release cycle Selection: Volunteer from maintainers
Document Owner: Maintainers Last Review: 2025-11-22 Next Review: 2026-02-22 (quarterly)