Skip to content

chore(tests): refresh fixture lockfiles to clear Dependabot alerts#40

Merged
MAfarrag merged 4 commits into
mainfrom
chore/refresh-test-fixture-locks
Jul 22, 2026
Merged

chore(tests): refresh fixture lockfiles to clear Dependabot alerts#40
MAfarrag merged 4 commits into
mainfrom
chore/refresh-test-fixture-locks

Conversation

@MAfarrag

@MAfarrag MAfarrag commented Jul 22, 2026

Copy link
Copy Markdown
Member

Description

Refresh the committed test-fixture dependency lock files to patched versions, clearing the Dependabot alerts on
main (107 open: 1 critical, 41 high, 54 medium, 11 low). Every alert was in a tests/data/**/uv.lock (or one
requirements.txt) — the pinned dependency trees of the minimal test projects that exercise the composite actions in
CI. No composite action, workflow, or shipped artifact is changed; the actions bundle no dependencies, so nothing
here reaches consumers.

The fixtures must keep committed lock files (the actions consume them via uv sync --frozen), so this refreshes
them rather than removing them.

What changed:

  • Surgical uv lock --upgrade-package for only the flagged packages (urllib3, idna, requests, mistune,
    jupyter-server, tornado, jupyterlab, bleach, pygments, pytest, black, notebook, soupsieve,
    setuptools, pymdown-extensions), so commitizen, mkdocs and the other tested tools stay at their current
    versions. Patched versions include the critical jupyter-server 2.20.0, plus urllib3 2.7.0, requests 2.34.2,
    idna 3.18, pygments 2.20.0.
  • Bumped requests in the one requirements.txt fixture.
  • Re-locked test-custom-configuration for Python 3.11 to keep its requires-python floor (that fixture declares no
    requires-python, so an unconstrained uv lock narrowed it to the locking machine's Python).

On merge, Dependabot re-scans the default branch and the alerts auto-close.

Issues

The Dependabot alerts themselves also resolve automatically once the patched locks are on main.

Type of change

Check relevant points.

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

How Has This Been Tested?

Verified on the branch via the repo's own CI workflows:

  • test-mkdocs-deploy — 42/42 jobs pass (incl. the notebook fixture that executes Jupyter with the new
    jupyter-server, and the Python 3.11/3.12 custom-configuration + version-matrix jobs).
  • test-release/github — pass (the release fixtures, cz bump/changelog with the upgraded transitive deps).
  • test-python-setup/pip (the requirements.txt fixture) and test-python-setup/pixi — pass.
  • test-release/pypi — intentionally not dispatched (its workflow_dispatch path performs real TestPyPI uploads);
    it runs on merge to main.
  • Locally: every refreshed lock is consistent with its pyproject.toml (uv lock --check), and uv sync --frozen
    was verified on Python 3.11 and 3.12 for the re-locked fixture.

Checklist:

  • updated version number in pyproject.toml. — N/A: test-fixture-only change; no repo version.
  • added changes to History.rst. — N/A: repo has no History.rst.
  • updated the latest version in README file. — N/A: no version bump.
  • I have added tests that prove my fix is effective or that my feature works. — The existing test-*.yml suites
    already exercise every fixture; they pass with the upgraded locks. No new tests needed.
  • New and existing unit tests pass locally with my changes. — Verified green in CI (see above).
  • documentation are updated. — N/A: no user-facing change.

MAfarrag added 4 commits July 22, 2026 01:10
Refresh the committed test-fixture uv.lock files (and one requirements.txt)
to pull patched versions of the transitive dependencies flagged by Dependabot
(urllib3, idna, requests, mistune, jupyter-server, tornado, jupyterlab, bleach,
pygments, pytest, black, notebook, soupsieve, setuptools, pymdown-extensions).

Surgical uv lock --upgrade-package for only the flagged packages, so commitizen,
mkdocs and the other tested tools stay at their current versions. Every lock stays
consistent with its pyproject.toml (uv lock --check passes). The fixtures still
need committed locks (the actions verify/consume them), so this refreshes rather
than removes them. All 107 alerts were in tests/data fixtures only, never in the
composite actions.
…3.11

This fixture's pyproject.toml declares no requires-python, so uv lock defaults
the floor to the locking machine's Python. The dependency refresh was run on
Python 3.12, which narrowed the lock to requires-python >=3.12 and broke the
Python 3.11 matrix jobs (uv sync --frozen: 'not compatible with locked >=3.12').
Re-lock with --python 3.11 to restore the >=3.11 floor (matching origin/main)
while keeping the security upgrades; uv sync --frozen verified on 3.11 and 3.12.
The fixture's pyproject.toml declared no requires-python, so uv derived it from
the locking machine's interpreter: locking on 3.12 narrowed the lock to >=3.12 and
broke the Python 3.11 test matrix leg (the symptom fixed by pinning in a5fb561).
Declare requires-python = '>=3.11' explicitly so the lock's floor is deterministic
regardless of the locking interpreter; uv lock --check now passes on both 3.11 and
3.12, and the manual pin is no longer load-bearing. No package versions change.
@MAfarrag
MAfarrag merged commit 3bd350f into main Jul 22, 2026
107 checks passed
@MAfarrag
MAfarrag deleted the chore/refresh-test-fixture-locks branch July 22, 2026 17:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant