fix(deps): unblock pip security updates#1321
Conversation
Greptile SummaryThis PR unblocks Dependabot security updates by raising the root meta-repo's Python floor from 3.8 to 3.9 (matching the existing release-workflow matrix) and removing the stale
Confidence Score: 5/5Safe to merge — changes are limited to the dev-environment lockfile and meta-repo constraints, with no functional code affected. The PR only modifies dependency constraints and the generated lockfile. Python 3.8 reached end-of-life in October 2024 and the release workflow already targets 3.9, so the floor bump is consistent with existing practice. The urllib3 removal is safe because the meta-repo never imports it directly. All lockfile changes (setuptools 82.0.1, pytest 8.4.2, pygments addition, narrowed backport markers) are mechanically correct outputs of poetry update under the new constraint. The outstanding pytest security update is explicitly acknowledged as not yet resolvable and is out of scope for this PR. No files require special attention. Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[pyproject.toml\npython = '^3.9'] --> B[poetry update\npytest setuptools]
B --> C{Dependency resolution}
C --> D[setuptools 75.2.0 → 82.0.1\n✅ security fix]
C --> E[pytest 8.3.3 → 8.4.2\n⚠️ 9.0.3 still unresolvable]
C --> F[urllib3 1.26.20\n🗑️ removed — pin dropped]
C --> G[pygments 2.20.0\n➕ new runtime dep of pytest 8.4.2]
D --> H[poetry.lock refreshed\ncontent-hash updated]
E --> H
F --> H
G --> H
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
flowchart TD
A[pyproject.toml\npython = '^3.9'] --> B[poetry update\npytest setuptools]
B --> C{Dependency resolution}
C --> D[setuptools 75.2.0 → 82.0.1\n✅ security fix]
C --> E[pytest 8.3.3 → 8.4.2\n⚠️ 9.0.3 still unresolvable]
C --> F[urllib3 1.26.20\n🗑️ removed — pin dropped]
C --> G[pygments 2.20.0\n➕ new runtime dep of pytest 8.4.2]
D --> H[poetry.lock refreshed\ncontent-hash updated]
E --> H
F --> H
G --> H
Reviews (1): Last reviewed commit: "fix(deps): unblock pip security updates" | Re-trigger Greptile |
|
Root cause was the packaging environment, not the Python floor bump itself. The previous lock refresh pulled in Local verification on the PR branch:
That now resolves |
What changed
^3.8to^3.9, matching the release workflow's Python 3.9 build matrix.urllib3 <2dependency. Nothing in the meta-repo importsurllib3, and the old CacheControl workaround is no longer useful here.poetry.lock, which removesurllib3from the locked dependency graph and updatessetuptoolsfrom75.2.0to82.0.1.Why
Dependabot security-update runs on
masterare failing withsecurity_update_not_possible:urllib3: latest resolvable1.26.20, fixed version2.7.0setuptools: latest resolvable75.2.0, fixed version78.1.1pytest: latest resolvable8.3.3, fixed version9.0.3This PR fixes the resolvable parts: it removes the unused
urllib3edge entirely and letssetuptoolsresolve past the fixed threshold.pyteststill resolves only to8.4.2after the Python 3.9 constraint update, so thepytest >=9.0.3security update is still not currently satisfiable through the normal Poetry resolver.Verification
poetry update pytest setuptoolspoetry check --lockpoetry run python -c "import pytest, setuptools; print(pytest.__version__); print(setuptools.__version__)"poetry show urllib3confirmsurllib3is no longer installed