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

Aperta
#4,946 6 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 3 giorni

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
30/100
Tipo di issue
Refactoring
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
rust
Ambito
cli

Direzione di ricerca

Start by reading the prqlc crate’s feature and dependency configuration to see how the CLI dependencies affect downstream users’ MSRV. Compare the proposed crate split with disabling the cli feature by default, and check the project’s MSRV and CLI tests. Done means the project has chosen and implemented an approach that keeps the library’s MSRV independent of CLI dependencies.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

compiler enhancement needs-discussion

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.
Lingua principale
Rust
Stelle
10.9k
Fork
261
Merge medio
3g 20h
PR unite (30g)
85

Preparare l'ambiente

Apri in Codespaces

Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di PRQL/prql

Tutte le issue di PRQL/prql

Issue simili

Altre issue su Rust

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.