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

We should document the exact minimum versions of build tools required to build a given Rust toolchain #129307

Open
jieyouxu opened this issue Aug 20, 2024 · 7 comments
Labels
A-docs Area: documentation for any part of the project, including the compiler, standard library, and tools C-enhancement Category: An issue proposing an enhancement or a PR with one. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Comments

@jieyouxu
Copy link
Member

As noticed in #128722 (comment) when trying to bump cc to a version which drops support for VS 2013.

Also cc:

We also don't document minium versions of binutils etc on the platform support page. Maybe we should! But that's a pre-existing issue and bumping cc or not doesn't change that.

Originally posted by @ChrisDenton in #129290 (comment)

INSTALL.md exists, but that seems more like some general advice for getting started, but not actual documented guarantees in terms of what kind of build environment is supported.

@jieyouxu jieyouxu added C-enhancement Category: An issue proposing an enhancement or a PR with one. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) A-docs Area: documentation for any part of the project, including the compiler, standard library, and tools labels Aug 20, 2024
@rustbot rustbot added the needs-triage This issue may need triage. Remove it if it has been sufficiently triaged. label Aug 20, 2024
@jieyouxu jieyouxu removed the needs-triage This issue may need triage. Remove it if it has been sufficiently triaged. label Aug 20, 2024
@Mark-Simulacrum
Copy link
Member

I think this makes sense, but it should be noted that just documenting is very likely to get accidentally stale. Unfortunately, it's not clear that we can easily test those in CI -- often the minimum requires a good deal of work to actually obtain, especially on e.g. macOS or Windows.

@dpaoliello
Copy link
Contributor

We'd probably have to have a tier system similar to platform support:

  • Recommended/tested tools: these are what the Rust CI uses.
  • Supported tools: these aren't always tested but should work and the Rust project will investigate any reported issues.

@dpaoliello
Copy link
Contributor

likely to get accidentally stale

This is already happening with the min VS version: INSTALL.md and the error message for not finding MSVC were both updated to VS 2017, but rustup's docs were still saying VS 2013 (the PR to bump to 2017 has been merged in, but the new docs haven't been deployed yet).

If we're going to document tooling versions, then it really needs to be in a single place that everything else references, and we need to have pointers between the code and those docs to ensure that things are updated together.

@dpaoliello
Copy link
Contributor

I've put together some thoughts about this into a Pre-RFC: https://internals.rust-lang.org/t/pre-rfc-build-tool-support-policy-aka-tool-tier-policy/21596

@tgross35
Copy link
Contributor

We probably need to bump cc in the next couple of days to try to help a bug, which means dropping support for vs2013. @dpaoliello would you be up for putting up a PR documenting this change? I don't think we can wait on official policy for supported build tool tiers (though I like that idea), but just making sure it is noted in the target docs and/or INSTALL.md seems reasonable until we have something better.

@dpaoliello
Copy link
Contributor

@tgross35 I'm not sure there needs to be anything changed in Rust's docs: INSTALL.md and Rust's error messages both say you need VS 2017+, and I already updated rustup's docs to match (that was back in May, I don't know why that hasn't been deployed yet).

Once rustup deploys their new docs there will be nothing left that indicates that VS 2013 (or 2015) is supported.

tgross35 added a commit to tgross35/rust that referenced this issue Sep 30, 2024
`cc` was previously pinned because it dropped support for Visual Studio
12 (2013), and we wanted to decouple that from the rest of the automated
updates. As noted in [2], there is no longer anything indicating we
support VS2013, so it should be okay to unpin it.

`cc` 1.1.22 contains a fix that may help improve the high MSVC CI
failure rate [3], so we also have motivation to update to that point.

[1]: rust-lang#129307
[2]: rust-lang#129307 (comment)
[3]: rust-lang#127883
tgross35 added a commit to tgross35/rust that referenced this issue Sep 30, 2024
`cc` was previously pinned because version 1.1.106 dropped support for
Visual Studio 12 (2013), and we wanted to decouple that from the rest of
the automated updates. As noted in [2], there is no longer anything
indicating we support VS2013, so it should be okay to unpin it.

`cc` 1.1.22 contains a fix that may help improve the high MSVC CI
failure rate [3], so we also have motivation to update to that point.

[1]: rust-lang#129307
[2]: rust-lang#129307 (comment)
[3]: rust-lang#127883
@tgross35
Copy link
Contributor

Oh, thanks for confirming - opened #131070 to bump cc.

We should still figure out a good policy here, so it makes sense to leave this issue open.

bors added a commit to rust-lang-ci/rust that referenced this issue Sep 30, 2024
Unpin `cc` and upgrade to the latest version

`cc` was previously pinned because 1.1.106 dropped support for Visual Studio 12 (2013), and we wanted to decouple that from the rest of the automated updates. As noted in [2], there is no longer anything indicating we support VS2013, so it should be okay to unpin it.

`cc` 1.1.22 contains a fix that may help improve the high MSVC CI failure rate [3], so we also have motivation to update to that point.

[1]: rust-lang#129307
[2]: rust-lang#129307 (comment)
[3]: rust-lang#127883

try-job: x86_64-msvc-ext
bors added a commit to rust-lang-ci/rust that referenced this issue Oct 2, 2024
Unpin `cc` and upgrade to the latest version

`cc` was previously pinned because 1.1.106 dropped support for Visual Studio 12 (2013), and we wanted to decouple that from the rest of the automated updates. As noted in [2], there is no longer anything indicating we support VS2013, so it should be okay to unpin it.

`cc` 1.1.22 contains a fix that may help improve the high MSVC CI failure rate [3], so we also have motivation to update to that point.

[1]: rust-lang#129307
[2]: rust-lang#129307 (comment)
[3]: rust-lang#127883

try-job: x86_64-msvc-ext
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-docs Area: documentation for any part of the project, including the compiler, standard library, and tools C-enhancement Category: An issue proposing an enhancement or a PR with one. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

No branches or pull requests

5 participants