Skip to content

chore: Upgrade Python requirements - #39028

Merged
feanil merged 3 commits into
masterfrom
repo-tools/upgrade-python-requirements-457ab6f
Aug 31, 2026
Merged

chore: Upgrade Python requirements#39028
feanil merged 3 commits into
masterfrom
repo-tools/upgrade-python-requirements-457ab6f

Conversation

@edx-requirements-bot

Copy link
Copy Markdown
Contributor

Python requirements update. Please review the changelogs for the upgraded packages.

Deleted obsolete pull_requests:
#39020

@edx-requirements-bot
edx-requirements-bot requested a review from a team August 25, 2026 15:20
@edx-requirements-bot

Copy link
Copy Markdown
Contributor Author

List of packages in the PR without any issue.

  • boto3 changes from 1.43.57 to 1.43.79
  • botocore changes from 1.43.57 to 1.43.79
  • cachetools changes from 7.1.6 to 7.1.7
  • camel-converter changes from 5.1.0 to 5.1.1
  • cffi changes from 2.1.0 to 2.1.1
  • chardet changes from 7.4.3 to 7.6.0
  • charset-normalizer changes from 3.4.9 to 3.5.1
  • coverage changes from 7.15.2 to 7.15.4
  • diff-cover changes from 10.4.1 to 10.5.1
  • django - python_full_version < '3.13' changes from 5.2.15 to 5.2.17
  • django - python_full_version == '3.13.*' changes from 5.2.15 to 5.2.17
  • django - python_full_version >= '3.14' changes from 5.2.15 to 5.2.17
  • django-js-asset changes from 4.0.1 to 4.0.2
  • django-stubs-ext changes from 6.0.7 to 6.1.0
  • edx-drf-extensions changes from 10.6.0 to 10.7.0
  • enmerkar-underscore changes from 2.4.0 to 2.4.1
  • faker changes from 40.36.0 to 40.37.0
  • filelock changes from 3.32.0 to 3.32.4
  • gitpython changes from 3.1.57 to 3.1.59
  • google-api-core changes from 2.33.0 to 2.34.0
  • google-auth changes from 2.56.2 to 2.57.0
  • google-cloud-core changes from 2.6.0 to 2.7.0
  • google-cloud-firestore changes from 2.28.0 to 2.29.0
  • google-cloud-storage changes from 3.13.0 to 3.13.1
  • google-resumable-media changes from 2.10.0 to 2.10.1
  • googleapis-common-protos changes from 1.75.0 to 1.75.1
  • gunicorn changes from 26.0.0 to 26.2.0
  • h2 changes from 4.4.0 to 4.4.1
  • icalendar changes from 7.2.2 to 7.3.0
  • idna changes from 3.18 to 3.19
  • imagesize changes from 2.0.0 to 2.0.1
  • librt changes from 0.13.0 to 0.15.0
  • mako changes from 1.3.12 to 1.4.1
  • markdown changes from 3.10.2 to 3.10.3
  • nh3 changes from 0.3.6 to 0.3.7
  • nltk changes from 3.10.0 to 3.10.3
  • packaging changes from 26.2 to 26.3
  • platformdirs changes from 4.11.0 to 4.11.4
  • proto-plus changes from 1.28.2 to 1.28.3
  • protobuf changes from 7.35.1 to 7.36.0
  • pygments changes from 2.20.0 to 2.21.0
  • pylint changes from 4.0.6 to 4.0.7
  • pyopenssl changes from 26.3.0 to 26.4.0
  • pytest-django changes from 4.12.0 to 4.14.0
  • python-discovery changes from 1.5.0 to 1.5.3
  • redis changes from 8.0.1 to 8.1.0
  • ruff changes from 0.16.0 to 0.16.4
  • snowflake-connector-python changes from 4.7.1 to 4.7.2
  • sorl-thumbnail changes from 13.0.0 to 13.1.0
  • soupsieve changes from 2.9.1 to 2.9.2
  • sqlparse changes from 0.5.5 to 0.6.0
  • stevedore changes from 5.9.0 to 5.9.1
  • tox changes from 4.58.0 to 4.60.1
  • tox-uv changes from 1.35.2 to 1.36.0
  • tox-uv-bare changes from 1.35.2 to 1.36.0
  • types-pyyaml changes from 6.0.12.20260724 to 6.0.12.20260815
  • typing-inspection changes from 0.4.2 to 0.4.4
  • uv changes from 0.11.26 to 0.12.5
  • virtualenv changes from 21.7.0 to 21.7.5
  • wcmatch changes from 11.0 to 11.0.1
  • webencodings changes from 0.5.1 to 0.6.1
  • webob changes from 1.8.10 to 1.8.11
  • wheel changes from 0.47.0 to 0.48.0
  • wrapt changes from 2.2.2 to 2.3.0

