📦 Dependency management: requests>=2.32.4 floor + self-hosted Renovate #13
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "chore/deps-management"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Dependency management: fix the policy + add a Renovate bot
Fixes the library's dependency policy and adds automated dependency maintenance. This was the "point 22" item from the client audit.
Why
Two contradicting sources of truth:
setup.pydeclared an unpinnedrequests, whilerequirements.txthard-pinnedrequests==2.31.0— a version affected by CVE-2024-35195 and CVE-2024-47081. A hard==pin is an application pattern; a library should declare a floor and let consumers resolve.What changed
c99d640— Migrate packagingsetup.py→pyproject.toml(PEP 621).requests>=2.32.4(clears both CVEs;2.32.4is the exact release the.netrcleak was fixed in, and it does not over-constrain consumers such as the Home Assistant integration).requires-python = ">=3.9"+ classifiers 3.9–3.12 — codifies the Python range CI already tests (the oldsetup.pyclassifiers listed EOL 3.6–3.9 and nopython_requires).comwatt_client*, so the wheel no longer ships thetestspackage (the old barefind_packages()did).versionstays0.2.3; name, readme, authors preserved. Public API unchanged.6b13b58— Removerequirements.txt; repoint CI. Its only content (the==pin) is now the packaging floor. Both.forgejo/and.github/test workflows now install-r requirements-dev.txtand getrequestsviapip install -e ..requirements-dev.txtis untouched.4e3353a— Self-hosted Renovate bot (Forgejo).renovate.json: extendsconfig:recommended, enablesosvVulnerabilityAlerts(OSV.dev — the platform-agnostic option; the GitHub-onlyvulnerabilityAlertsdoes nothing on Forgejo)..forgejo/workflows/renovate.yml: scheduled + manual, runsdocker.io/renovate/renovate:43withRENOVATE_PLATFORM: forgejoagainst this repo. No bot files under.github/(GitHub is a read-only push-mirror where such PRs would be dead-ends).Verification
python -m build→ clean wheel; metadata showsRequires-Dist: requests>=2.32.4,Requires-Python: >=3.9;testspackage excluded.renovate-config-validator→ Config validated successfully.24 passed.Manual follow-ups (maintainer — required for the bot to run)
renovate-botaccount Write access to this repo (Settings → Collaborators) — needed to push branches and open PRs.RENOVATE_TOKEN=renovate-bot's Forgejo PAT (scopes:repoRW,userR,issueRW,organizationR), as an account-level or repo-level Actions secret.RENOVATE_GH_COM_TOKEN= a github.com read-only PAT (no scopes) — avoids changelog rate-limiting. Note: Forgejo rejects secret names containingGITHUB, so it is stored asRENOVATE_GH_COM_TOKENand mapped to Renovate'sRENOVATE_GITHUB_COM_TOKENenv var in the workflow.docker.io/renovate/renovate:43and supportscontainer:jobs (else adjustruns-on).LOG_LEVEL: debug.Out of scope (noted, not changed)
[project.urls] Homepagestill points at the GitHub mirror (inherited fromsetup.py). Other audit items (README import bug, typed exceptions, request timeouts,get_site_time_series) are tracked separately.