-
Notifications
You must be signed in to change notification settings - Fork 720
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix minimal-versions correctness (v0.1.x) #2246
Conversation
Three notes:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
looks good to me, thanks for working on this!
let's consider addressing the feature renaming and stuff in a follow-up branch.
@@ -8,4 +8,4 @@ edition = "2018" | |||
|
|||
[dependencies] | |||
tracing = { path = "..", features = ["log", "log-always"] } | |||
log = { version = "0.4", features = ["std"] } | |||
log = { version = "0.4.0", features = ["std"] } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
what is the explicit .0
doing here? i can't immediately think of a reason it would be needed...is this just a style change?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just a style change, yes, as this doesn't impact cargo's behavior
But it does change cargo-upgrade's behavior: cargo-upgrade by default won't increase the precision of dependency specification (and I couldn't find a flag to tell it to do so).
So in order to actually make sure the dependency specifications match what I had in the lockfile, I did a s/"(\d+\.\d+)"/$1.0/g
to get cargo-upgrade to make the specifications match the lockfile.
I did try not doing this initially and it wasn't sufficient. Any remaining .0
then is now an explicit note that we're observed to work with .0
.
# 0.1.29 (July 29, 2022) This release of `tracing-core` adds `PartialEq` and `Eq` implementations for metadata types, and improves error messages when setting the global default subscriber fails. ### Added - `PartialEq` and `Eq` implementations for `Metadata` ([#2229]) - `PartialEq` and `Eq` implementations for `FieldSet` ([#2229]) ### Fixed - Fixed unhelpful `fmt::Debug` output for `dispatcher::SetGlobalDefaultError` ([#2250]) - Fixed compilation with `-Z minimal-versions` ([#2246]) Thanks to @jswrenn and @CAD97 for contributing to this release! [#2229]: #2229 [#2246]: #2246 [#2250]: #2250
# 0.1.29 (July 29, 2022) This release of `tracing-core` adds `PartialEq` and `Eq` implementations for metadata types, and improves error messages when setting the global default subscriber fails. ### Added - `PartialEq` and `Eq` implementations for `Metadata` ([#2229]) - `PartialEq` and `Eq` implementations for `FieldSet` ([#2229]) ### Fixed - Fixed unhelpful `fmt::Debug` output for `dispatcher::SetGlobalDefaultError` ([#2250]) - Fixed compilation with `-Z minimal-versions` ([#2246]) Thanks to @jswrenn and @CAD97 for contributing to this release! [#2229]: #2229 [#2246]: #2246 [#2250]: #2250
# 0.1.36 (July 29, 2022) This release adds support for owned values and fat pointers as arguments to the `Span::record` method, as well as updating the minimum `tracing-core` version and several documentation improvements. ### Fixed - Incorrect docs in `dispatcher::set_default` ([#2220]) - Compilation with `-Z minimal-versions` ([#2246]) ### Added - Support for owned values and fat pointers in `Span::record` ([#2212]) - Documentation improvements ([#2208], [#2163]) ### Changed - `tracing-core`: updated to [0.1.29][core-0.1.29] Thanks to @fredr, @cgbur, @jyn514, @matklad, and @CAD97 for contributing to this release! [core-0.1.29]: https://github.com/tokio-rs/tracing/releases/tag/tracing-core-0.1.29 [#2220]: #2220 [#2246]: #2246 [#2212]: #2212 [#2208]: #2208 [#2163]: #2163
# 0.1.36 (July 29, 2022) This release adds support for owned values and fat pointers as arguments to the `Span::record` method, as well as updating the minimum `tracing-core` version and several documentation improvements. ### Fixed - Incorrect docs in `dispatcher::set_default` ([#2220]) - Compilation with `-Z minimal-versions` ([#2246]) ### Added - Support for owned values and fat pointers in `Span::record` ([#2212]) - Documentation improvements ([#2208], [#2163]) ### Changed - `tracing-core`: updated to [0.1.29][core-0.1.29] Thanks to @fredr, @cgbur, @jyn514, @matklad, and @CAD97 for contributing to this release! [core-0.1.29]: https://github.com/tokio-rs/tracing/releases/tag/tracing-core-0.1.29 [#2220]: #2220 [#2246]: #2246 [#2212]: #2212 [#2208]: #2208 [#2163]: #2163
# 0.1.23 (October 6, 2022) This release of `tracing-attributes` fixes a bug where compiler diagnostic spans for type errorsin `#[instrument]`ed `async fn`s have the location of the `#[instrument]` attribute rather than the location of the actual error, and a bug where inner attributes in `#[instrument]`ed functions would cause a compiler error. ### Fixed - Fix incorrect handling of inner attributes in `#[instrument]`ed functions ([#2307]) - Add fake return to improve spans generated for type errors in `async fn`s ([#2270]) - Updated `syn` dependency to fix compilation with `-Z minimal-versions` ([#2246]) Thanks to new contributors @compiler-errors and @e-nomem, as well as @CAD97, for contributing to this release! [#2307]: #2307 [#2270]: #2270 [#2246]: #2246
# 0.1.23 (October 6, 2022) This release of `tracing-attributes` fixes a bug where compiler diagnostic spans for type errors in `#[instrument]`ed `async fn`s have the location of the `#[instrument]` attribute rather than the location of the actual error, and a bug where inner attributes in `#[instrument]`ed functions would cause a compiler error. ### Fixed - Fix incorrect handling of inner attributes in `#[instrument]`ed functions ([#2307]) - Add fake return to improve spans generated for type errors in `async fn`s ([#2270]) - Updated `syn` dependency to fix compilation with `-Z minimal-versions` ([#2246]) Thanks to new contributors @compiler-errors and @e-nomem, as well as @CAD97, for contributing to this release! [#2307]: #2307 [#2270]: #2270 [#2246]: #2246
# 0.1.37 (October 6, 2022) This release of `tracing` incorporates changes from `tracing-core` [v0.1.30][core-0.1.30] and `tracing-attributes` [v0.1.23][0.1.23], including the new `Subscriber::on_register_dispatch` method for performing late initialization after a `Subscriber` is registered as a `Dispatch`, and bugfixes for the `#[instrument]` attribute. Additionally, it fixes instances of the `bare_trait_objects` lint, which is now a warning on `tracing`'s MSRV and will become an error in the next edition. ### Fixed - **attributes**: Incorrect handling of inner attributes in `#[instrument]`ed functions (#2307) - **attributes**: Incorrect location of compiler diagnostic spans generated for type errors in `#[instrument]`ed `async fn`s (#2270) - **attributes**: Updated `syn` dependency to fix compilation with `-Z minimal-versions` (#2246) - `bare_trait_objects` warning in `valueset!` macro expansion (#2308) ### Added - **core**: `Subscriber::on_register_dispatch` method (#2269) - **core**: `WeakDispatch` type and `Dispatch::downgrade()` function (#2293) ### Changed - `tracing-core`: updated to [0.1.30][core-0.1.30] - `tracing-attributes`: updated to [0.1.23][attrs-0.1.23] ### Documented - Added [`tracing-web`] and [`reqwest-tracing`] to related crates (#2283], [#2331) Thanks to new contributors @compiler-errors, @e-nomem, @WorldSEnder, @Xiami2012, and @tl-rodrigo-gryzinski, as well as @jswrenn and @CAD97, for contributing to this release! [core-0.1.30]: https://github.com/tokio-rs/tracing/releases/tag/tracing-core-0.1.30 [attrs-0.1.23]: https://github.com/tokio-rs/tracing/releases/tag/tracing-attributes-0.1.23 [`tracing-web`]: https://crates.io/crates/tracing-web/ [`reqwest-tracing`]: https://crates.io/crates/reqwest-tracing/
# 0.1.37 (October 6, 2022) This release of `tracing` incorporates changes from `tracing-core` [v0.1.30][core-0.1.30] and `tracing-attributes` [v0.1.23][attrs-0.1.23], including the new `Subscriber::on_register_dispatch` method for performing late initialization after a `Subscriber` is registered as a `Dispatch`, and bugfixes for the `#[instrument]` attribute. Additionally, it fixes instances of the `bare_trait_objects` lint, which is now a warning on `tracing`'s MSRV and will become an error in the next edition. ### Fixed - **attributes**: Incorrect handling of inner attributes in `#[instrument]`ed functions (#2307) - **attributes**: Incorrect location of compiler diagnostic spans generated for type errors in `#[instrument]`ed `async fn`s (#2270) - **attributes**: Updated `syn` dependency to fix compilation with `-Z minimal-versions` (#2246) - `bare_trait_objects` warning in `valueset!` macro expansion (#2308) ### Added - **core**: `Subscriber::on_register_dispatch` method (#2269) - **core**: `WeakDispatch` type and `Dispatch::downgrade()` function (#2293) ### Changed - `tracing-core`: updated to [0.1.30][core-0.1.30] - `tracing-attributes`: updated to [0.1.23][attrs-0.1.23] ### Documented - Added [`tracing-web`] and [`reqwest-tracing`] to related crates (#2283, #2331) Thanks to new contributors @compiler-errors, @e-nomem, @WorldSEnder, @Xiami2012, and @tl-rodrigo-gryzinski, as well as @jswrenn and @CAD97, for contributing to this release! [core-0.1.30]: https://github.com/tokio-rs/tracing/releases/tag/tracing-core-0.1.30 [attrs-0.1.23]: https://github.com/tokio-rs/tracing/releases/tag/tracing-attributes-0.1.23 [`tracing-web`]: https://crates.io/crates/tracing-web/ [`reqwest-tracing`]: https://crates.io/crates/reqwest-tracing/
# 0.3.16 (October 6, 2022) This release of `tracing-subscriber` fixes a regression introduced in [v0.3.15][subscriber-0.3.15] where `Option::None`'s `Layer` implementation would set the max level hint to `OFF`. In addition, it adds several new APIs, including the `Filter::event_enabled` method for filtering events based on fields values, and the ability to log internal errors that occur when writing a log line. This release also replaces the dependency on the unmaintained [`ansi-term`] crate with the [`nu-ansi-term`] crate, resolving an *informational* security advisory ([RUSTSEC-2021-0139] for [`ansi-term`]'s maintainance status. This increases the minimum supported Rust version (MSRV) to Rust 1.50+, although the crate should still compile for the previous MSRV of Rust 1.49+ when the `ansi` feature is not enabled. ### Fixed - **layer**: `Option::None`'s `Layer` impl always setting the `max_level_hint` to `LevelFilter::OFF` (#2321) - Compilation with `-Z minimal versions` (#2246) - **env-filter**: Clarify that disabled level warnings are emitted by `tracing-subscriber` (#2285) ### Added - **fmt**: Log internal errors to `stderr` if writing a log line fails (#2102) - **fmt**: `FmtLayer::log_internal_errors` and `FmtSubscriber::log_internal_errors` methods for configuring whether internal writer errors are printed to `stderr` (#2102) - **fmt**: `#[must_use]` attributes on builders to warn if a `Subscriber` is configured but not set as the default subscriber (#2239) - **filter**: `Filter::event_enabled` method for filtering an event based on its fields (#2245, #2251) - **filter**: `Targets::default_level` accessor (#2242) ### Changed - **ansi**: Replaced dependency on unmaintained `ansi-term` crate with `nu-ansi-term` ((#2287, fixes informational advisory [RUSTSEC-2021-0139]) - `tracing-core`: updated to [0.1.30][core-0.1.30] - Minimum Supported Rust Version (MSRV) increased to Rust 1.50+ (when the `ansi`) feature flag is enabled (#2287) ### Documented - **fmt**: Correct inaccuracies in `fmt::init` documentation (#2224) - **filter**: Fix incorrect doc link in `filter::Not` combinator (#2249) Thanks to new contributors @cgbur, @DesmondWillowbrook, @RalfJung, and @poliorcetics, as well as returning contributors @CAD97, @connec, @jswrenn, @guswynn, and @bryangarza, for contributing to this release! [nu-ansi-term]: https://github.com/nushell/nu-ansi-term [ansi_term]: https://github.com/ogham/rust-ansi-term [RUSTSEC-2021-0139]: https://rustsec.org/advisories/RUSTSEC-2021-0139.html [core-0.1.30]: https://github.com/tokio-rs/tracing/releases/tag/tracing-core-0.1.30 [subscriber-0.3.15]: https://github.com/tokio-rs/tracing/releases/tag/tracing-subscriber-0.3.15
# 0.3.16 (October 6, 2022) This release of `tracing-subscriber` fixes a regression introduced in [v0.3.15][subscriber-0.3.15] where `Option::None`'s `Layer` implementation would set the max level hint to `OFF`. In addition, it adds several new APIs, including the `Filter::event_enabled` method for filtering events based on fields values, and the ability to log internal errors that occur when writing a log line. This release also replaces the dependency on the unmaintained [`ansi-term`] crate with the [`nu-ansi-term`] crate, resolving an *informational* security advisory ([RUSTSEC-2021-0139] for [`ansi-term`]'s maintainance status. This increases the minimum supported Rust version (MSRV) to Rust 1.50+, although the crate should still compile for the previous MSRV of Rust 1.49+ when the `ansi` feature is not enabled. ### Fixed - **layer**: `Option::None`'s `Layer` impl always setting the `max_level_hint` to `LevelFilter::OFF` (#2321) - Compilation with `-Z minimal versions` (#2246) - **env-filter**: Clarify that disabled level warnings are emitted by `tracing-subscriber` (#2285) ### Added - **fmt**: Log internal errors to `stderr` if writing a log line fails (#2102) - **fmt**: `FmtLayer::log_internal_errors` and `FmtSubscriber::log_internal_errors` methods for configuring whether internal writer errors are printed to `stderr` (#2102) - **fmt**: `#[must_use]` attributes on builders to warn if a `Subscriber` is configured but not set as the default subscriber (#2239) - **filter**: `Filter::event_enabled` method for filtering an event based on its fields (#2245, #2251) - **filter**: `Targets::default_level` accessor (#2242) ### Changed - **ansi**: Replaced dependency on unmaintained `ansi-term` crate with `nu-ansi-term` ((#2287, fixes informational advisory [RUSTSEC-2021-0139]) - `tracing-core`: updated to [0.1.30][core-0.1.30] - Minimum Supported Rust Version (MSRV) increased to Rust 1.50+ (when the `ansi`) feature flag is enabled (#2287) ### Documented - **fmt**: Correct inaccuracies in `fmt::init` documentation (#2224) - **filter**: Fix incorrect doc link in `filter::Not` combinator (#2249) Thanks to new contributors @cgbur, @DesmondWillowbrook, @RalfJung, and @poliorcetics, as well as returning contributors @CAD97, @connec, @jswrenn, @guswynn, and @bryangarza, for contributing to this release! [nu-ansi-term]: https://github.com/nushell/nu-ansi-term [ansi_term]: https://github.com/ogham/rust-ansi-term [RUSTSEC-2021-0139]: https://rustsec.org/advisories/RUSTSEC-2021-0139.html [core-0.1.30]: https://github.com/tokio-rs/tracing/releases/tag/tracing-core-0.1.30 [subscriber-0.3.15]: https://github.com/tokio-rs/tracing/releases/tag/tracing-subscriber-0.3.15
# 0.3.16 (October 6, 2022) This release of `tracing-subscriber` fixes a regression introduced in [v0.3.15][subscriber-0.3.15] where `Option::None`'s `Layer` implementation would set the max level hint to `OFF`. In addition, it adds several new APIs, including the `Filter::event_enabled` method for filtering events based on fields values, and the ability to log internal errors that occur when writing a log line. This release also replaces the dependency on the unmaintained [`ansi-term`] crate with the [`nu-ansi-term`] crate, resolving an *informational* security advisory ([RUSTSEC-2021-0139] for [`ansi-term`]'s maintainance status. This increases the minimum supported Rust version (MSRV) to Rust 1.50+, although the crate should still compile for the previous MSRV of Rust 1.49+ when the `ansi` feature is not enabled. ### Fixed - **layer**: `Option::None`'s `Layer` impl always setting the `max_level_hint` to `LevelFilter::OFF` (#2321) - Compilation with `-Z minimal versions` (#2246) - **env-filter**: Clarify that disabled level warnings are emitted by `tracing-subscriber` (#2285) ### Added - **fmt**: Log internal errors to `stderr` if writing a log line fails (#2102) - **fmt**: `FmtLayer::log_internal_errors` and `FmtSubscriber::log_internal_errors` methods for configuring whether internal writer errors are printed to `stderr` (#2102) - **fmt**: `#[must_use]` attributes on builders to warn if a `Subscriber` is configured but not set as the default subscriber (#2239) - **filter**: `Filter::event_enabled` method for filtering an event based on its fields (#2245, #2251) - **filter**: `Targets::default_level` accessor (#2242) ### Changed - **ansi**: Replaced dependency on unmaintained `ansi-term` crate with `nu-ansi-term` ((#2287, fixes informational advisory [RUSTSEC-2021-0139]) - `tracing-core`: updated to [0.1.30][core-0.1.30] - Minimum Supported Rust Version (MSRV) increased to Rust 1.50+ (when the `ansi`) feature flag is enabled (#2287) ### Documented - **fmt**: Correct inaccuracies in `fmt::init` documentation (#2224) - **filter**: Fix incorrect doc link in `filter::Not` combinator (#2249) Thanks to new contributors @cgbur, @DesmondWillowbrook, @RalfJung, and @poliorcetics, as well as returning contributors @CAD97, @connec, @jswrenn, @guswynn, and @bryangarza, for contributing to this release! [nu-ansi-term]: https://github.com/nushell/nu-ansi-term [ansi_term]: https://github.com/ogham/rust-ansi-term [RUSTSEC-2021-0139]: https://rustsec.org/advisories/RUSTSEC-2021-0139.html [core-0.1.30]: https://github.com/tokio-rs/tracing/releases/tag/tracing-core-0.1.30 [subscriber-0.3.15]: https://github.com/tokio-rs/tracing/releases/tag/tracing-subscriber-0.3.15
## Motivation Fix minimal-versions failure. ## Solution Upgrade all the dependencies to their most recent semver-compatible version, adjusting back down as necessary for MSRV. Essentially a cherry-pick of tokio-rs#2231, but redone by hand. ## Tests - `cargo minimal-versions msrv verify -- cargo check --all-features` - `cargo minimal-versions msrv verify -- cargo check --no-default-features` ## Methodology - `cargo update && cargo upgrade --to-lockfile` - Identify [a bug](killercup/cargo-edit#750) and manually resolve it - loop; upgrade transitive deps - `cargo minimal-versions check --all-features` - Identify failing dep - `cargo minimal-versions tree -i dep --all-features` - Find the closest dependency leading to pulling in `dep` - `cargo add fixdep --optional` to force a more recent more-minimal-versions-correct version - loop; downgrade to msrv - `cargo minimal-versions msrv verify -- cargo check --all-features` - Identify failing dep - `cargo minimal-versions tree -i dep --all-features` - Find the version that supports MSRV from lib.rs - `cargo upgrade dep@msrv`
# 0.1.29 (July 29, 2022) This release of `tracing-core` adds `PartialEq` and `Eq` implementations for metadata types, and improves error messages when setting the global default subscriber fails. ### Added - `PartialEq` and `Eq` implementations for `Metadata` ([tokio-rs#2229]) - `PartialEq` and `Eq` implementations for `FieldSet` ([tokio-rs#2229]) ### Fixed - Fixed unhelpful `fmt::Debug` output for `dispatcher::SetGlobalDefaultError` ([tokio-rs#2250]) - Fixed compilation with `-Z minimal-versions` ([tokio-rs#2246]) Thanks to @jswrenn and @CAD97 for contributing to this release! [tokio-rs#2229]: tokio-rs#2229 [tokio-rs#2246]: tokio-rs#2246 [tokio-rs#2250]: tokio-rs#2250
# 0.1.36 (July 29, 2022) This release adds support for owned values and fat pointers as arguments to the `Span::record` method, as well as updating the minimum `tracing-core` version and several documentation improvements. ### Fixed - Incorrect docs in `dispatcher::set_default` ([tokio-rs#2220]) - Compilation with `-Z minimal-versions` ([tokio-rs#2246]) ### Added - Support for owned values and fat pointers in `Span::record` ([tokio-rs#2212]) - Documentation improvements ([tokio-rs#2208], [tokio-rs#2163]) ### Changed - `tracing-core`: updated to [0.1.29][core-0.1.29] Thanks to @fredr, @cgbur, @jyn514, @matklad, and @CAD97 for contributing to this release! [core-0.1.29]: https://github.com/tokio-rs/tracing/releases/tag/tracing-core-0.1.29 [tokio-rs#2220]: tokio-rs#2220 [tokio-rs#2246]: tokio-rs#2246 [tokio-rs#2212]: tokio-rs#2212 [tokio-rs#2208]: tokio-rs#2208 [tokio-rs#2163]: tokio-rs#2163
# 0.1.23 (October 6, 2022) This release of `tracing-attributes` fixes a bug where compiler diagnostic spans for type errors in `#[instrument]`ed `async fn`s have the location of the `#[instrument]` attribute rather than the location of the actual error, and a bug where inner attributes in `#[instrument]`ed functions would cause a compiler error. ### Fixed - Fix incorrect handling of inner attributes in `#[instrument]`ed functions ([tokio-rs#2307]) - Add fake return to improve spans generated for type errors in `async fn`s ([tokio-rs#2270]) - Updated `syn` dependency to fix compilation with `-Z minimal-versions` ([tokio-rs#2246]) Thanks to new contributors @compiler-errors and @e-nomem, as well as @CAD97, for contributing to this release! [tokio-rs#2307]: tokio-rs#2307 [tokio-rs#2270]: tokio-rs#2270 [tokio-rs#2246]: tokio-rs#2246
# 0.1.37 (October 6, 2022) This release of `tracing` incorporates changes from `tracing-core` [v0.1.30][core-0.1.30] and `tracing-attributes` [v0.1.23][attrs-0.1.23], including the new `Subscriber::on_register_dispatch` method for performing late initialization after a `Subscriber` is registered as a `Dispatch`, and bugfixes for the `#[instrument]` attribute. Additionally, it fixes instances of the `bare_trait_objects` lint, which is now a warning on `tracing`'s MSRV and will become an error in the next edition. ### Fixed - **attributes**: Incorrect handling of inner attributes in `#[instrument]`ed functions (tokio-rs#2307) - **attributes**: Incorrect location of compiler diagnostic spans generated for type errors in `#[instrument]`ed `async fn`s (tokio-rs#2270) - **attributes**: Updated `syn` dependency to fix compilation with `-Z minimal-versions` (tokio-rs#2246) - `bare_trait_objects` warning in `valueset!` macro expansion (tokio-rs#2308) ### Added - **core**: `Subscriber::on_register_dispatch` method (tokio-rs#2269) - **core**: `WeakDispatch` type and `Dispatch::downgrade()` function (tokio-rs#2293) ### Changed - `tracing-core`: updated to [0.1.30][core-0.1.30] - `tracing-attributes`: updated to [0.1.23][attrs-0.1.23] ### Documented - Added [`tracing-web`] and [`reqwest-tracing`] to related crates (tokio-rs#2283, tokio-rs#2331) Thanks to new contributors @compiler-errors, @e-nomem, @WorldSEnder, @Xiami2012, and @tl-rodrigo-gryzinski, as well as @jswrenn and @CAD97, for contributing to this release! [core-0.1.30]: https://github.com/tokio-rs/tracing/releases/tag/tracing-core-0.1.30 [attrs-0.1.23]: https://github.com/tokio-rs/tracing/releases/tag/tracing-attributes-0.1.23 [`tracing-web`]: https://crates.io/crates/tracing-web/ [`reqwest-tracing`]: https://crates.io/crates/reqwest-tracing/
# 0.3.16 (October 6, 2022) This release of `tracing-subscriber` fixes a regression introduced in [v0.3.15][subscriber-0.3.15] where `Option::None`'s `Layer` implementation would set the max level hint to `OFF`. In addition, it adds several new APIs, including the `Filter::event_enabled` method for filtering events based on fields values, and the ability to log internal errors that occur when writing a log line. This release also replaces the dependency on the unmaintained [`ansi-term`] crate with the [`nu-ansi-term`] crate, resolving an *informational* security advisory ([RUSTSEC-2021-0139] for [`ansi-term`]'s maintainance status. This increases the minimum supported Rust version (MSRV) to Rust 1.50+, although the crate should still compile for the previous MSRV of Rust 1.49+ when the `ansi` feature is not enabled. ### Fixed - **layer**: `Option::None`'s `Layer` impl always setting the `max_level_hint` to `LevelFilter::OFF` (tokio-rs#2321) - Compilation with `-Z minimal versions` (tokio-rs#2246) - **env-filter**: Clarify that disabled level warnings are emitted by `tracing-subscriber` (tokio-rs#2285) ### Added - **fmt**: Log internal errors to `stderr` if writing a log line fails (tokio-rs#2102) - **fmt**: `FmtLayer::log_internal_errors` and `FmtSubscriber::log_internal_errors` methods for configuring whether internal writer errors are printed to `stderr` (tokio-rs#2102) - **fmt**: `#[must_use]` attributes on builders to warn if a `Subscriber` is configured but not set as the default subscriber (tokio-rs#2239) - **filter**: `Filter::event_enabled` method for filtering an event based on its fields (tokio-rs#2245, tokio-rs#2251) - **filter**: `Targets::default_level` accessor (tokio-rs#2242) ### Changed - **ansi**: Replaced dependency on unmaintained `ansi-term` crate with `nu-ansi-term` ((tokio-rs#2287, fixes informational advisory [RUSTSEC-2021-0139]) - `tracing-core`: updated to [0.1.30][core-0.1.30] - Minimum Supported Rust Version (MSRV) increased to Rust 1.50+ (when the `ansi`) feature flag is enabled (tokio-rs#2287) ### Documented - **fmt**: Correct inaccuracies in `fmt::init` documentation (tokio-rs#2224) - **filter**: Fix incorrect doc link in `filter::Not` combinator (tokio-rs#2249) Thanks to new contributors @cgbur, @DesmondWillowbrook, @RalfJung, and @poliorcetics, as well as returning contributors @CAD97, @connec, @jswrenn, @guswynn, and @bryangarza, for contributing to this release! [nu-ansi-term]: https://github.com/nushell/nu-ansi-term [ansi_term]: https://github.com/ogham/rust-ansi-term [RUSTSEC-2021-0139]: https://rustsec.org/advisories/RUSTSEC-2021-0139.html [core-0.1.30]: https://github.com/tokio-rs/tracing/releases/tag/tracing-core-0.1.30 [subscriber-0.3.15]: https://github.com/tokio-rs/tracing/releases/tag/tracing-subscriber-0.3.15
Essentially a cherry-pick of #2231, but redone by hand.
Tests
cargo minimal-versions msrv verify -- cargo check --all-features
cargo minimal-versions msrv verify -- cargo check --no-default-features
Methodology
cargo update && cargo upgrade --to-lockfile
cargo minimal-versions check --all-features
cargo minimal-versions tree -i dep --all-features
dep
cargo add fixdep --optional
to force a more recent more-minimal-versions-correct versioncargo minimal-versions msrv verify -- cargo check --all-features
cargo minimal-versions tree -i dep --all-features
cargo upgrade dep@msrv