Stability & versioning
Pre-1.0. The public API may break between minor versions. Here's our policy and how to insulate yourself.
Current state
- Version: see
build.zig.zonin the repo. - Stability: pre-1.0. Internal-stable, externally moving.
- Breaking changes: tracked in
CHANGELOG.mdper release.
Versioning policy
Pre-1.0
- MAJOR.MINOR.PATCH semantics with looser MINOR guarantees.
- Minor bumps may introduce breaking API changes.
- Patch bumps are non-breaking.
Post-1.0 (target Q4 2026 — one full quarter of revisions without a breaking change)
- Strict semver. Minor bumps add only; major bumps may break.
- LTS minor versions get 6 months of patch-only support.
How to pin
Pin to a commit hash in build.zig.zon:
.tomoul = .{
.url = "https://github.com/tomoul/tomoul/archive/<commit>.tar.gz",
.hash = "...",
},
Upgrade deliberately. Read the changelog before bumping.
Deprecation cadence
When we plan to remove something pre-1.0:
- Marked deprecated in the release that introduces the replacement.
- Removed no sooner than the next minor release.
- Removal is called out at the top of
CHANGELOG.md.
Road to 1.0
Gates we want to clear:
- One full quarter (~3 months) of releases with no breaking changes.
- The six architecture families stabilised against external consumers' real workloads.
- C ABI stable.
- A documented module-surface contract: which symbols are public, which
are
internal.
Last updated 13 May 2026Edit this page on GitHub