graphprotocol / graphprotocol/graph-node

Add useful error messages/types to Result<T, ()>

Abierto
#3,247 0 comentarios 1 reacción 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

error-handling good first issue
Lenguaje dominante
Rust
Estrellas
3.2k
Forks
1.1k
Merge medio
4 d 1 h
PR fusionados (30 d)
1

Descripción

There are multiple functions that return Result<T, ()> in the code, this is equivalent to Option<T>, however instead of changing those to optional types, these should return useful error messages/types so it's easier to debug.

Example: https://github.com/graphprotocol/graph-node/blob/79390c39a13f166999ceea8defc55eedd05265ab/graph/src/data/subgraph/mod.rs#L169

Some of them could just return &str/String but preferably they should return a proper error type or just an instance of anyhow. If for any of them you decide to create new error types, consider using the crate thiserror 🙂

If you never used any of these crates mentioned above, take a look at our codebase, you'll find usages of both. And if you're doing something outside of the graph crate/folder, you might want to import those from it's prelude module.

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Comienza con graph/src/data/subgraph/mod.rs en el ejemplo enlazado y, después, busca en el código base funciones que devuelvan Result<T, ()>. Revisa los usos existentes de anyhow y thiserror, y asigna los casos de fallo de cada candidato antes de decidir qué mensajes o tipos de error son útiles. Se considera terminado cuando los resultados relevantes similares a unit ya no descartan información de error en las rutas de código identificadas.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
rust
Área
backend
Tipo de issue
Refactorización
Dificultad
5/5
Tiempo estimado
Más de una semana
Estado de actividad
Estancado
Claridad
Necesita aclaración
Aptitud para principiantes
25/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.