Generated Cargo.toml enables dep:postgres by default with --sync false

Aperta Adatta ai principianti
#334 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
77/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
postgresql, rust

Direzione di ricerca

Leggi src/codegen/cargo.rs in corrispondenza di gen_cargo_file e segui come config.sync influisce sull’elenco delle funzionalità generate. Riproduci il caso con --sync false --async true ed esamina il Cargo.toml generato; il lavoro è concluso quando le sue funzionalità predefinite non abilitano più dep:postgres per questa configurazione. Controlla il manifest generato anche per le configurazioni con sync abilitato.

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

Descrizione

Summary

With --sync false --async true, the generated Cargo.toml still sets

[features]
default = ["dep:postgres", "deadpool"]

So the blocking postgres crate is enabled by default even though no sync code was generated. When the generated crate is a workspace member, every cargo check --workspace / cargo build compiles postgres for nothing.

Where

src/codegen/cargo.rs, gen_cargo_file (line 178 on main at f454a7e): dep:postgres is added to the default features whenever the user manifest has no postgres dependency, regardless of config.sync.

Reproduced with 1.0.1 and on main f454a7e.

Expected

When sync is false, dep:postgres should not be in default (arguably it should not be a dependency at all).

Workaround we use

sed -i 's/^default = \["dep:postgres", "deadpool"\]$/default = ["deadpool"]/' generated/Cargo.toml after each generation.

Lingua principale
Rust
Stelle
1.2k
Fork
77
Merge medio
5g 12h
PR unite (30g)
1

Preparare l'ambiente

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 cornucopia-rs/cornucopia

Tutte le issue di cornucopia-rs/cornucopia

Issue simili

Altre issue su Rust

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.