indygreg / indygreg/PyOxidizer
Declaring minimum rust version in metadata
- Dominant language
- Rust
- Stars
- 6.2k
- Forks
- 256
- PR merge metrics
- No merged PRs in 30d
Description
Following on from https://github.com/indygreg/PyOxidizer/issues/24 a bit ...
I tried to build `main` and ran into an error building dev-dep `indoc` 1.0.3 which requires rust 1.45. While the Cargo.toml only requires 1.0 (which builds on 1.35 and probably much lower), the pin is for indoc 1.0.3
Reading the docs, https://pyoxidizer.readthedocs.io/en/latest/getting_started.html#installing-rust, rust 1.45 does seem to be required, and https://github.com/indygreg/PyOxidizer/commit/263d44ed36a844b1a7e23e57353461e16453bead explains why. I've upgraded to 1.47 and I'm building again.
As rust 1.45 is now required by pyozidizer, would it make sense to update Cargo.toml to bump minimum dependency version numbers where latter versions in `.lock` also take advantage of rust 1.45 features? i.e. bumping `indoc`, but likely to be other similar cases that could be found with a little scripting.
It would be nice if the minimum is included in the pyoxidizer build system. https://rust-lang.github.io/rfcs/2495-min-rust-version.html suggests it is possible to inform the build machinery what the minimum version required is. It seems quite new and not used in the dependencies I looked at, so maybe it isnt ready for use. Googling suggests other(nastier) ways of halting builds early if the wrong compiler is found, e.g. using build.rs with crate `rustc_version` or `version_check`.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with Cargo.toml and the lockfile, comparing the declared Rust requirement with locked dependencies such as indoc 1.0.3. Read the linked Rust minimum-version RFC and the cited PyOxidizer commit to understand the intended build-system support. Done means the project consistently declares or enforces its actual Rust 1.45 minimum and aligns dependency metadata with it.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- build-system
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100