Skip to content

prqlc CLI and prqlc other than CLI should be separate crates or, the cli feature of prqlc should not be the default #4946

@eitsupi

Description

@eitsupi

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:

  1. Split prqlc into two crates, CLI and other.
    1. prqlc-cli and prqlc
    2. prqlc and prqlc-core (or something else)
  2. Remove the cli feature from prqlc default features. And ignore the MSRV of the cli feature.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions