cooldown-guard
cooldown-guard makes uv cooldown exceptions auditable, narrow, and easy to clean up.
it is built around four ideas:
- keep global
exclude-neweron - allow temporary package-specific exceptions for emergency fixes
- pin the exception with
constraint-dependencies - automatically relax the exception once the normal cooldown window catches up
what it writes
given a project like:
[tool.uv]
exclude-newer = "7 days"
an approval like:
cooldown-guard approve urllib3==2.7.0 \
--project /path/to/repo \
--approved-by alice \
--reason "security fix" \
--advisory CVE-2026-12345 \
--introduced-via requests \
--introduced-via types-tqdm
will update the target pyproject.toml to look like:
[tool.uv]
exclude-newer = "7 days"
exclude-newer-package = { urllib3 = "2026-05-07T16:13:18Z" }
constraint-dependencies = ["urllib3==2.7.0"]
and create a .cooldown-guard.toml ledger beside it.
commands
cooldown-guard approve <package>==<version>: add a narrow exception and runuv lockcooldown-guard validate: verify that the ledger andpyproject.tomlagreecooldown-guard status: show active and cleaned exceptionscooldown-guard cleanup --check: test whether an active exception can now be relaxed from==to>=cooldown-guard cleanup --apply: apply that relaxation and runuv lock
ci
the repo includes:
- .github/workflows/ci.yml: tests the tool itself
- .github/workflows/publish-release.yml: builds and uploads release assets, including a linux x86_64 standalone binary and sha256 checksum
- .github/workflows/release-drafter.yml: labels prs from conventional commits and maintains a draft github release
- examples/github-actions/validate.yml: consumer-side validation on pull requests
- examples/github-actions/reconcile.yml: nightly cleanup that can open a pull request
the example workflows download the linux x86_64 release binary from github releases and verify it with a pinned sha256 checksum before running it.
release flow
- release drafts are maintained by release-drafter
- github release assets are uploaded by .github/workflows/publish-release.yml
- pypi publish happens from .github/workflows/publish-pypi.yml using github oidc trusted publishing
- the publish workflow refuses to run unless the github release tag matches
v<project.version>frompyproject.toml
for automation, prefer the github release binary over runtime resolution from pypi. pin both:
COOLDOWN_GUARD_VERSIONCOOLDOWN_GUARD_SHA256
for pypi trusted publisher setup, register:
- owner:
ischemist - repository:
cooldown-guard - workflow:
publish-pypi.yml - environment:
pypi
notes
approved_byis audit metadata, not authorization. real authorization should still come from codeowners, branch protection, and normal review policy.- the tool shells out to
uv lockinstead of reimplementing resolution. - v1 intentionally targets the common case where the repo-level
exclude-neweris a duration like"7 days".
Metadata
Release files for cooldown-guard 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| cooldown_guard-0.1.2.tar.gz | 46.0 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cooldown_guard-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 57.1 kB
Release files / cooldown_guard-0.1.2.tar.gz
| Download URL | cooldown_guard-0.1.2.tar.gz |
|---|---|
| Size | 46.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fc6391128a2e4f0058443a2f5e99ad63ca96aca9dcd1cc73d254c95887c1c87a
|
|
BLAKE2b-256 checksum How to use checksums |
789f5480242a12e40c0cbc72bea581ce432dd4a16d974becebce2095f11d113d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / cooldown_guard-0.1.2-py3-none-any.whl
| Download URL | cooldown_guard-0.1.2-py3-none-any.whl |
|---|---|
| Size | 11.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
54df4a70abff33f5a71014a06aae2dded2fa115970ff68055eb2a37dc8995705
|
|
BLAKE2b-256 checksum How to use checksums |
5b1f1d1a62c6d42e7686738e79494cea2c6d149e9496e38a88e902251dc16bb1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for cooldown-guard 0.1.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.