Surge Versioning Policy
March 30, 2026 ยท View on GitHub
First-Party Workspace Version
The first-party Surge crates use the shared version declared in the root
Cargo.toml under [workspace.package].
SemVer Intent
Surge follows Semantic Versioning in intent, with the usual pre-1.0 caveat that breaking changes can still land in minor releases.
Current Rules
- Bump the shared workspace version in the root
Cargo.tomlwhen first-party public APIs or packaged behavior change. - Update
CHANGELOG.mdwhen shipping a release-worthy change. - Keep docs aligned with the source-defined interface names whenever public APIs change.
MSRV
The minimum supported Rust version is declared in the root manifest as
rust-version. Treat an MSRV bump as a versioned compatibility change and call
it out in the changelog.
Native Format Schemas
The native surge-json and surge-bin document formats start at schema
version 0.1.0 for the first public release.
- The schema version is tracked separately from crate/package versions.
- It may diverge when the native document contracts need a migration and the rest of Surge does not.
- Breaking native schema changes should bump the relevant schema version and include a migration note in the changelog or release notes.