@edx-requirements-bot

Copy link
Copy Markdown
Contributor Author

These Packages need manual review..

  • [MAJOR] cryptography changes from 49.0.0 to 50.0.0
  • [MAJOR] deepmerge changes from 2.1.0 to 3.0
  • [MAJOR] django-filter - python_full_version < '3.13' changes from 25.2 to 26.1
  • [MAJOR] django-filter - python_full_version == '3.13.*' changes from 25.2 to 26.1
  • [MAJOR] django-filter - python_full_version >= '3.14' changes from 25.2 to 26.1
  • [REMOVED] django-simple-history (3.12.0) removed from the requirements
  • [NEW] django-simple-history - python_full_version < '3.13' (3.13.0) added to the requirements
  • [NEW] django-simple-history - python_full_version == '3.13.*' (3.13.0) added to the requirements
  • [NEW] django-simple-history - python_full_version >= '3.14' (3.13.0) added to the requirements
  • [REMOVED] djangorestframework (3.17.1) removed from the requirements
  • [NEW] djangorestframework - python_full_version < '3.13' (3.18.0) added to the requirements
  • [NEW] djangorestframework - python_full_version == '3.13.*' (3.18.0) added to the requirements
  • [NEW] djangorestframework - python_full_version >= '3.14' (3.18.0) added to the requirements
  • [MAJOR] edx-organizations changes from 8.0.0 to 9.0.0
  • [REMOVED] enmerkar (0.7.1) removed from the requirements

feanil and others added 2 commits August 31, 2026 13:27
DRF 3.18.0 changes how ListSerializer (many=True) reports child validation
errors: a list padded with empty dicts becomes a dict keyed by the index of
each failing item, with passing items omitted. That flips the JSON type of
the error response body from an array to an object:

  3.17.2  [{},{"code":["This field is required."]},{}]
  3.18.0  {"1":{"code":["This field is required."]}}

Several write endpoints hand these errors straight back to the caller, so
their error responses change shape. Those responses are part of our API
contract, and only one test in the repo pinned the format, so the change
would have gone out silently.

Hold at <3.18 so the migration can be made deliberately, with the usual
consideration for API consumers, rather than riding in on a routine
requirements bump. Resolves to 3.17.2, which retains the old shape.

Upstream change: encode/django-rest-framework#9837
Issue for unpinning: #39048

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@feanil
feanil force-pushed the repo-tools/upgrade-python-requirements-457ab6f branch from 68685a8 to 56ee681 Compare August 31, 2026 17:38
pylint 4.0.8 widens redundant-unittest-assert (W1503) to cover assertEqual
with constant values, not just assertTrue/assertFalse, so the requirements
bump in this branch turns this pre-existing line into a lint error:

  cms/djangoapps/contentstore/views/tests/test_videos.py:790:8: W1503:
  Redundant use of assertEqual with constant value (True, False)

self.fail() is what the line means anyway -- the comment above it already
says "Test should fail if video not found". Both forms raise AssertionError,
so the behavior is unchanged; the message just loses its "True != False : "
prefix. The PT009 noqa goes away with the unittest-style assertion.

This was the only occurrence of the pattern in the repo.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@feanil
feanil merged commit 97c8bf2 into master Aug 31, 2026
47 of 49 checks passed
@feanil
feanil deleted the repo-tools/upgrade-python-requirements-457ab6f branch August 31, 2026 20:59
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.

2 participants