Skip to content

deps(uv): make uv-lock-cooldown (manual lock z 3-dniowym cooldownem)#178

Merged
mpasternak merged 1 commit into
devfrom
security/uv-lock-cooldown
Apr 27, 2026
Merged

deps(uv): make uv-lock-cooldown (manual lock z 3-dniowym cooldownem)#178
mpasternak merged 1 commit into
devfrom
security/uv-lock-cooldown

Conversation

@mpasternak
Copy link
Copy Markdown
Member

Podsumowanie

PR 6/12 z serii pypi-security-best-practices — praktyka #2: Install with Cooldown.
Defense-in-depth do Dependabot cooldown z PR #175.

Co się zmienia

Makefile:

  • Nowy target uv-lock-cooldown — uruchamia uv lock --exclude-newer <today-3d>.
  • Pakiety in-house *-iplweb zwolnione z cooldownu via --exclude-newer-package.
  • Override przez env var: make uv-lock-cooldown CUTOFF=2026-04-20T00:00:00Z.

Dlaczego osobny target a nie globalna konfiguracja

uv 0.9.x nie wspiera ISO 8601 duration syntax w [tool.uv] exclude-newer
trzeba absolutną datę. Globalny exclude-newer = "2026-04-20" w pyproject
musiałby być rotowany ręcznie, co po tygodniu staje się bezsensowne.

Target z dynamicznym obliczaniem daty przez date (GNU + BSD compatible) to
najczystsze rozwiązanie póki uv nie wspiera duration.

Pakiety in-house exempt

*-iplweb to pakiety publikowane przez ten sam team co BPP. Cooldown na
nie nie ma sensu (atak na konto teamu uderzyłby je tak czy tak), a świeże
releasy są często load-bearing (django-redis-iplweb>=6.0.1,<6.1 testowo
falował resolution bez exempta).

Plan testowy

  • make uv-lock-cooldown — passes (uv lock z cutoff działa).
  • BSD date -v-3d na macOS, GNU date -d '3 days ago' na Linux — oba
    branche pokryte.
  • Manual: po dodaniu nowej dep, dev wybiera make uv-lock (no cooldown,
    np. dla emergency hotfix) lub make uv-lock-cooldown (default).

Następne kroki

Gdy uv >=1.x doda duration syntax w exclude-newer, zamigrujemy globalnie
do [tool.uv] i usuniemy target z Makefile.

🤖 Generated with Claude Code

…lock

Praktyka #2 z lirantal/pypi-security-best-practices (Install with Cooldown).

PR #175 dodal cooldown w Dependabot - automatyczne updaty czekaja 3 dni
zanim trafia do nas jako PR-y. Ten target dodaje rownowazne zabezpieczenie
przy MANUAL `uv lock` (np. po dodaniu nowej dep przez deva).

uv 0.9.x nie wspiera ISO 8601 duration w `--exclude-newer` (tylko
absolutna data) - dlatego target oblicza date dynamicznie przez `date`.
GNU date i BSD date maja rozne flagi - target wspiera oba.

Pakiety in-house (*-iplweb) zwolnione przez --exclude-newer-package=
<pkg>=<2099-01-01>: cooldown na nie nie ma sensu (atak na konto teamu
co publikuje BPP uderzylby je tak czy tak), a swieze releasy sa czesto
load-bearing (dziala to jako blocker resolution).

Uzycie:
  make uv-lock-cooldown                    # default 3 dni
  make uv-lock-cooldown CUTOFF=2026-04-20T00:00:00Z  # custom cutoff
@mpasternak mpasternak merged commit 41ada04 into dev Apr 27, 2026
9 checks passed
@mpasternak mpasternak deleted the security/uv-lock-cooldown branch April 28, 2026 15:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant