Release runs create no Git tags since 3.34.3

Abierto
#4,167 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 2 días

@anth-volk ya está trabajando en esto.

Desde el 3/11/2026.

  • #4168 de @anth-volk — abierto

Evaluación

Dificultad
3/5
Tiempo estimado
Medio día
Aptitud para principiantes
45/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
bash, git, github-actions, python, yaml
Área
ci-cd, cloud

Línea de trabajo

Start with .github/publish-git-tag.sh and the "Publish Git Tag" job in push.yml, then read pyproject.toml for the [project] version. The .github/scripts ci-scripts guard shows how the new script and its tests in tests/unit must be set up. Done when the script reads the version from pyproject.toml, creates and pushes only the tag for this commit, and a rerun on the same commit passes.

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

Descripción

Problem

The "Publish Git Tag" job in push.yml runs .github/publish-git-tag.sh on each release commit:

git tag `python setup.py --version`
git push --tags || true  # update the repository version

It hasn't created a tag since 3.34.3 (release e81ed3db, 2026-02-24), but the job passes on every release. On release run 41723443801 it logged:

python: can't open file '/home/runner/work/policyengine-api/policyengine-api/setup.py': [Errno 2] No such file or directory
Everything up-to-date
  • setup.py was removed on 2026-03-06 (#3319); the version is in [project] in pyproject.toml.
  • With no version, the script runs a bare git tag, which lists tags and exits 0. git push --tags then has nothing to push, and || true would hide a failure anyway. The script has no set -e, so it exits 0.
  • Tagging stopped before setup.py was removed. Commit 1e182346 (2026-02-24) moved the step to Python 3.12, which setup-python ships without setuptools, and setup.py began with from setuptools import setup. The job installs nothing before the step. (Inferred: the February job logs are no longer available.)

The script is outside .github/scripts, so the ci-scripts guard doesn't run shellcheck on it or require a test for it.

Proposal

  • Move the script to .github/scripts/publish_git_tag.sh, so the ci-scripts guard covers it, with tests in tests/unit.
  • Read the version from [project] in pyproject.toml, and fail if it's missing or isn't a release version.
  • Create a tag on the release commit named after the version, as the existing tags are (3.34.3), and push only that tag.
  • If the tag already exists on the remote and names this commit, succeed without changes, so a rerun of a release passes. If it names a different commit, fail.
  • Run with set -euo pipefail, without || true.

The releases from 3.35.0 to the current version have no tags. Whether to create those afterwards is a separate decision.

Lenguaje dominante
Python
Estrellas
18
Forks
33
Merge medio
2 d 21 h
PR fusionados (30 d)
88

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 PolicyEngine/policyengine-api

Todos los issues de PolicyEngine/policyengine-api

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.