Files
pgadmin4/requirements.txt
T
Ashesh Vashi bd7cde5851 chore(deps): bump third-party JS and Python dependencies (#10370)
JS (yarn, patch/minor only): babel toolchain, MUI, react/react-dom,
testing-library, axios, webpack ecosystem, jest, eslint plugins, and
misc small libs. Excluded @simonwep/pickr (webpack prod-bundle
interop break on 1.10.x), @testing-library/user-event@14.6.7 and
webpack@5.110.3 (both npm-quarantined at bump time).

Python (>3.9 requirements branch only, Python 3.9 pins untouched):
Authlib 1.8, google-auth-oauthlib 1.4.1, gssapi 1.12 (ungated),
psycopg[c] 3.3.5, selenium 4.48.0, testscenarios 0.7.0.

Skipped: paramiko 3->5 (blocked on sshtunnel's paramiko.DSSKey
usage), azure-mgmt-resource 26.0.0 (drops Python 3.9 support and
conflicts with the <26 upper bound kept for Azure CLI distro
packaging, see #10247).

Two bumped packages required source fixes:

- psycopg 3.3.5 restructured the private
  psycopg._encodings._py_codecs attribute from a dict to a tuple of
  alias groups, breaking our monkeypatch in
  pgadmin/utils/driver/psycopg3/encoding.py with TypeError: 'tuple'
  object does not support item assignment. Rewrote get_encoding()/
  configure_driver_encodings() to use the derived py_codecs/
  pg_codecs dicts instead, which stay plain dicts across psycopg
  3.2.x-3.3.5 regardless of _py_codecs's internal shape. Verified
  byte-for-byte identical behavior against 3.3.4 for every
  encode_dict entry (SQL_ASCII, EUC_TW, UNICODE, ascii) plus
  UTF8/LATIN1. Added a DB-free unit test
  (pgadmin/utils/driver/psycopg3/tests/test_encoding.py) so a future
  psycopg internals change fails fast here instead of only surfacing
  as an app-wide import crash in the full regression suite.

- react-frame-component 5.3.2 breaks LayoutIframeTab.jsx (the iframe
  wrapper every tool panel - Query Tool, Debugger, PSQL, ERD, Schema
  Diff - renders into): the panel's iframe never mounts, hanging any
  of those tools indefinitely (React error #130 in the production
  bundle). This caused every run-feature-tests-pg CI job to fail.
  Reverted to 5.2.6.
2026-09-03 14:58:04 +05:30

76 lines
2.5 KiB
Plaintext

###############################################################################
#
# IMPORTANT:
#
# If runtime or build time dependencies are changed in this file, the committer
# *must* ensure the DEB and RPM package maintainers are informed as soon as
# possible.
#
# The packages listed below are sorted alphabetically. It is recommended to add
# new packages in alphabetical order. However, exceptions can be made to
# preserve dependency order—please add a comment in such cases and specify the
# relevant packages.
###############################################################################
Authlib==1.6.*; python_version <= '3.9'
Authlib==1.8.*; python_version > '3.9'
azure-identity==1.25.3
azure-mgmt-rdbms==10.1.1
# Azure CLI (a common companion package on Linux distros) still pins
# azure-mgmt-resource<25, so keep the lower bound at 24.0.0 to avoid
# conflicts for distro packagers; see pgadmin-org/pgadmin4#10247.
azure-mgmt-resource>=24.0.0,<26.0.0
azure-mgmt-subscription==3.1.1
bcrypt==5.0.*
boto3==1.42.*; python_version <= '3.9'
boto3==1.43.*; python_version > '3.9'
certifi==2026.7.22
cryptography==50.0.*
Flask-Babel==4.0.*
Flask-Compress==1.*
Flask-Login==0.*
Flask-Mail==0.*
Flask-Migrate==4.*
Flask-Paranoid==0.*
Flask-Security-Too==5.6.*; python_version <= '3.9'
# 5.8.2 corrected the inverted UserMixin.is_locked() test in LoginForm;
# User.is_locked() in web/pgadmin/model/__init__.py follows the fixed
# semantics, so anything earlier in the 5.8 series would refuse all logins.
Flask-Security-Too>=5.8.2,<5.9; python_version > '3.9'
Flask-SocketIO==5.6.*
Flask-SQLAlchemy==3.1.*
Flask-WTF==1.2.*; python_version <= '3.9'
Flask-WTF==1.3.*; python_version > '3.9'
Flask==3.1.*
google-api-python-client==2.*
google-auth-oauthlib==1.3.1; python_version <= '3.9'
google-auth-oauthlib==1.4.1; python_version > '3.9'
gssapi==1.12.*
jsonformatter~=0.3.4
keyring==25.*
ldap3==2.*
libgravatar==1.0.*
paramiko==3.5.1
psutil==7.2.*
psycopg[c]==3.2.13; python_version < '3.10'
psycopg[c]==3.3.5; python_version >= '3.10'
pyotp==2.*
python-dateutil==2.*
pytz==2026.*
# pinned for https://github.com/andfoy/pywinpty/issues/545
pywinpty==2.0.*; sys_platform=="win32"
qrcode[pil]==8.*
setuptools<82; python_version <= '3.9'
setuptools==84.*; python_version > '3.9'
SQLAlchemy==2.*
sqlparse==0.*
sshtunnel==0.*
typer[all]==0.23.*; python_version <= '3.9'
typer==0.27.*; python_version > '3.9'
urllib3==1.26.*; python_version <= '3.9'
urllib3==2.7.*; python_version > '3.9'
user-agents==2.2.0
Werkzeug==3.1.*
WTForms==3.1.*; python_version <= '3.9'
WTForms==3.2.*; python_version > '3.9'