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

proposal: Sccache MSRV Policy #1609

Open
Xuanwo opened this issue Feb 17, 2023 · 5 comments
Open

proposal: Sccache MSRV Policy #1609

Xuanwo opened this issue Feb 17, 2023 · 5 comments

Comments

@Xuanwo
Copy link
Collaborator

Xuanwo commented Feb 17, 2023

Hi all, I am submitting this proposal to create an MSRV policy for sccache.

TL;DR

  • Sccache will use stable - 4 as the MSRV.
  • Sccache will change the MSRV every three months.

What's MSRV?

MSRV means Minimum Supported Rust Version. By setting up MSRV, We makes sure that users who use this or newer version of rust can build sccache.

Notice: Sccache is a binary project. The MSRV change only affects users who build sccache themselves.

Why do we need this?

  • to make our codebase much cleaner (by using more of the tools provided by the new Rust version)
  • to bump our dependencies more regularly (we can increase the dependency checking interval to 1 time/month to reduce our maintenance work)
  • to avoid the expected irregularity of bumping (instead of bumping at a random time, all our downstreams will ensure that we will bump MSRV today or three months later).

Why stable - 4?

The Rust team has been releasing a new version every 6 weeks. stable - 4 means that we are using the version that was released 6 months ago. After 6 months most of our developers or packagers should already support it. For example, Debian Rust has 1.63 in testing and 1.64 in exp.

Why extend three months?

Three months means that our maintainer only needs to update MSRV 4 times a year. It is a good balance between newer version and the work the maintainer might have.

@drahnr
Copy link
Collaborator

drahnr commented Feb 17, 2023

I think we should provide a minimum lag and bump it on demand otherwise. I'd propose 6 months-12months to reduce friction for the compiling people in corporates, where things traditionally move at a much slower pace.

@Xuanwo
Copy link
Collaborator Author

Xuanwo commented Feb 19, 2023

Rust 1.68 will be released on 2023-03-09, I plan to bump sccache's MSRV to Rust 1.64 on that day, which released on 2022-09-22 (6 months from 2023-03-09). We will have at least three months to discuss the detail of this proposal.

After this bump, existing blocks will be resolved, for example #1578.

@momvart
Copy link

momvart commented Mar 9, 2024

I just want to report that it is out-dated as of today. clap requires MSRV 1.74.0 while sccache is still marked with 1.70.0 causing builds to fail.

@Xuanwo
Copy link
Collaborator Author

Xuanwo commented Mar 9, 2024

I just want to report that it is out-dated as of today. clap requires MSRV 1.74.0 while sccache is still marked with 1.70.0 causing builds to fail.

We have MSRV checks in CI so this should not happen. Have you used --locked while building sccache? It uses the Cargo.lock file provided by sccache.

@momvart
Copy link

momvart commented Mar 10, 2024

We have MSRV checks in CI so this should not happen.

Sorry, you're right.

Have you used --locked while building sccache? It uses the Cargo.lock file provided by sccache.

Unfortunately, I was a bit confused by the documentation about --locked. It is working now.

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

No branches or pull requests

3 participants