Skip to content

Compatibility Policy & Rust version

Techcable edited this page Jan 13, 2022 · 3 revisions

Compatibility Policy

slog follows SemVer: this is the official policy regarding breaking changes and minimum supported rust versions (MSRV).

Slog crates should pin the minimum required version of Rust to the CI builds. Bumping the minimum version of Rust is considered a minor breaking change, meaning at a minimum the minor version will be bumped.

In order to keep from being surprised by breaking changes, it is highly recommended to use the ~major.minor.patch style in your Cargo.toml if you wish to target a version of Rust that is older than the current stable minus 15 releases:

[dependencies]
slog = "~2.1.0"

This will cause only the patch version to be updated upon a cargo update call, and therefore cannot break due to new features, or bumped minimum versions of Rust.

Minimum Supported Rust Version

slog and its ecosystem is guaranteed to support current stable Rust, minus 15 releases, but may work with prior releases as well. For example, the current stable Rust at the time of this writing is 1.57, meaning slog is guaranteed to compile with 1.42. However, (as of the time of this writing) we actually support Rust 1.23, which is much older than the minimum requirement.

Upon bumping the minimum version of Rust (assuming it's within the stable-15 range), it must be clearly annotated in the CHANGELOG.md

See PR #296 for more details on this policy (we actually made it stricter)