v1.0.0 — Initial Release #4
jamesgober
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
mod-tempdir — v1.0.0 Design Note: Stable API Declaration
Goal
Declare the public API stable. From v1.0.0 onward, breaking changes
require a major-version bump per SemVer. The crate ships exactly the
surface that landed in
v0.9.3. No new features, no removals, nosignature changes.
v1.0.0is the trust handshake, not new code.What ships in 1.0.0
Pure stability declaration. The public API is identical to v0.9.3:
The default build still has zero runtime dependencies outside
std.The
mod-randfeature flag remains the only opt-in surface.Differences from
v0.9.3are limited to:1.0.0.1b890e9(READMEcleanup-on-startupparagraph rewrite,PersistAtomicErrorrustdoc example) ship as part of an official cut for the first
time. They have been on
mainsince the audit but never reachedcrates.io.
Stability commitment
From this release forward:
2.0.0. Renames, signaturechanges that aren't purely additive, removed methods, removed
types, and changes to documented Drop / persist semantics all
count as breaking.
functions, new types) bump the minor version (
1.1.0,1.2.0,...).
patch version (
1.0.1,1.0.2, ...).1.75within the1.xline. Any MSRV bumpships in a minor release with a notice; major MSRV changes wait
for
2.0.mod-randfeature flag is part of the stable surface. Itsbehavior (uniformly distributed Crockford base32 names via
mod_rand::tier2::unique_name) is part of the contract..tmp-{pid}-{name12}forTempDir,.tmpfile-{pid}-{name12}forNamedTempFile) are part of thecontract — they are what
cleanup_orphansparses. Changing themwould break callers that rely on either the format or the
cleanup behaviour, and requires a major bump.
Explicitly out of scope for 1.0.0
1.1.0so this release is unambiguously a stability signal.fsysintegration for atomic persistence is not revisitedhere; if it ever returns, it returns as additive minor work.
Verification (must hold at the version-bump boundary)
cargo build(default,--no-default-features,--features mod-rand,--all-features),cargo +1.75 build --all-features,cargo fmt --all -- --check,cargo clippy --all-targets --all-features -- -D warnings,cargo clippy --all-targets --no-default-features -- -D warnings,cargo test --all-features,cargo test --no-default-features,cargo doc --all-features --no-deps.--all-features(42 unit/integration + 17doctests).
#[cfg(windows)],#[cfg(target_os = "linux")], and feature gates.Release ceremony
Standard pattern carried over from the
0.9.xline:git tag -a v1.0.0 -m "Release v1.0.0 — stable API"git push origin maingit push origin v1.0.0cargo publish --dry-run --all-featurescargo publishhttps://crates.io/crates/mod-tempdir/1.0.0is live.GitHub release title:
v1.0.0 — stable API. Tagged as not-prereleasefor the first time.
Full Changelog: v0.9.3...v1.0.0
This discussion was created from the release v1.0.0 — Initial Release.
All reactions