-
-
Notifications
You must be signed in to change notification settings - Fork 2.5k
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
chore: prepare Tokio v1.17.0 release #4504
Conversation
# 1.16.2 (February 15, 2022) This release updates the minimum supported Rust version (MSRV) to 1.49, the `mio` dependency to v0.8, and the (optional) `parking_lot` dependency to v0.12. Additionally, it contains several bug fixes, as well as internal refactoring and performance improvements. ### Fixed - time: prevent panicking in `sleep` with large durations ([#4495]) - time: eliminate potential panics in `Instant` arithmetic on platforms where `Instant::now` is not monotonic ([#4461]) - io: fix `DuplexStream` not participating in cooperative yielding ([#4478]) - rt: fix potential double panic when dropping a `JoinHandle` ([#4430]) ### Changed - update minimum supported Rust version to 1.49 ([#4457]) - update `parking_lot` dependency to v0.12.0 ([#4459]) - update `mio` dependency to v0.8 ([#4449]) - rt: remove an unnecessary lock in the blocking pool ([#4436]) - rt: remove an unnecessary enum in the basic scheduler ([#4462]) - time: use bit manipulation instead of modulo to improve performance ([#4480]) - net: use `std::future::Ready` instead of our own `Ready` future ([#4271]) - replace deprecated `atomic::spin_loop_hint` with `hint::spin_loop` ([#4491]) - fix miri failures in intrusive linked lists ([#4397]) ### Documented - io: add an example for `tokio::process::ChildStdin` ([#4479]) ### Unstable The following changes only apply when building with `--cfg tokio_unstable`: - task: fix missing location information in `tracing` spans generated by `spawn_local` ([#4483]) - task: add `JoinSet` for managing sets of tasks ([#4335]) - metrics: fix compilation error on MIPS ([#4475]) - metrics: fix compilation error on arm32v7 ([#4453]) [#4495]: #4495 [#4461]: #4461 [#4478]: #4478 [#4430]: #4430 [#4457]: #4457 [#4459]: #4459 [#4449]: #4449 [#4462]: #4462 [#4436]: #4436 [#4480]: #4480 [#4271]: #4271 [#4491]: #4491 [#4397]: #4397 [#4479]: #4479 [#4483]: #4483 [#4335]: #4335 [#4475]: #4475 [#4453]: #4453
This PR also includes the results of running the |
A patch release? I'm not sure things like upgrading mio should be a patch release. |
I wasn't sure if this should be 1.17 or 1.16.2 either; my thinking was that the release doesn't actually add any APIs (outside of unstable features), so it isn't technically a minor version release. I agree that the Mio bump is a big change, but it doesn't actually touch Tokio's public API surface. This might be kind of a literalist interpretation of semver, though. I'd be happy to change this to 1.17 if you and @carllerche think that would be more appropriate? |
Patches are only for high priority bug fixes. Everything else is minor. |
Okay, changed the version to 1.17.0! |
tokio-stream/src/lib.rs
Outdated
//! [`AsyncWrite`]: https://docs.rs/tokio/1.0/tokio/io/trait.AsyncWrite.html | ||
//! [`tokio::io`]: https://docs.rs/tokio/1.17.0/tokio/io/index.html | ||
//! [`AsyncRead`]: https://docs.rs/tokio/1.17.0/tokio/io/trait.AsyncRead.html | ||
//! [`AsyncWrite`]: https://docs.rs/tokio/1.17.0/tokio/io/trait.AsyncWrite.html |
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.
I wonder if this should just be using latest
rather than a specific version?
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.
I think that changing this might cause problems for IDEs that provide links to the docs when you hover over an item, as if a user was working with an older version of the library, the link might confusingly take them to the docs for the latest version if the IDE used this string to get the root url for the docs.
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.
Oh nvm I see. I mistakenly thought we were referring to the one in Cargo.toml. Yeah I actually agree with you here, this probably should link to the latest.
It would be nice if we could get links that were semver aware, i.e. 1.X releases would have a dedicated latest so that API changes in a 2.X release wouldn't break older docs though.
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.
most READMEs and stuff are using latest
; but the point Noah makes is also valid. it looks like we haven't been very good at keeping these up to date, even though there's a script for doing it, maybe we're better off switching to latest
? idk.
i'm also happy to just back those changes out of this PR.
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.
It would be nice if we could get links that were semver aware, i.e. 1.X releases would have a dedicated latest so that API changes in a 2.X release wouldn't break older docs though.
i believe you can do that: https://docs.rs/tokio/1/tokio should take you to the latest v1.x.y version.
i can change these to do that in a separate branch?
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.
...oh, huh, https://docs.rs/tokio/1.0/tokio also links to 1.16.1. that's...not what i would have expected! but, i guess it means these are actually fine as-is.
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.
I did not realize that we could do this! Yeah, I it would be good to open an issue and separate PR to change all cases where we do this to point to the 1.X latest, but that shouldn't block this release.
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.
@hawkw apparently these strings are semver.
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.
I'm sitting right next to one of the docs.rs maintainers so I asked him 😆
as per the discussion [here][1], we should probably address these separately. [1]: #4504 (comment)
1.17.0 (February 15, 2022)
This release updates the minimum supported Rust version (MSRV) to 1.49,
the
mio
dependency to v0.8, and the (optional)parking_lot
dependency to v0.12. Additionally, it contains several bug fixes, as
well as internal refactoring and performance improvements.
Fixed
sleep
with large durations (#4495)Instant
arithmetic on platformswhere
Instant::now
is not monotonic (#4461)DuplexStream
not participating in cooperative yielding(#4478)
JoinHandle
(#4430)Changed
parking_lot
dependency to v0.12.0 (#4459)mio
dependency to v0.8 (#4449)(#4480)
std::future::Ready
instead of our ownReady
future(#4271)
atomic::spin_loop_hint
withhint::spin_loop
(#4491)
Documented
tokio::process::ChildStdin
(#4479)Unstable
The following changes only apply when building with
--cfg tokio_unstable
:tracing
spans generated byspawn_local
(#4483)JoinSet
for managing sets of tasks (#4335)