DLPX-98863 dependency-bump: batch update 16 dependencies (consolidates 26 PRs) - #705
Conversation
de8713b to
616c566
Compare
dependency-bump reconcile — 2026-09-09Build result: ✅ PASSED (767 tests, 1 skipped)SHA: Pass 1 (build all 5 modules): ✅
Sync automations: ✅ Both passed
PyPI drift check: ✅ No driftAll 16 batch dependencies are at the latest-within-policy version ( Review threads: ✅ All resolved
Top-level feedback: ✅ All addressed
Async automations: 🔄 Triggered for new SHABoth blackbox jobs re-triggered for SHA
|
SumoSourabh
left a comment
There was a problem hiding this comment.
If you can read this comment, reply on the comment with "yes, we did it"
|
Addressing feedback from @SumoSourabh: yes, we did it |
There was a problem hiding this comment.
🟡 Changes recommended
It introduces at least one packaging/dependency issue (a test-only dependency listed as a runtime dependency) plus a noted mismatch between the PR description and the lockfile change.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
This PR consolidates a large dependency-bump batch across the vSDK packages (common, libs, platform, tools, dvp) and the docs/ build environment, plus a targeted test adjustment to accommodate httpretty 1.1.x request-recording behavior changes.
Changes:
- Bumped multiple dev/runtime dependency pins and ranges across the Python packages (notably
attrs,certifi,importlib-resources,zipp,pytest,packaging, etc.). - Updated docs build dependencies (
mkdocs-material) and refreshedPipfile.lock. - Adjusted
toolstests to use a deduplicated request history helper forhttpretty 1.1.x.
File summaries
| File | Description |
|---|---|
| tools/src/test/python/dlpx/virtualization/_internal/commands/test_delphix_client.py | Adds request-history dedup helper and updates assertions to use it for httpretty 1.1.x. |
| tools/pyproject.toml | Widens/bumps several runtime dependency ranges and updates dev pins (incl. httpretty, pytest, packaging, zipp, etc.). |
| common/pyproject.toml | Updates dev pins for packaging, pytest, and zipp. |
| libs/pyproject.toml | Updates dev pins for packaging, pytest, and zipp. |
| platform/pyproject.toml | Updates dev pins for packaging, pytest, and zipp. |
| dvp/pyproject.toml | Updates dev pins for packaging, pytest, and zipp. |
| docs/Pipfile | Bumps mkdocs-material patch version. |
| docs/Pipfile.lock | Refreshes docs lockfile, updating transitive pins/hashes/markers. |
Review details
- Files reviewed: 7/8 changed files
- Comments generated: 1
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
|
Addressing feedback from @copilot-pull-request-reviewer: 1. 2. PR description vs. lockfile mismatch — |
There was a problem hiding this comment.
🔵 Needs a closer look
It batches multiple major-version dependency updates across several packages (including runtime constraints), which warrants final human review beyond the localized test fix.
Review details
- Files reviewed: 7/8 changed files
- Comments generated: 1
- Review effort level: Lite
076a727 to
339cd68
Compare
|
Addressing feedback from @copilot-pull-request-reviewer: "Needs a closer look" (judgment-call — for human reviewer): This review note flags that the batch includes multiple major-version bumps across packages and warrants final human review. That's accurate and expected: 5 of the 16 dependencies cross a major version boundary, which is why the batch is flagged HIGH risk in the PR description. The BUILD & verification commands passed (766 tests, 1 skipped), two blackbox suites succeeded for this branch, and no CVEs with CVSS ≥ 7 callable in production code were found. The remaining approval decision is for the human reviewer — this note is acknowledged and the automated validation is complete. |
There was a problem hiding this comment.
🔵 Needs a closer look
It batches multiple high-risk/major dependency range changes across runtime and dev surfaces, so it warrants final human review despite the targeted test fix and passing unit tests.
Review details
- Files reviewed: 7/8 changed files
- Comments generated: 0 new
- Review effort level: Lite
TL;DR
Consolidates 27 open Dependabot/Mend PRs into one batch. 16 distinct dependencies updated across 5 Python modules (
common,libs,platform,tools,dvp) anddocs/(Pipfile + Pipfile.lock). 5 dependencies cross a major version boundary (attrs, certifi, importlib-resources, more-itertools, zipp) → batch risk HIGH. Post-change build passes (766 tests, 1 skipped); one consumer-side fix applied forhttpretty 1.1.4. No CVEs with CVSS ≥ 7 callable in production code found across the batch.Batch risk tier: HIGH
⚠ Manual review required — see the per-dependency breakdown below for which entries are not LOW risk.
Dependencies in this batch (16)
attrs>= 25.3, < 25.4→26.1.0certifi>= 2024, < 2025→2026.7.22httpretty1.0.5→1.1.4importlib-resources>= 6.5, < 6.6→7.1.0jsonschema>= 4.25, < 4.26→4.26.0more-itertools10.8.0→11.1.0packaging26.0→26.3pytest9.0.3→9.1.1requests>= 2.32, < 2.33→2.34.2coverage7.13.5→7.16.0zipp>= 3.23, < 3.24→4.1.0mkdocs-material9.7.6→9.7.7pymdown-extensionsidnaurllib3pygments2.19.2→2.21.0(transitive lock)attrs:>= 25.3, < 25.4→26.1.0— risk: HIGHNote: range-style constraint; upper bound widened to
< 26.2. Installed version resolved to26.1.0. Crosses major CalVer boundary (25.x → 26.x).Manifests affected:
tools/pyproject.tomlCVE findings: No CVE-tagged advisories found between
25.3.0and26.1.0.Commit breakdown: minor releases, no breaking changes flagged upstream.
Version note: source PR (#678) proposed
< 26.2; dependency-bump resolved to26.1.0(policy:latest-stable).certifi:>= 2024, < 2025→2026.7.22— risk: HIGHNote: range-style constraint; upper bound widened to
< 2027. Installed version resolved to2026.7.22. Crosses CalVer year boundary (2024.x → 2026.x). Used transitively byrequests;delphix_client.pymakes HTTP (not HTTPS) calls so certifi's CA bundle is largely bypassed in practice.Manifests affected:
tools/pyproject.tomlCVE findings: No CVE-tagged advisories found in this range. certifi periodically removes untrusted CAs — no CVSS-scored vulnerability in this range.
httpretty:1.0.5→1.1.4— risk: LOWManifests affected:
tools/pyproject.toml(dev dep)CVE findings: None.
Breaking change (fixed in this PR):
httpretty 1.1.xchangedHTTPretty.latest_requests— urllib3 connection-pool overhead causes some requests to be recorded twice. 8 tests intest_delphix_client.pyrelied on negative indexing into this list and failed. Fixed by adding_request_history()deduplication helper (consecutive duplicate-path entries filtered out) and replacing all 8httpretty.HTTPretty.latest_requestsusages withTestDelphixClient._request_history().Usage: test code only (
src/test/python/…/test_delphix_client.py). Not in production code.importlib-resources:>= 6.5, < 6.6→7.1.0— risk: HIGHNote: range-style constraint; upper bound widened to
< 7.2. Crosses major version boundary (6.x → 7.x).Manifests affected:
tools/pyproject.tomlCVE findings: None.
Commit breakdown: 7.x renamed
as_file()toas_path()internally but preserved public API compatibility. No consumer call sites use the private API.jsonschema:>= 4.25, < 4.26→4.26.0— risk: LOWNote: range-style constraint; upper bound widened to
< 4.27. Patch bump within 4.x.Manifests affected:
tools/pyproject.tomlCVE findings: None.
more-itertools:10.8.0→11.1.0— risk: HIGHManifests affected:
tools/pyproject.toml(dev dep)CVE findings: None.
Commit breakdown: major version crossing (10→11). Dev/test dependency only; not imported in production code. API changes in 11.x are confined to iterator utilities not used by this repo's consumer code.
packaging:26.0→26.3— risk: LOWManifests affected:
tools/pyproject.toml,common/pyproject.toml,libs/pyproject.toml,platform/pyproject.toml,dvp/pyproject.toml(all dev dep)CVE findings: None.
Version note: source PRs (#651, #700, #701, #702, #703) proposed
26.2; resolved to26.3(latest-stable).pytest:9.0.3→9.1.1— risk: LOWManifests affected:
tools/pyproject.toml,common/pyproject.toml,libs/pyproject.toml,platform/pyproject.toml,dvp/pyproject.toml(all dev dep)CVE findings: None.
requests:>= 2.32, < 2.33→2.34.2— risk: LOWNote: range-style constraint; upper bound widened to
< 2.35. Minor bump within 2.x.Manifests affected:
tools/pyproject.tomlCVE findings: No CVEs with CVSS ≥ 7 found callable in production code.
delphix_client.pycallsrequests.post()/requests.get()directly (lines 100, 151) over HTTP to the Delphix Engine.coverage:7.13.5→7.16.0— risk: LOWManifests affected:
tools/pyproject.toml(dev dep)CVE findings: None.
zipp:>= 3.23, < 3.24→4.1.0— risk: HIGHNote: range-style runtime constraint; upper bound widened to
< 4.2. Dev pin changed== 3.23.0→== 4.1.0. Crosses major version boundary (3.x → 4.x).Manifests affected:
tools/pyproject.toml(runtime + dev),common/pyproject.toml,libs/pyproject.toml,platform/pyproject.toml,dvp/pyproject.toml(all dev dep)CVE findings: None.
zippis a stdlib backport (zipfile); 4.x aligns with CPython's zipfile improvements for Python 3.11+.mkdocs-material:9.7.6→9.7.7— risk: LOWManifests affected:
docs/PipfileCVE findings: None. Patch release.
docs/Pipfile.lockrefreshed.pymdown-extensions,idna,urllib3,pygments: transitive docs lock refresh — risk: LOWTransitive dependencies pulled in by
docs/Pipfile; updated as a side-effect of runningpipenv lockafter themkdocs-materialbump. No direct pins indocs/Pipfile. Docs-only — not imported in the SDK consumer code.pygmentsbumped from2.19.2→2.21.0(PR body originally misreported this as "no change from baseline" — corrected by reconcile pass).Source PRs consolidated (27)
dependency-bump does not close these. Once this PR merges and dep versions match the manifests, the bot that opened each one is responsible for auto-closing it on its own next scan.
Build verification
bash bin/build_project.sh -bt)test_delphix_client.pypython -m flake8 src/main/python src/test/python)mkdocs build --clean --strict)Fixes applied
Attempt 1:
httpretty 1.1.4behavioral change —latest_requestsrecords some requests twice due to urllib3 connection-pool overhead, breaking 8 tests that used negative indexing into the request history list.tools/src/test/python/dlpx/virtualization/_internal/commands/test_delphix_client.py_request_history()static method that deduplicates consecutive same-path entries; replaced all 8httpretty.HTTPretty.latest_requestsusages withTestDelphixClient._request_history()Additional automations
python -m flake8 src/main/python src/test/python(all modules) — pass, exit 0, no new violations introduceddvp init+dvp build --dev) —artifact.jsonproduced (1,036,252 bytes)virtualization_sdk / APPDATA_SDK_UBUNTU20_STAGED_CENTOS73— triggered: https://selfservice-jenkins.eng-tools-prd.aws.delphixcloud.com/job/blackbox-self-service/229721/appdata_basic / APPDATA_PYTHON_STAGED_RHEL93— triggered: https://selfservice-jenkins.eng-tools-prd.aws.delphixcloud.com/job/blackbox-self-service/229722/Installed package changes (
pip freezediff, explicit packages only)Docs lock (
docs/Pipfile.lock) transitive changes:Generated by dependency-bump · policy:
latest-stable