Proceso de liberación de Celo Oracles
Detalles del proceso de actualización de los Oráculos Celo para el Protocolo de Estabilidad Mento.
Versionamiento
Las liberaciones se efectúan en función de las necesidades. Las versiones se numeran según el versionado semántico, tal como se describe en semver.org.
Las compilaciones de desarrollo deben identificarse con un sufijo -dev
, y sólo debe existir un commit con una versión liberada x.y.z
para cualquier (x, y, z)
. Las versiones candidatas deben identificarse con un sufijo -rCX
, donde X es la versión de la versión candidata.
Documentación
La documentación se mantiene en el repositorio celo-org/docs y está alojada en docs.celo.org.
Identificando lanzamientos
Ramas de Git
El código para el cliente se almacena en el repositorio Celo Oracles GitHub. El desarrollo se realiza en la rama main
, que corresponde a la siguiente versión mayor o menor.
Etiquetas de Git
Cada versión debe crearse en Github y etiquetarse con el número de versión, por ejemplo X.Y.Z
. Cada versión debe incluir un resumen de su contenido, con enlaces a pull requests e incidencias y una descripción detallada de los cambios más destacados. Las etiquetas deben ser etiquetas anotadas.
Las etiquetas deben estar firmadas y pueden verificarse con el siguiente comando.
git verify-tag vX.Y.Z
En Github, cada etiqueta de lanzamiento debe tener firmas adjuntas que se pueden utilizar para verificar las imágenes Docker.
Etiquetas Docker
Las imágenes Docker se almacenan en el repositorio us-west1-docker.pkg.dev/celo-testnet-production/celo-oracle
, almacenado en Google Cloud Platform Artifact Registry. Los commits se etiquetan con celo-oracle-X.Y.Z
y celo-oracle-<commithash>
. Al igual que una etiqueta Git apunta inmutablemente a un hash de commit, la etiqueta Docker debería apuntar inmutablemente a un hash de imagen.
Probando
Además de las pruebas automatizadas de CI, se espera que todas las versiones se sometan a pruebas manuales según sea necesario para verificar las propiedades de seguridad, la exactitud de la documentación y la compatibilidad con la configuración de producción actual de los operadores de nodos.
Proceso de promoción
Los cambios de rama seleccionados se añadirán a una rama protegida releases
. Al fusionar código a esta rama, el número de versión debe actualizarse en consecuencia.
Control de las fuentes
Distribución
Fecha | Acción |
T-1w |
|
T |
|
T+1w en adelante |
|
Parches de emergencia
Las correcciones de seguridad o hotfixes pueden no llevar asociado un commit público en caso de que sea necesario parchear la vulnerabilidad antes de divulgarla al público en general para evitar que un atacante explote una vulnerabilidad antes de que los operadores parcheen sus servicios. Los parches de emergencia se distribuirán utilizando el mismo método descrito en Etiquetas Git
Revelación de vulnerabilidades
Las vulnerabilidades en los Oráculos Celo deben ser reveladas de acuerdo con la política de seguridad.