Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 17 additions & 6 deletions API.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,16 @@
# API compatibility

CheetahString 3.1 keeps the existing 3.x source surface while tightening the
private implementation. Public methods, traits, variants, aliases, and return
types are not removed or renamed in this release line.
CheetahString 3.1 keeps the stable 3.x source surface while tightening the
private implementation. Public stable methods, traits, variants, aliases, and
return types are not removed or renamed in this release line.

There is one documented safety exception: the published
`experimental-packed` module was removed after strict-provenance Miri exposed
undefined behavior in its safe API. The Cargo feature name remains as a no-op
for dependency resolution, but code importing `cheetah_string::packed` must
Comment on lines +7 to +10
migrate to `CheetahString` or `CheetahBuilder`. A registry comparison against
3.0.0 therefore reports the expected removal of the experimental module, its
constant, and `PackedCheetahString`.

## Pattern contract

Expand Down Expand Up @@ -46,9 +54,12 @@ expressions.
## Automated compatibility gate

`.github/workflows/api-compatibility.yml` runs `cargo-semver-checks` with
minor-release rules against `origin/main` and all features. The repository also
compiles a downstream-style test that calls the hidden compatibility method and
checks the exact constructor and substring result types.
minor-release rules against `origin/main` and all features. This protects each
new pull request after the packed retirement baseline; it does not conceal the
approved experimental safety removal relative to the published 3.0.0 crate.
The repository also compiles a downstream-style test that calls the hidden
compatibility method and checks the exact constructor and substring result
types.

Local reproduction:

Expand Down
1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ description = """
An immutable, clone-cheap UTF-8 string with explicit construction and byte interoperability
"""
exclude = [
"docs/**",
"bench-results/packed-evidence/**",
"bench-results/usage-inventory/**",
"bench-results/base/**",
Expand Down
Loading
Loading