ci: reproducible builds with SOURCE_DATE_EPOCH
Los mantenedores suelen responder en 4 días
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 68/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bien especificado
- Estado de actividad
- Tranquilo
- Stack tecnológico
- git, python
- Área
- build-system, release
Línea de trabajo
Empieza leyendo scripts/apache_release.py para seguir la ruta de compilación de la versión e inspecciona scripts/README.md para consultar la documentación de compilación existente. Añade cobertura para una recompilación de un commit etiquetado y verifica que los artefactos generados repetidamente tengan sumas de comprobación coincidentes; se considera terminado cuando SOURCE_DATE_EPOCH se establece a partir de la etiqueta antes de la compilación y la reproducibilidad queda documentada.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Part of #715
Problem
Our build artifacts are not reproducible. Building the same source twice may produce different checksums due to timestamps embedded in the tarball/wheel metadata. This makes voter verification harder and prevents bit-for-bit comparison of locally rebuilt packages against the RC artifacts.
Solution
Set SOURCE_DATE_EPOCH to the timestamp of the tagged commit before building. This ensures all file timestamps inside the archive are deterministic.
Airflow does this in their release tooling and it allows voters to rebuild from source and binary-compare against the SVN artifacts.
Implementation
- In
scripts/apache_release.py, before callinghatch buildorpython -m build:import subprocess epoch = subprocess.check_output(["git", "log", "-1", "--format=%ct", tag]).strip() os.environ["SOURCE_DATE_EPOCH"] = epoch.decode() - Document in
scripts/README.mdthat builds are reproducible - Add a test that rebuilds from a tagged commit and compares checksums
References
- Python reproducible builds
- PEP 552 (deterministic .pyc)
- Airflow's implementation in
breeze release-management prepare-airflow-distributions
- Lenguaje dominante
- Python
- Estrellas
- 2.6k
- Forks
- 212
- Merge medio
- 5 d 14 h
- PR fusionados (30 d)
- 39
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 apache/burr
-
Notebook UI launcher should use the current Python interpreterPosiblemente ocupada @sivakumar-mahalingam la tomó hace 15 días. Abiertostatus/needs-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
Los mantenedores suelen responder en 4 días
-
astep() passes unprocessed inputs to pre_run_step hooksPosiblemente ocupada @sivakumar-mahalingam la tomó hace 15 días. Abiertostatus/needs-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 4 días
-
`burr` fails to start when the Python path has a space in itPosiblemente ocupada @enekoreto la tomó hace 18 días. Abiertostatus/needs-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 4 días
-
Add more instructions for applying ORM migrations for S3 deploymentPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abiertoarea/storage area/ui help wanted kind/documentation priority/low
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
apache/burr#524 · 11 comentarios ·
Los mantenedores suelen responder en 4 días
-
Add documentation on how to run the Burr UI serverPosiblemente ocupada @enu-emu la tomó hace 138 días. Abiertoarea/ui good first issue kind/documentation priority/low
Dificultad 2/5 Medio día Aptitud para principiantes 68/100
apache/burr#272 · 5 comentarios ·
Los mantenedores suelen responder en 4 días
Todos los issues de apache/burr
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
earthtojake/text-to-cad#758 ·
Los mantenedores suelen responder en 1 día
-
domain:upgrades enhancement needs-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
gke-labs/kube-agents#4634 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
agardnerIT/opamp-server-py#116 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
enhancement good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
elviskahoro/sdk-python-attio#144 · 1 comentario ·
Los mantenedores suelen responder en 1 día