Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

v4 -> v5 upgrade path

Aperta
#442 1 commento 2 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

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

Direzione di ricerca

Inizia esaminando la dipendenza Cargo e la configurazione di build per boring-sys v4 e v5, in particolare la proprietà links e la dipendenza opzionale proposta. Verifica prima il comportamento quando v5 sarà disponibile su crates.io, quindi testa il percorso di aggiornamento usando insieme boring v4 e boring-sys v5. Il lavoro è completato quando la release di compatibilità evita conflitti di links mantenendo al contempo le funzionalità v4 supportate.

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

Descrizione

v5

Cargo won't allow boring-sys v4 and boring-sys v5 coexist in one project (thanks to links property), which generally is a good idea, because their C symbols would conflict. However, this means that projects can't upgrade to boring v5 if any of their dependencies use boring v4. Such all-at-once upgrade is much harder and gets slowed down by the slowest-to-upgrade dependency.

It's relatively easy to make boring v5 support being used with boring-sys v4, but it's the less interesting combination, since the sys crate is more important to upgrade.

Unfortunately, making boring v4 use boring-sys v5 is more complicated. We can't simply release a version of boring v4 that accepts both versions of the sys crate, because the sys v5 crate has has only a subset of sys v4 functionality. cargo update eagerly picks the latest version of dependencies, so it would be a breaking change.

I can't simply use a feature flag as an opt-in to sys v5, because Cargo is overly restrictive with links, and wants to make a single universal Cargo.lock that takes into account even optional disabled dependencies.

Given the limitations, my current idea is to release a version of boring-sys v4 that doesn't have a links property, but optionally depends on boring-sys v5. Make it skip its own build and re-export v5 crate when a feature flag is enabled. This will be easier to test once v5 is on crates.io, so we should release v5 first.

Lingua principale
Rust
Stelle
526
Fork
178
Merge medio
15h 34m
PR unite (30g)
9

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 cloudflare/boring

Tutte le issue di cloudflare/boring

Issue simili

Altre issue su Rust

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.