-
Notifications
You must be signed in to change notification settings - Fork 13k
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
src tarballs are vendored without respecting lockfile #79010
Comments
Apparently they made a design decision to reject numbers above 65536, but again I can't see this in the semver spec which allows any integer. SergioBenitez/version_check#11 |
Hm, version_check is at 0.9.1 on beta branch AFAICT -- can you say more about where you're getting 0.9.2 from? Maybe our vendoring is somehow buggy? That said this is not really a beta regression since it's for an unstable feature so not marking as such. |
I downloaded https://static.rust-lang.org/dist/rustc-beta-src.tar.xz it's on 0.9.2 there. tar xf rustc-beta-src.tar.xz rustc-beta-src/vendor/version_check/Cargo.toml |
That is indeed concerning. Looking at the logs for the dist-x86_64-linux builder, it uses version_check 0.9.1 for the main steps but the src tarball does indeed download 0.9.2, which is unexpected. I suspect it might be because of the additional Cargo.toml's included with --sync? cc @ehuss @alexcrichton, I guess we should be passing |
Not sure if this matters for your release policy, but the test is run at least and is expected to contain compiler errors saying " |
Right, all tests run independent of the channel being targeted, and in this case the feature affected is not usable on stable regardless. (Edit: Our tests always run with RUSTC_BOOTSTRAP or equivalent, so they can always enable features if they want). |
I'm a bit uncertain what the issue is here. Because the vendor directory is including multiple workspaces, it is to be expected that there are multiple versions of different dependencies like What are the commands that I can run after downloading the source tarball to reproduce the issue? I tried running |
Ah right, this is an issue with how the Debian packaging works. The typical rustc tarball contains a lot of other tools and all of their dependencies as well. If we retained all of that, we would have to review all of this stuff every update to check it adheres to Debian policy and fix it if it doesn't (e.g. does not embed new C code & instead make it link to system shared libraries instead). This is a lot of effort for me to do every 6 weeks (at this stage it's just me maintaining this package). So instead of doing all of that, we delete these extra tools and regenerate Cargo.lock by running OTOH if this process does cause problems as described in the OP, it is still a bug in that crate since semver is supposed to retain this sort of compatibility. |
I suppose this is not a rustc bug and I will just have to suck it up and deal with similar issues in the future. It's less work than reviewing all the extra stuff anyway. |
@infinity0 so close then? |
Closing. Would be nice if rust provided standalone releases, but I can see it being a bit awkward to maintain separate Cargo.lock files. |
This is with 1.48.0-beta.8, and previously all passed in 1.47.0. On Debian I see this failure on all architectures.
test [ui] ui/feature-gates/feature-gate-cfg-version.rs ... FAILED
It seems the failure is due to
version_check
being upgraded from 0.9.1 to 0.9.2 which now treats 1.65536.2 as malformed for some reason, even though I can't see this mentioned as part of https://semver.org/SergioBenitez/version_check@v0.9.1...v0.9.2
Shouldn't this have been caught by rust CI, or is this not run on beta releases?
The text was updated successfully, but these errors were encountered: