Skip to content

chore(deps): consolidate dependabot + additional patch/minor dependency bumps#10176

Merged
asheshv merged 4 commits into
pgadmin-org:masterfrom
asheshv:bump-9.17-dependencies
Jul 23, 2026
Merged

chore(deps): consolidate dependabot + additional patch/minor dependency bumps#10176
asheshv merged 4 commits into
pgadmin-org:masterfrom
asheshv:bump-9.17-dependencies

Conversation

@asheshv

@asheshv asheshv commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Consolidates 20 open dependabot PRs (JS + Python) into one bump, applied directly rather than cherry-picked (PR branches were stale and would have reverted unrelated fixes like the yarn packageManager pin).
  • Adds further same-major patch/minor bumps found by auditing beyond dependabot's own PR list.
  • Fixes a latent bug: core-js was never a direct dependency despite the webpack Babel config (useBuiltIns: 'usage', corejs: 3) requiring it — it only worked because @simonwep/pickr@1.9.1 happened to drag it in transitively. Bumping pickr to 1.10.0 dropped that path and broke every JS build/test. Fixed by declaring core-js explicitly.
  • Reverts azure-mgmt-resource 26.0.0: that release moved ResourceManagementClient from azure.mgmt.resource to azure.mgmt.resource.resources, breaking pgadmin/misc/cloud/azure/__init__.py at import time. Caught by the Python regression suite.
  • Python 3.9 support preserved: selenium needed a python_version gate split since 4.45.0 requires Python ≥3.10 (repo still supports 3.9).

Excluded, not part of this PR:

Test plan

  • yarn eslint clean (web + runtime)
  • yarn test:js-once — 149/149 suites, 916/916 tests pass
  • yarn bundle:dev — webpack compiles clean
  • Python regression suite (runtests.py --exclude feature_tests) — 2388/2388 pass
  • Selenium feature_tests — 17/19 pass; 2 failures traced to a local-environment gap (no pldbgapi extension available for this PG18 install), unrelated to any bumped package

Summary by CodeRabbit

  • Chores
    • Updated pinned TLS/certificate package version for improved trust handling.
    • Refreshed runtime and web development/build dependencies and upgraded key libraries across the web stack for the latest patch-level improvements.
    • Added/updated dependency resolution overrides to keep transitive versions aligned.
    • Updated regression test Selenium dependency to use a Python-version-specific Selenium version.

asheshv added 3 commits July 22, 2026 10:59
Consolidates 22 open dependabot PRs into one manual bump, applied
directly against current package.json/requirements.txt rather than
cherry-picked (the PR branches were stale and would have reverted
unrelated fixes like the yarn packageManager pin and cryptography
version).

JS (web + runtime): axios, brace-expansion, form-data, undici,
js-yaml, dompurify, @babel/core, webpack, sharp, electron, eslint,
react-checkbox-tree. brace-expansion/form-data/undici/js-yaml are
transitive-only, pinned via yarn `resolutions` with range-specific
selectors so unrelated major-version chains (brace-expansion v2,
js-yaml v4) aren't clobbered.

Python: azure-mgmt-resource 26.0.0 and selenium 4.45.0 both require
Python >=3.10, so both are version-gated (python_version <=/> '3.9')
to keep 3.9 support intact; certifi bumped plain (still >=3.7).

