Skip to content

chore: drop Python 3.11 support#454

Merged
UsamaSadiq merged 7 commits intomasterfrom
feanil/drop_python_3.11
Mar 24, 2026
Merged

chore: drop Python 3.11 support#454
UsamaSadiq merged 7 commits intomasterfrom
feanil/drop_python_3.11

Conversation

@feanil
Copy link
Copy Markdown
Contributor

@feanil feanil commented Mar 6, 2026

Summary

  • Drop Python 3.11 support: remove from CI test matrix, tox envlist, and package classifiers
  • Regenerate pinned requirements using Python 3.12
  • Bump version to 3.0.0 — dropping Python support is a breaking change, so this is a major version bump

Context

Python 3.11 is being dropped across the Open edX ecosystem as part of the move
to standardize on Python 3.12. See the tracking issue for the full list of repos:
openedx/public-engineering#499

Test plan

  • CI passes with Python 3.12 only

feanil added 2 commits March 6, 2026 14:44
Removes Python 3.11 from CI matrix, publish_pypi workflow, tox envlist,
and setup.py classifiers.

Part of openedx/public-engineering#499
Regenerated all pinned requirements files using Python 3.12.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@feanil feanil force-pushed the feanil/drop_python_3.11 branch from d522499 to cbda92e Compare March 10, 2026 17:46
feanil and others added 4 commits March 11, 2026 09:59
sphinx==9.1.0 (pinned by the requirements upgrade) requires Python 3.12+.
The .readthedocs.yaml was still specifying python: "3.11", causing RTD
builds to fail.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
pylint 4.0.5 (upgraded via edx-lint) is stricter about W0221
(arguments-differ). Django 5.x added **kwargs to Model.save(), so
ConfigurationModel.save() now triggers this warning because its
signature does not include **kwargs.

Add **kwargs to ConfigurationModel.save() and pass it through to
super().save(), aligning with the Django 5.x base class signature.

See: https://docs.djangoproject.com/en/5.2/ref/models/instances/#saving-objects

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Django 4.2 reached end-of-life in April 2024. Remove the django42 tox
env and classifier.

BREAKING CHANGE: Django 4.2 is no longer supported. Requires Django 5.2+.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Django 5.2 changed Model.save() to accept *args:
  def save(self, *args, force_insert=False, force_update=False, ...)

See: django/django@3d9bde50

pylint 4.x W0221 (arguments-differ) correctly flagged that our override
removed the *args variadic introduced in Django 5.2.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@codecov
Copy link
Copy Markdown

codecov Bot commented Mar 11, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 0.00%. Comparing base (2ef3e1c) to head (6289685).
⚠️ Report is 1 commits behind head on master.

Additional details and impacted files
@@      Coverage Diff      @@
##   master   #454   +/-   ##
=============================
=============================

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@feanil feanil marked this pull request as ready for review March 11, 2026 17:48
@feanil
Copy link
Copy Markdown
Contributor Author

feanil commented Mar 11, 2026

@UsamaSadiq this is ready to be reviewed, and merged and released if it looks good to you please feel free to do all those things.

@UsamaSadiq
Copy link
Copy Markdown
Member

@UsamaSadiq this is ready to be reviewed, and merged and released if it looks good to you please feel free to do all those things.

@feanil I have all these PRs on my radar but let's wait for platform Python 3.12 upgrade before merging these Python 3.11 support drop PRs.

@feanil
Copy link
Copy Markdown
Contributor Author

feanil commented Mar 23, 2026

@UsamaSadiq Platform PR has merged so this should be good to go.

@UsamaSadiq
Copy link
Copy Markdown
Member

Good to hear. I'll soon do a pass on all the packages to release updated packages.

@UsamaSadiq UsamaSadiq merged commit a027304 into master Mar 24, 2026
9 checks passed
@UsamaSadiq UsamaSadiq deleted the feanil/drop_python_3.11 branch March 24, 2026 10:39
@UsamaSadiq
Copy link
Copy Markdown
Member

https://pypi.org/project/django-config-models/3.0.0/ published successfully.

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