Release process automation and maturity

Abierto
#715 9 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 4 días

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
Bastante claro
Estado de actividad
Tranquilo
Stack tecnológico
python

Línea de trabajo

Comienza con scripts/apache_release.py y scripts/verify_apache_artifacts.py; después revisa el proceso de release de 0.42.0 en #678 y las subincidencias enumeradas. Identifica qué pasos manuales siguen siendo necesarios en la creación de RC, la promoción, las ramas, los backports, las compilaciones reproducibles, las notas de release y las herramientas de correo electrónico; el trabajo estará terminado cuando los objetivos del release estén cubiertos por una automatización fiable.

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

Descripción

area/ci help wanted kind/umbrella priority/high
Context

The 0.42.0 release process (#678) exposed several manual steps and gaps in our release tooling. While the current scripts/apache_release.py handles the basics (build, sign, SVN upload, vote template), there is no automation for RC promotion, release branches, backports, reproducible builds, or release notes.

Looking at how other Apache projects (especially Airflow) handle releases, there are clear improvements we can adopt to make the process more reliable and less error-prone.

Current state
  • scripts/apache_release.py handles build, GPG signing, SHA-512 checksums, and SVN upload
  • scripts/verify_apache_artifacts.py handles voter verification
  • Vote email template is generated but sent manually
  • RC promotion from dist/dev to dist/release is fully manual
  • No release branches, no backport automation, no reproducible builds
Goals
  1. Make cutting an RC a single-command operation
  2. Make promoting a passed RC to final release a single-command operation
  3. Introduce release branches for safe cherry-picking during vote periods
  4. Automate release notes generation
  5. Ensure builds are reproducible (bit-for-bit identical from same source)
Sub-issues
  • #716 Reproducible builds with SOURCE_DATE_EPOCH
  • #717 RC promotion script (SVN dev -> release)
  • #718 Release branch model (vX.Y-test + vX.Y-stable)
  • #721 Auto-backport workflow for release branches
  • #723 Release notes automation
  • #720 Voter verification improvements
  • #719 Vote and announcement email tooling
  • #722 Milestone management workflow
  • #747 Release CI follow-ups: tighter coverage
Lenguaje dominante
Python
Estrellas
2.6k
Forks
212
Merge medio
5 d 14 h
PR fusionados (30 d)
39

Preparar el entorno

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.

Más de apache/burr

Todos los issues de apache/burr

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.