Enforce fields using explicit presence in CI

Abierto
#18 1 comentario 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
35/100
Tipo de issue
Nueva funcionalidad
Claridad
Necesita aclaración
Estado de actividad
Tranquilo

Línea de trabajo

Empieza revisando la recomendación sobre explicit presence, el proceso de Buf para solicitar reglas de lint y la documentación de Buf check-plugin enlazada en el issue. Revisa también el issue #19 para obtener contexto relacionado. Se considera terminado cuando el proyecto cuenta con un mecanismo de enforcement mantenido que garantiza que todos los campos del esquema usan explicit presence.

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

Descripción

Because protobuf recommends explicit presence for maximum compatibility with protobuf editions, we should enforce that all fields in our schema use explicit presence.

There are at least two good options to support this enforcement:

  • Adding a new lint rule to the Buf CLI: We could make a feature request to Buf that they add a new lint rule enforcing explicit field presence, following their preferred process. They say they'll add rules if they "think they're maintainable and could have widespread value", and since explicit field presence is a documented recommendation directly from the protobuf team, it would be worth giving this approach a shot especially since it is less maintenance work for us in the long run.
  • Creating a Buf check plugin: We could make a custom Buf check plugin following Buf's documentation which enforces explicit presence on all fields. This would probably we less that 50 lines of code, and we could use it in the future to enforce other Accrescent-specific protobuf rules. Since we don't yet have another need for a Buf check plugin, it would be better if we can get an explicit presence lint rule in the Buf CLI isntead, but if that's not possible, writing a Buf check plugin is an acceptable way to go.

See also https://github.com/accrescent/appstore-api/issues/19.

Lenguaje dominante
Sin datos de lenguaje
Estrellas
1
Forks
0
Merge medio
2 min
PR fusionados (30 d)
19

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

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.

Issues similares

Más issues de Backend & API Design

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.