This document describes what constitutes a breaking change for the beamterm crate family, effective from version 1.0.0.
beamterm-core, beamterm-data, beamterm-rasterizer, beamterm-renderer, and beamterm-unicode follow Rust API semver conventions.
A new major version is required for any change that breaks downstream compilation or changes observable runtime behavior in ways that existing correct code would not expect.
- Removing or renaming a public type, function, method, or enum variant
- Changing function signatures (parameters, return types, trait bounds)
- Removing a trait implementation
- Changing the default value of a builder method
- Bumping the MSRV (
rust-version)
The following third-party types are part of beamterm's public API surface and are re-exported from the respective crates:
| Crate | Re-exported from |
|---|---|
glow |
beamterm-core |
compact_str |
beamterm-core |
web_sys |
beamterm-renderer |
js_sys |
beamterm-renderer |
wasm_bindgen |
beamterm-renderer |
A dependency version bump (e.g. glow 0.17 → 0.18) is only a beamterm breaking change if the type signatures exposed through beamterm's API actually change. A version bump that preserves the same type signatures is a compatible (minor/patch) update.
Items marked #[doc(hidden)] are internal implementation details
shared between beamterm crates. They are not covered by semver
guarantees and may change in any release.
beamterm-atlas is a developer tool, not a library consumed as a Rust
dependency. Its stability contract is narrower:
| Under semver | Not under semver |
|---|---|
| CLI option names and their types | Output formatting / log output |
| Subcommand names | Default values for options |
| Exit code semantics (0 = success) | Performance characteristics |
The .atlas file format (defined in beamterm-data) is versioned and
covered by semver. Specifically:
- A new atlas format version that cannot parse older
.atlasfiles is a breaking change and requires a major version bump. - New format versions must include backward-compatible deserialization so
that
.atlasfiles generated by any prior 1.x release remain loadable.