Релизные теги v0.10.0–v0.13.0 не запушены: пин из README не резолвится у консьюмера #16

Closed
opened 2026-08-27 11:56:00 +07:00 by claude-secretary · 1 comment

Найдено при ревью #7 и #13.

git ls-remote --tags origin заканчивается на v0.9.1. При этом pyproject.toml в main уже 0.13.0, README (## Подключение) предлагает rev: v0.13.0, а examples/.pre-commit-config.example.yamlv0.12.0.

Последствие прямое: консьюмер, скопировавший пример из README, получает от pre-commit ошибку резолва рева — тега на remote нет. Всё, что вышло после v0.9.1 (no-broad-except, строгий формат TODO(#N), переносимость хуков за пределы Python, tokenize-разбор комментариев, grandfather от merge-base), фактически не выпущено: подключить это можно только пином на ветку или на sha.

Что нужно

Проставить и запушить недостающие теги на соответствующие коммиты main:

Тег Коммит
v0.10.0 7815de1 (chore: bump version to 0.10.0)
v0.11.0 коммит, где pyproject.toml стал 0.11.0
v0.12.0 3643118 (merge #12)
v0.13.0 d263dab (merge #15)

Тег — релизное действие, поэтому за @volody; сам не ставлю. Дальше по мере мержа очереди PR теги нужны и на v0.14.0 (#7) и v0.15.0 (#13).

Заодно

Стоит решить, откуда берётся тег: сейчас версия живёт в pyproject.toml, а тег ставится руками, и рассинхрон никем не ловится. Проверка «версия в pyproject.toml имеет одноимённый тег» — кандидат в CI-шаг того же workflow, что гоняет smoke.

Найдено при ревью [#7](https://git.homedevlab.ru/senokosov/pre-commit-hooks/pulls/7) и [#13](https://git.homedevlab.ru/senokosov/pre-commit-hooks/pulls/13). `git ls-remote --tags origin` заканчивается на **`v0.9.1`**. При этом `pyproject.toml` в `main` уже `0.13.0`, README (`## Подключение`) предлагает `rev: v0.13.0`, а `examples/.pre-commit-config.example.yaml` — `v0.12.0`. Последствие прямое: консьюмер, скопировавший пример из README, получает от pre-commit ошибку резолва рева — тега на remote нет. Всё, что вышло после `v0.9.1` (`no-broad-except`, строгий формат `TODO(#N)`, переносимость хуков за пределы Python, `tokenize`-разбор комментариев, grandfather от merge-base), фактически не выпущено: подключить это можно только пином на ветку или на sha. ## Что нужно Проставить и запушить недостающие теги на соответствующие коммиты `main`: | Тег | Коммит | |---|---| | `v0.10.0` | `7815de1` (`chore: bump version to 0.10.0`) | | `v0.11.0` | коммит, где `pyproject.toml` стал `0.11.0` | | `v0.12.0` | `3643118` (merge [#12](https://git.homedevlab.ru/senokosov/pre-commit-hooks/pulls/12)) | | `v0.13.0` | `d263dab` (merge [#15](https://git.homedevlab.ru/senokosov/pre-commit-hooks/pulls/15)) | Тег — релизное действие, поэтому за @volody; сам не ставлю. Дальше по мере мержа очереди PR теги нужны и на `v0.14.0` ([#7](https://git.homedevlab.ru/senokosov/pre-commit-hooks/pulls/7)) и `v0.15.0` ([#13](https://git.homedevlab.ru/senokosov/pre-commit-hooks/pulls/13)). ## Заодно Стоит решить, откуда берётся тег: сейчас версия живёт в `pyproject.toml`, а тег ставится руками, и рассинхрон никем не ловится. Проверка «версия в `pyproject.toml` имеет одноимённый тег» — кандидат в CI-шаг того же workflow, что гоняет smoke.
Author
Owner

Теги проставлены и запушены (volody разрешил делать это самому).

Тег Коммит Что вышло
v0.10.0 7815de1 no-broad-except
v0.11.0 3530435 Переносимость хуков за пределы Python, строгий TODO(#N)
v0.12.0 3643118 tokenize-разбор комментариев, общий слой comment_scan
v0.13.0 d263dab check-file-length: grandfather от merge-base
v0.14.0 7cd72ce max-filename-words
v0.15.0 7b985a3 ast-разбор приватных импортов и вызовов
v0.16.0 4ac10b8 no-plan-stage-refs
v0.17.0 c13abd8 no-session-marks-in-code на фронте
v0.18.0 ef6d9d3 Исключения check-file-length на любой глубине, BOM в no-broad-except

Точка каждого тега выбрана по first-parent истории main: это merge-коммит соответствующего PR, и pyproject.toml на нём несёт ровно эту версию — проверено для всех девяти. Теги аннотированные, с описанием релиза.

v0.9.2 намеренно пропущена: версия просуществовала один коммит (6dab956) и была поднята до 0.10.0 следующим же (7815de1), релиза под этим номером не было — тег создавал бы впечатление выпуска, которого не случилось.

Пин rev: v0.18.0 из README теперь резолвится. Что стоит сделать дальше — второй пункт задачи: сверку «версия в pyproject.toml имеет одноимённый тег» как шаг того же CI-workflow, что гоняет smoke. Иначе рассинхрон накопится снова — он и накопился на девять версий именно потому, что его никто не ловил. Заведу отдельной задачей.

Теги проставлены и запушены (volody разрешил делать это самому). | Тег | Коммит | Что вышло | |---|---|---| | `v0.10.0` | `7815de1` | `no-broad-except` | | `v0.11.0` | `3530435` | Переносимость хуков за пределы Python, строгий `TODO(#N)` | | `v0.12.0` | `3643118` | `tokenize`-разбор комментариев, общий слой `comment_scan` | | `v0.13.0` | `d263dab` | `check-file-length`: grandfather от merge-base | | `v0.14.0` | `7cd72ce` | `max-filename-words` | | `v0.15.0` | `7b985a3` | `ast`-разбор приватных импортов и вызовов | | `v0.16.0` | `4ac10b8` | `no-plan-stage-refs` | | `v0.17.0` | `c13abd8` | `no-session-marks-in-code` на фронте | | `v0.18.0` | `ef6d9d3` | Исключения `check-file-length` на любой глубине, BOM в `no-broad-except` | Точка каждого тега выбрана по first-parent истории `main`: это merge-коммит соответствующего PR, и `pyproject.toml` на нём несёт ровно эту версию — проверено для всех девяти. Теги аннотированные, с описанием релиза. `v0.9.2` намеренно пропущена: версия просуществовала один коммит (`6dab956`) и была поднята до `0.10.0` следующим же (`7815de1`), релиза под этим номером не было — тег создавал бы впечатление выпуска, которого не случилось. Пин `rev: v0.18.0` из README теперь резолвится. Что стоит сделать дальше — второй пункт задачи: сверку «версия в `pyproject.toml` имеет одноимённый тег» как шаг того же CI-workflow, что гоняет smoke. Иначе рассинхрон накопится снова — он и накопился на девять версий именно потому, что его никто не ловил. Заведу отдельной задачей.
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
senokosov/pre-commit-hooks#16
No description provided.