Sweep deps, block prereleases, drop a withdrawn-advisory constraint, cut 2.7.1 - #119
Merged
Conversation
…cut 2.7.1 Dependency sweep: 16 stable packages including cdp-sdk 1.48.0, stripe 15.5.1, sentry-sdk 2.68.0, uvicorn 0.52.4, x402 2.20.0, ruff 0.16.4 and ty 0.0.73. No declared dependency range changed, so nothing reaches a consumer. Two pyproject changes worth their own lines: prerelease = "disallow". cdp-sdk, pytempo and x402 all require web3 with no upper bound, so a bare `uv lock --upgrade` walked onto web3 8.0.0b3 and dragged websockets 17 and solders 0.29 with it. A published SDK must not ship a beta to every consumer. Disallowing prereleases outright is the right shape here rather than pinning one package, because the same unbounded requirement exists on several transitives. Dropped constraint-dependencies = ["fastapi!=0.136.3"]. It cited MAL-2026-4750, which now sits in the OSSF malicious-packages `withdrawn/` directory, and fastar is a legitimate package that fastapi-cloud-cli 0.23.0 declares outright. The constraint also did not do what its comment claimed: fastar resolves into the tree regardless, since this repo is on fastapi 0.141.1. Re-locking left fastapi on 0.141.1, so nothing moved. uv.lock embeds the project's own version, so it is re-locked in the same commit. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Dependency sweep: 16 stable packages, including cdp-sdk 1.48.0, stripe 15.5.1,
sentry-sdk 2.68.0, uvicorn 0.52.4, x402 2.20.0, ruff 0.16.4 and ty 0.0.73. No
declared dependency range in
pyproject.tomlchanged, so nothing reaches aconsumer.
Two
pyproject.tomlchanges worth calling out on their own.prerelease = "disallow". cdp-sdk, pytempo and x402 all requireweb3withno upper bound, so a bare
uv lock --upgradewalked onto web3 8.0.0b3 anddragged websockets 17 and solders 0.29 along with it. A published SDK must not
ship a beta to every consumer. Disallowing prereleases outright is the right
shape rather than pinning one package, because the same unbounded requirement
exists on several transitives. Adding the setting reverted web3 to stable 7.16.0
and put websockets and solders back, which is how I know the beta was what was
pulling them.
Dropped
constraint-dependencies = ["fastapi!=0.136.3"]. It citedMAL-2026-4750, which now sits in the OSSF malicious-packages
withdrawn/directory.
fastaris a legitimate package (Rust tar bindings, public repo) thatfastapi-cloud-cli0.23.0 declares outright, so the "typosquat" reading in theold comment is not accurate. The constraint also did not do what the comment
claimed: fastar resolves into the tree regardless, because this repo is on
fastapi 0.141.1, five minors past the version being excluded. Re-locking after
removal left fastapi on 0.141.1, so nothing actually moved.
uv.lockembeds the project's own version, so it is re-locked in the same commitrather than left naming 2.7.0.
Worked with: Varun.
Type of change
Public API
None. No exported symbol, signature, wire format or response shape changes. The
non-lockfile edits are the two
[tool.uv]settings above and theversionfield.x402 2.19.0 to 2.20.0 sits on a wire contract, so it was scoped rather than taken
on the version number: protocol-governed field counts (
maxAmountRequired16,x402Version105) are identical across the two, the constants change is additiveerror codes, and the one name change is Monad Mainnet's USDC, a network this
package's consumers do not settle on.
Test plan
Ran the repo's full gate set locally on this branch:
uv run ruff check .cleanuv run ruff format --check .: 216 files already formatteduv run ty check agentscore_commerce/cleanuv run vulture . --min-confidence 80 --exclude .venvcleanuv run pytest tests/ -q: 1863 passed, 4 skipped, 95.37% coverage against a 95% floorosv-scanneroveruv.lock: no issues found across 141 packagesNo tests were added or changed, because no behavior changed.
Checklist
(no new behavior; the existing suite passes unchanged)
(public surface did not change, so nothing to update)
Deliberately not done
agentscore-pyfloor stays>=2.6.4rather than moving to the freshlypublished 2.6.6. Nothing in this diff needs it, and tightening a floor on a
public package forces an upgrade on external consumers for no reason. The
existing range already accepts it.
v*and a PyPI version ispermanent, so the tag is a deliberate step after this merges.