Avoid client errors when a new variant of `MultiFilesUri` is added
Los mantenedores suelen responder en 2 días
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 65/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- rust
- Área
- blockchain, cli
Línea de trabajo
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.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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
- Lenguaje dominante
- Rust
- Estrellas
- 155
- Forks
- 52
- Merge medio
- 2 d 17 h
- PR fusionados (30 d)
- 37
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de IntersectMBO/mithril
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 64/100
IntersectMBO/mithril#1605 · 2 comentarios ·
Los mantenedores suelen responder en 2 días
-
spike :satellite:
Dificultad 5/5 Más de una semana Aptitud para principiantes 10/100
IntersectMBO/mithril#3701 ·
Los mantenedores suelen responder en 2 días
-
Publish a DNSLink record of the immutable archives IPNS name in the Mithril networks DNS zonesPosiblemente ocupada @jpraynaud la tomó hace 2 días. Abiertofeature :rocket:
IntersectMBO/mithril#3700 · 1 asignado ·
Los mantenedores suelen responder en 2 días
-
feature :rocket:
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
IntersectMBO/mithril#3699 ·
Los mantenedores suelen responder en 2 días
-
feature :rocket:
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
IntersectMBO/mithril#3698 ·
Los mantenedores suelen responder en 2 días
Todos los issues de IntersectMBO/mithril
Issues similares
-
comp-formats
Dificultad 2/5 Medio día Aptitud para principiantes 64/100
ClickHouse/ClickHouse#131694 ·
Los mantenedores suelen responder en 1 día
-
cli: `execCargoMetadata` decodes stdout per chunk, corrupting non-ASCII paths across pipe boundariesAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Los mantenedores suelen responder en 1 día
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Copperpour/Copperpour#500 ·
Los mantenedores suelen responder en 1 día
-
state:triage-needed
Dificultad 1/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día