Skip to content
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

Bump MSRV to 1.31 #3924

Closed
wants to merge 1 commit into from
Closed

Bump MSRV to 1.31 #3924

wants to merge 1 commit into from

Conversation

joshlf
Copy link
Contributor

@joshlf joshlf commented Sep 14, 2024

This permits Cargo.toml to include optional dependencies. On toolchains earlier than 1.31, the optional dependency syntax is not supported. With the MSRV at 1.31, any optional dependency may be supported even if its MSRV is higher than our MSRV since only users using a more recent toolchain will enable that dependency.

In particular, this paves the way for adding an optional zerocopy dependency (prototyped in #3407 and #3914; see also google/zerocopy#557), which permits many uses of libc to no longer require unsafe code.

@rustbot
Copy link
Collaborator

rustbot commented Sep 14, 2024

r? @tgross35

rustbot has assigned @tgross35.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

@joshlf
Copy link
Contributor Author

joshlf commented Sep 14, 2024

r? @Amanieu

@rustbot rustbot assigned Amanieu and unassigned tgross35 Sep 14, 2024
This permits `Cargo.toml` to include optional dependencies. On
toolchains earlier than 1.31, the optional dependency syntax is not
supported. With the MSRV at 1.31, any optional dependency may be
supported even if *its* MSRV is higher than *our* MSRV since only users
using a more recent toolchain will enable that dependency.

In particular, this paves the way for adding an optional `zerocopy`
dependency (prototyped in rust-lang#3407 and rust-lang#3914; see also google/zerocopy#557),
which permits many uses of libc to no longer require `unsafe` code.
@tgross35
Copy link
Contributor

We won't be bumping MSRV on libc 0.2, the main branch already has 1.0. Any new features should target that - but we need to discuss and make sure that ecosystem traits are something we even want here, has this been discussed?

@joshlf
Copy link
Contributor Author

joshlf commented Sep 17, 2024

We won't be bumping MSRV on libc 0.2, the main branch already has 1.0. Any new features should target that - but we need to discuss and make sure that ecosystem traits are something we even want here, has this been discussed?

Re: 1.0: Our concern is that 1.0 may take an arbitrary amount of time to finalize and publish (I say that as the author of zerocopy 0.8, which we originally estimated would land in January 😛 ).

As for the discussion, I've discussed it informally with a few folks, but nothing official. We were hoping that an optional dependency would be relatively uncontroversial since it's opt-in and so it doesn't impose a cost on users who don't care about it. I'd be happy to discuss in more detail why zerocopy support from libc is important for our users.

@bors
Copy link
Contributor

bors commented Sep 17, 2024

☔ The latest upstream changes (presumably #3931) made this pull request unmergeable. Please resolve the merge conflicts.

@tgross35
Copy link
Contributor

As for the discussion, I've discussed it informally with a few folks, but nothing official. We were hoping that an optional dependency would be relatively uncontroversial since it's opt-in and so it doesn't impose a cost on users who don't care about it. I'd be happy to discuss in more detail why zerocopy support from libc is important for our users.

The reasoning makes enough sense to me. We just need some team feedback since this is effectively endorsing a library crate - mind opening a Zulip thread?

Re: 1.0: Our concern is that 1.0 may take an arbitrary amount of time to finalize and publish (I say that as the author of zerocopy 0.8, which we originally estimated would land in January 😛 ).

Yeah, I know this is a problem we are already facing. However, 0.2 should be considered on a major features freeze; I don't want to effectively delay 1.0 further by increasing the maintenance demand of our stable version, keeping 0.2 up to date is already pretty painful.

With that in mind, I am going to close this and the zerocopy PR targeting 0.2. I appreciate the effort, but anything this large needs to target main (which I see you already have).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants