Skip to content

🐛 fix(cooled-prek): parse static f-string pins - #61

Merged
gaborbernat merged 2 commits into
mainfrom
fix/cooled-typos-fstring
Nov 10, 2026
Merged

gaborbernat merged 2 commits into
mainfrom
fix/cooled-typos-fstring

Conversation

@gaborbernat

@gaborbernat gaborbernat commented Nov 10, 2026 •

Copy link
Copy Markdown
Member

virtualenv#3535 cannot install the bumped typos hook under the seven-day cooldown. The hook's pinned setup.py declares its PyPI dependency through a static f-string, which the shared workflow did not recognize. This affects maintainers of projects that use the shared cooldown workflow.

The cooldown reader now extracts static pins from hook package source and sets a per-package cutoff just after each pinned release's upload time. This lets the exact pin install under the seven-day cooldown. The reader does not execute the package source.

The three Bash helpers in tools/ handled cooled hooks, live tool installs, and pluralized output. They are now Python scripts, removing every Bash file from that directory. The cooldown reader's package metadata logic no longer lives inside a shell script. The locked-tools Action invokes the installer through its managed interpreter, so it does not depend on python3 being on PATH.

@gaborbernat gaborbernat added the bug Something isn't working label Nov 10, 2026
@gaborbernat
gaborbernat merged commit 9c46edb into main Nov 10, 2026
12 checks passed
@gaborbernat
gaborbernat deleted the fix/cooled-typos-fstring branch November 10, 2026 01:07
gaborbernat added a commit that referenced this pull request Nov 10, 2026
Windows builds that install release tools through `install-locked-tools`
fail at `📦 Install lock reader` since
[#61](#61) moved the
installer to Python:
[tox-dev/pipdeptree#884](tox-dev/pipdeptree#884)
lost all seven Windows wheel jobs to `failed to copy file ... to
C:\a\_temp\lock-reader\Scripts\python.exe: The process cannot access the
file`. 🐛 Linux and macOS jobs were unaffected.

The action ran the installer with the lock reader's own interpreter, and
the installer's first step recreates that same environment. Windows does
not let a running `python.exe` be replaced, so `uv venv` failed. The
installer now runs on a separate Python 3.15 and still installs into the
lock reader. On the Windows VM, the old invocation fails with `Access is
denied` while the new one installs `packaging`.
gaborbernat added a commit to tox-dev/pipdeptree that referenced this pull request Nov 10, 2026
Older cooldown workflows can reject a hook bump when its package pin is
a static f-string, even if the package meets the cutoff ([shared
fix](tox-dev/github-workflows#61)). pipdeptree's
CI calls the shared workflow for its hook gate; pinning that call to
[6.7.3](https://github.com/tox-dev/github-workflows/releases/tag/6.7.3)
gives maintainers the fix.
gaborbernat added a commit to tox-dev/python-sbom that referenced this pull request Nov 10, 2026
Older cooldown workflows can reject a hook bump when its package pin is
a static f-string, even if the package meets the cutoff ([shared
fix](tox-dev/github-workflows#61)).
python-sbom's CI calls the shared workflow for its hook gate; pinning
that call to
[6.7.3](https://github.com/tox-dev/github-workflows/releases/tag/6.7.3)
gives maintainers the fix.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant