fix(deps): raise dep floors past known vulns #2
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/deps-security"
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?
Summary
Clear the known vulnerabilities reported by
pip-auditin the runtime and dev dependencies.Runtime (
pyproject.toml)As a library, gptscript should not hard-pin its dependencies with
==, because that forces exact versions on every consumer and blocks their security updates. The runtime deps are now lower bounds at fixed-or-newer versions:==3.7>=3.15==2.32.5>=2.33.0==2.6.2>=2.8.0,<3==0.27.0>=0.27.0,<1==2.12.5>=2.12.5,<3==>=(same version)requires-python = ">=3.10". requests 2.33+ and urllib3 2.8+ already need it, and the code usesX | Noneannotations.<1for httpx,<3for urllib3 and pydantic) guard against known-breaking major lines only.Dev (
requirements.txt,lock.txt)wheel0.45.1 -> 0.48.0 (wheel.wheelfile.WheelFile, used byscripts/package, still exists)lock.txtregenerated withuv pip compilefor Python 3.12 (the CI version) on Linux. Notable changes: cryptography 46.0.3 -> 50.0.2, filelock 3.20.0 -> 4.2.2, virtualenv 20.35.4 -> 21.14.11, pygments 2.19.2 -> 2.21.0, jaraco-context 6.0.1 -> 6.1.2, idna 3.11 -> 3.20, requests 2.32.5 -> 2.34.2, urllib3 2.6.2 -> 2.8.0. The lock now also listsbuild,pyproject-hooksandwheel, which it was missing. Top-level pins (tox 4.14.1, twine 6.2.0, build 1.3.0, pydantic, uvicorn, tqdm) are unchanged.The gptscript binary version (v0.9.10) is unchanged.
Audit (
uvx pip-audit)pip-audit .(runtime, pyproject)idna==3.15,requests==2.33.0,urllib3==2.8.0,httpx==0.27.0, ...)pip-audit -r requirements.txt(dev)Verification
requirements.txtrunstox4.14.1 against virtualenv 21 and filelock 4 without problems. The tox env resolves the new ranges to the latest releases (httpx 0.28.1, pydantic 2.14.1, requests 2.34.2, urllib3 2.8.0, uvicorn 0.54.0).install_gptscriptfetches v0.9.10 from the Forgejo release.version,load_*,parse_*,fmt*,credentials, localworkspacetests): 16 passed, 3 skipped (S3 tests need AWS). The full suite needs provider keys and is skipped in CI without them.python -m buildandtwine check dist/*: PASSED.