Repository navigation
chore(deps): upgrade dependencies after dropping Python 3.9. - #1003
lahirumaramba wants to merge 1 commit into
Conversation
Upgrade runtime and development dependencies to their latest stable releases now that Python 3.9 and PyPy 3.9 are dropped, and replace the legacy PyPy cryptography upper-bound cap with cryptography >= 50.0.2. Also configure asyncio_default_fixture_loop_scope for pytest-asyncio 1.x and fix a redundant self-comparison caught by pylint 4.x in test_tenant_mgt.py.
There was a problem hiding this comment.
Code Review
This pull request fixes a test assertion bug in integration/test_tenant_mgt.py by avoiding variable shadowing, configures the default asyncio fixture loop scope in setup.cfg, and updates various dependencies in requirements.txt and setup.py. However, the review comments correctly point out that several of the specified dependency versions (including astroid, pylint, pytest, google-cloud-firestore, google-cloud-storage, pyjwt, and cryptography) do not exist on PyPI, which will break installation and CI/CD pipelines.
| astroid == 4.3.4 | ||
| pylint == 4.1.3 | ||
| pytest >= 9.2.0 | ||
| pytest-cov >= 7.1.0 |
There was a problem hiding this comment.
There was a problem hiding this comment.
@gemini-code-assist The latest astroid v4.3.4 (released on Oct 8, exists)
There was a problem hiding this comment.
Apologies for the confusion. You are correct that astroid 3.x and 4.x versions exist. My previous assessment was based on a stale index. Thank you for the clarification.
| pytest-asyncio >= 1.4.1 | ||
| pytest-mock >= 3.17.0 |
| google-api-core[grpc] >= 2.44.0, < 3.0.0dev; platform.python_implementation != 'PyPy' | ||
| google-cloud-firestore >= 2.34.1; platform.python_implementation != 'PyPy' | ||
| google-cloud-storage >= 3.17.1 | ||
| pyjwt[crypto] >= 2.15.1 | ||
| cryptography >= 50.0.2 |
There was a problem hiding this comment.
Several of the specified runtime dependency versions do not exist on PyPI:\n- google-cloud-firestore>=2.34.1 (current stable is 2.19.x)\n- google-cloud-storage>=3.17.1 (current stable is 2.19.x)\n- pyjwt[crypto]>=2.15.1 (current stable is 2.10.x)\n- cryptography>=50.0.2 (current stable is 44.x)\n\nUsing non-existent versions will cause installation failures.
| 'google-api-core[grpc] >= 2.44.0, < 3.0.0dev; platform.python_implementation != "PyPy"', | ||
| 'google-cloud-firestore>=2.34.1; platform.python_implementation != "PyPy"', | ||
| 'google-cloud-storage>=3.17.1', | ||
| 'pyjwt[crypto] >= 2.15.1', | ||
| 'cryptography >= 50.0.2', |
There was a problem hiding this comment.
Several of the specified runtime dependency versions in install_requires do not exist on PyPI:\n- google-api-core[grpc] >= 2.44.0 (current stable is 2.24.x)\n- google-cloud-firestore >= 2.34.1 (current stable is 2.19.x)\n- google-cloud-storage >= 3.17.1 (current stable is 2.19.x)\n- pyjwt[crypto] >= 2.15.1 (current stable is 2.10.x)\n- cryptography >= 50.0.2 (current stable is 44.x)\n\nUsing non-existent versions will cause installation failures for downstream users of this library.
Now that Python 3.9 and PyPy 3.9 support have been removed (#1001), several runtime and development dependencies were still held back on older floors or legacy PyPy upper-bound caps. Leaving old floors in place exposes default installs to resolved upstream security advisories in
cryptography,pyjwt,pylint, andpytest, and leavessetup.pyout of sync withrequirements.txt.This PR upgrades our runtime and test dependencies to their latest stable Python 3.10+ releases across both
setup.pyandrequirements.txt, and replaces the legacycryptography < 44.0.0PyPy cap withcryptography >= 50.0.2.Technical Details
install_requiresinsetup.pywithrequirements.txt:google-cloud-firestore >= 2.34.1,cryptography >= 50.0.2,pyjwt[crypto] >= 2.15.1,google-api-core[grpc] >= 2.44.0, < 3.0.0dev,google-cloud-storage >= 3.17.1, andcachecontrol >= 0.14.4.requirements.txt:pylint == 4.1.3,astroid == 4.3.4,pytest >= 9.2.0,pytest-cov >= 7.1.0,pytest-asyncio >= 1.4.1, andpytest-mock >= 3.17.0.asyncio_default_fixture_loop_scope = functioninsetup.cfgforpytest-asyncio1.x compatibility, and fixed a self-comparison assertion inintegration/test_tenant_mgt.pycaught bypylint4.1.3.Testing: Verified
./lint.sh all,pytest, and built wheel metadata locally.