Avoid client errors when a new variant of `MultiFilesUri` is added
I maintainer di solito rispondono entro 2 giorni
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 65/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- rust
- Ambito
- blockchain, cli
Direzione di ricerca
Start at the MultiFilesUri definition and compare its serialization behavior with the signed entity types’ custom serde approach. Trace how locations are handled in the client library and client CLI, then run or add unit tests for known and unknown variants and the golden test for a message containing an unknown variant. Done means unsupported locations are skipped without deserialization errors while known variants continue to work.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Why
MultiFilesUri only has the Template variant and is deserialized with the derived serde implementation, so adding a new variant on the aggregator side would make already released clients fail to deserialize the Cardano database messages.
What
Make the deserialization of MultiFilesUri tolerant to unknown variants, so that a client ignores the locations it does not support instead of failing.
How
- Add a catch-all variant to
MultiFilesUrifor the unknown variants - Implement a custom serde deserialization that maps any unknown variant to the catch-all (same approach as
SignedEntityTypeMessage, as#[serde(other)]only supports unit variants) - Make
expand_to_file_uriandexpand_for_immutable_file_numberofMultiFilesUrireturn an error for the catch-all variant - Skip the locations with an unknown URI variant in
ImmutablesMessagePart::sanitized_locations, so that the client library and the client CLI ignore them - Add a golden test with a message that holds an unknown varian
- Lingua principale
- Rust
- Stelle
- 155
- Fork
- 52
- Merge medio
- 2g 17h
- PR unite (30g)
- 37
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di IntersectMBO/mithril
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 64/100
IntersectMBO/mithril#1605 · 2 commenti ·
I maintainer di solito rispondono entro 2 giorni
-
spike :satellite:
Difficoltà 5/5 Più di una settimana Idoneità per principianti 10/100
IntersectMBO/mithril#3701 ·
I maintainer di solito rispondono entro 2 giorni
-
Publish a DNSLink record of the immutable archives IPNS name in the Mithril networks DNS zonesForse già presa @jpraynaud l’ha presa 2 giorni fa. Apertafeature :rocket:
IntersectMBO/mithril#3700 · 1 assegnatario ·
I maintainer di solito rispondono entro 2 giorni
-
feature :rocket:
Difficoltà 4/5 3-5 giorni Idoneità per principianti 25/100
IntersectMBO/mithril#3699 ·
I maintainer di solito rispondono entro 2 giorni
-
feature :rocket:
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
IntersectMBO/mithril#3698 ·
I maintainer di solito rispondono entro 2 giorni
Tutte le issue di IntersectMBO/mithril
Issue simili
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
storytold/photocraft#14822 ·
I maintainer di solito rispondono entro 1 giorno
-
bug css
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
dginev/latexml-oxide#853 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
I maintainer di solito rispondono entro 2 giorni
-
[Bug] export_build_environment admits its output directory only after the export ran in the build computerForse già presa @viniciusdsandrade l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno