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

Update to spirv-builder 0.9.0-git, add Cargo.lock #8

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

tombh
Copy link

@tombh tombh commented May 25, 2024

Without Cargo.lock the resolver is free to find recent dependencies that aren't supported by the rust-toolchain.toml pins.

In particular, as of today (May 24th 2024), the combination of a pinned Rust toolchain and an unpinned Cargo depdency tree resulted in this error:

error: package `clap_lex v0.7.0` cannot be built because it requires rustc 1.74
or newer, while the currently active rustc version is 1.71.0-nightly
Either upgrade to rustc 1.74 or newer, or use
cargo update -p clap_lex@0.7.0 --precise ver
where `ver` is the latest version of `clap_lex` supporting rustc 1.71.0-nightly

There are other errors too if that one is fixed.

I've also updated to the latest spirv-builder, although I had to pin to the latest HEAD, rather than the latest tag (v0.9.0). That tagged version also fails to build with the "latest" clap (latest within the pin bounds). I think if we'd had a Cargo.lock here, we could have frozen in time the dependency tree of exact versions that worked with the pinned Rust toolchain at the time of the last spirv-builder release.

I'd also like to note that this is something like my third time revisiting rust-gpu in the last 4 years. And every time it's been an unintuitive challenge building the project. I think this repo should be the defacto way of compiling rust-gpu shaders. The unique requirements and indeed separate concern of compiling shaders means that it makes sense to be in its own workspace. It would be wonderful if this project was referenced right there in their README. Actually, I don't think it's too much of a burden to depend on spirv-builder and its rust-toolchain.toml.

Without `Cargo.lock` the resolver is free to find recent dependencies
that aren't supported by the `rust-toolchain.toml` pins.

In particular, as of today (May 24th 2024), the combination of a pinned
Rust toolchain and an unpinned Cargo depdency tree resulted in this
error:
```
error: package `clap_lex v0.7.0` cannot be built because it requires rustc 1.74
or newer, while the currently active rustc version is 1.71.0-nightly
Either upgrade to rustc 1.74 or newer, or use
cargo update -p clap_lex@0.7.0 --precise ver
where `ver` is the latest version of `clap_lex` supporting rustc 1.71.0-nightly
```

There are other errors too if that one is fixed.

I've also updated to the latest `spirv-builder`, although I had to pin
to the latest HEAD, rather than the latest tag (v0.9.0). That tagged version
also fails to build with the "latest" `clap` (latest within the pin bounds).
I think if we'd had a `Cargo.lock` here, we could have frozen in time
the dependency tree of exact versions that worked with the pinned Rust toolchain
at the time of the last `spirv-builder` release.
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

Successfully merging this pull request may close these issues.

1 participant