MSRV will become increasingly important as cargo will soon recognize the rust-version field and resolve dependencies.
Currently the prqlc crate is a required dependency of downstream packages that want to incorporate PRQL, but the MSRV of prqlc itself is pushed up by the MSRV of the cli feature dependency, which is not needed downstream.
MSRVs are not configurable on a per-feature basis, so as long as prqlc has the cli feature, prqlc's MSRVs are at risk of being raised by the cli feature.
This is especially troublesome for maintaining MSRV because the clap crate is not very conservative about MSRV (https://docs.rs/clap/latest/clap/#aspirations).
I think we should choose one of the following options to improve the situation here:
- Split prqlc into two crates, CLI and other.
prqlc-cli and prqlc
prqlc and prqlc-core (or something else)
- Remove the
cli feature from prqlc default features. And ignore the MSRV of the cli feature.