Excluded from this batch:
- paramiko 3.5.1 -> 5.0.0 (pgadmin-org#9927): structurally blocked by sshtunnel
  0.4.0 still referencing paramiko.DSSKey
- @mui/material 7 -> 9, @mui/x-date-pickers 8 -> 9 (pgadmin-org#10091, pgadmin-org#10092):
  known-breaking (see chore/mui-9 branch), needs the accompanying
  component fixes, not a bare version bump
- draft pgadmin-org#9961 (manual mui bump, not a dependabot PR)

Pre-existing gap noted, not fixed here: selenium==4.44.0 (the <=3.9
pin) already requires Python >=3.10 upstream, so 3.9 was already
broken before this change.
26.0.0 restructured the package layout: ResourceManagementClient
moved from azure.mgmt.resource to azure.mgmt.resource.resources.
pgadmin/misc/cloud/azure/__init__.py imports it from the old
top-level location and fails at import time, breaking the whole
cloud module registration. Caught by running the Python regression
suite before opening the PR. Same treatment as the mui 7->9 bump:
real breaking change needs a code fix, not a version bump.
Scanned web/package.json and runtime/package.json direct deps against
npm registry latest (dependabot only covers its own opened PRs, not a
full audit). Applied same-major-version bumps only; anything crossing
a major version is left for separate review.

Excluded despite being same-major, due to blast radius:
- react-arborist (3.5.0, latest 3.15.1): only consumer is
  PgTreeView/index.jsx, the core object-browser tree every feature
  depends on. 10 minor versions unreviewed.
- @tanstack/react-virtual (3.13.24, latest 3.14.8): used in
  DataGridView/grid.jsx and PgTable.jsx, already known-fragile
  virtualization code (see perf toolkit / tree-nav bench memory).
- react-frame-component: pinned "~5.2.6" (tilde, patch-only by
  design); latest 5.3.2 needs widening the range operator itself,
  not just a version number change.

Two picks hit Yarn's registry quarantine gate (blocks packages newer
than the age threshold) and were backed off to the next-older
version instead of forced through:
- react/react-dom: wanted ^19.2.8 (published yesterday), used ^19.2.7
- electron (runtime): wanted ^43.2.0 (published today), kept ^43.1.1
postcss also hit quarantine at ^8.5.22; used ^8.5.20 instead.
certifi (python) same situation, reverted to existing 2026.6.17
pin (2026.7.22 published same day) rather than force it.

Bumping @simonwep/pickr 1.9.1 -> 1.10.0 surfaced a latent bug: pickr
1.9.1 was the *only* source of `core-js` in the whole dependency
tree, and the project relies on core-js via
webpack.config.js's `useBuiltIns: 'usage', corejs: 3` babel preset
without ever declaring core-js itself. 1.10.0 drops that transitive
path, which silently broke every JS bundle/test import
(core-js/modules/es.array.includes.js not found) project-wide.
Fixed at the root: added core-js as an explicit devDependency instead
of reverting pickr, since any future unrelated bump could hit the
same landmine again.

Verified: eslint (web+runtime), full JS test suite (149/149,
916/916), webpack dev build compiles, Python regression suite
(2388/2388, excl. Selenium feature_tests).
@coderabbitai

coderabbitai Bot commented Jul 23, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: c35f823d-165d-4365-b53b-27769a03e915

📥 Commits

Reviewing files that changed from the base of the PR and between 9af5c4e and d1c91b4.

⛔ Files ignored due to path filters (1)
  • web/yarn.lock is excluded by !**/yarn.lock, !**/*.lock
📒 Files selected for processing (1)
  • web/package.json
🚧 Files skipped from review as they are similar to previous changes (1)
  • web/package.json

Walkthrough

Dependency manifests are refreshed across Python, runtime, and web projects, including package version bumps, transitive dependency resolutions, and Python-version-specific Selenium pins.

Changes

Dependency refresh

Layer / File(s) Summary
Python dependency pins
requirements.txt, web/regression/requirements.txt
Updates the certifi pin and selects Selenium 4.44.0 for Python 3.9 and earlier or 4.45.0 for newer Python versions.
Runtime dependency manifest
runtime/package.json
Bumps runtime dependencies and development tools, and adds resolutions for brace-expansion, undici, and form-data.
Web dependency manifest
web/package.json
Refreshes web tooling, React and supporting dependencies, sharp, and package resolution overrides.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately reflects the dependency consolidation and patch/minor bumps in the PR.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 Checkov (3.3.8)
web/package.json

Traceback (most recent call last):
File "/usr/local/bin/checkov", line 2, in
from checkov.main import Checkov
ModuleNotFoundError: No module named 'checkov'


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

CI feature tests failed on this PR (every dialog: "Register - Server:
Something went wrong"). Root cause: pickr 1.10.0 switched the package
to "type": "module" with a new interop shim; under webpack production
mode the resulting `import Pickr from '@simonwep/pickr'; new
Pickr.default(...)` call resolves .default to something that isn't a
constructor, throwing on every first render that mounts a color
picker (which construction is triggered from a Register/Properties
dialog effect, hence "every dialog" rather than something pickr-
specific).

Confirmed by exact-pinned bisection against a known-good baseline
(caret ranges silently float to latest-satisfying on every `yarn
install`, which produced several false negatives before pinning
versions with no range operator for the test). Reproduces 100% with
`yarn run bundle` (production, matches CI); does not reproduce with
`yarn run bundle:dev` or the Jest suite, since neither exercises
webpack's production/minified code path.

Pinned with `~1.9.1` (tilde, not caret) specifically so a future
`yarn install` can't silently float back up to 1.10.x and reintroduce
this.

Verified: full Selenium feature_tests suite, 17/19 pass (remaining 2
failures are the pre-existing local pldbgapi-extension gap, unrelated).
@asheshv
asheshv merged commit 8812025 into pgadmin-org:master Jul 23, 2026
34 checks passed
This was referenced Jul 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant