Files
rrcd/VERSIONING.md
2025-12-29 16:08:24 -05:00

36 lines
1.3 KiB
Markdown

# Versioning policy
`rrcd` uses Semantic Versioning (SemVer 2.0.0): `MAJOR.MINOR.PATCH`.
## Compatibility promises
- **Patch** releases are for bug fixes and internal refactors that do not change public behavior.
- **Minor** releases may add functionality in a backwards-compatible way.
- **Major** releases may include breaking changes.
### Pre-1.0 (current)
Before `1.0.0`, the project is still stabilizing. We still try to avoid breaking changes, but:
- Breaking changes may occur in **minor** releases.
- When possible, we will call out breaking changes prominently in the changelog.
## What counts as a breaking change
A change is considered breaking if it requires updating an existing deployment or client setup, including:
- Changes to the RRC hub on-wire behavior that existing clients depend on
- Changes to configuration keys or defaults that change behavior in surprising ways
- Changes to persisted file formats (`rrcd.toml`, `rooms.toml`) that are not backwards-compatible
## Deprecation policy
When we can do so safely, we prefer deprecation over immediate removal:
- Deprecations are documented in the changelog.
- A deprecation may include a warning period before removal (typically at least one minor release).
## Release notes
Every release updates CHANGELOG.md.