googleapis / googleapis/google-cloud-python

automated release fails due to missing PyPI history anchor

Abierto
#16,188 2 comentarios 2 reacciones 1 asignado Reclamado por @gkevinzheng Ver en GitHub
Lenguaje dominante
Python
Estrellas
5.4k
Forks
1.8k
Merge medio
3 d 4 h
PR fusionados (30 d)
122

Descripción

### Description

The release automation script (`cli.py`) fails with a `ValueError` when trying to update a library's `CHANGELOG.md` if the file doesn't use the exact hardcoded PyPI history anchor. This blocks releases for any package that has a malformed or missing header.

### Affected Code

In `.generator/cli.py` (lines 1533-1540):

```python
anchor_pattern = re.compile(
rf"(\[1\]: https://pypi\.org/project/{library_id}/#history)",
re.MULTILINE,
)
...
if num_subs == 0:
raise ValueError("Changelog anchor '[1]: ...#history' not found.")
```

### Root Cause

The regular expression is too strict:
1. It expects `[1]:` literally. If a package uses `[2]:` or similar, it fails.
2. It expects the PyPI project name to match the folder name `{library_id}` exactly.
3. It has strict spacing requirements.

### Proposed Solution

Make `_process_changelog` more robust by:
- Falling back to a less strict regex (e.g., searching for any link containing `pypi.org/project/` and `#history`).
- If no anchor is found, auto-prepend it to the file instead of raising a fatal error.

### Culprit Found

During investigation, `packages/google-cloud-documentai-toolbox/CHANGELOG.md` was found to be missing this anchor, which was blocking its release. I will create a PR to add this shortly.

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.