In rsass I have an optional dependency for clap which I just updated to 4.0. Earlier, I used to test with an old rust version that was not supported by clap, and that went well as long as I didn't enable the feature using clap. Now, this happens instead:
: kalarba%; cargo +1.56.1 test
Updating crates.io index
error: failed to select a version for the requirement `clap = "=4.0.8"`
candidate versions found which didn't match: 3.2.22, 3.2.21, 3.2.20, ...
location searched: crates.io index
required by package `rsass v0.26.1-PRE (/home/kaj/proj/rust/rsass)`
The difference seems to be that clap has properly declare a rust_version = 1.60 in their Cargo.toml.
Is it possible to get this to work? Can I declare a rust_version for the feature which is higher than the rust_version for my crate?
It's more than that. Crates that use a new features syntax from Rust 1.60 have a new incompatible format in the crates-io index, and are "invisible" to old Rust versions.
You can specify version requirement as clap = "3 || 4" and the older Rust versions will find v3.