Skip to content

Commit c5a4243

Browse files
authored
chore: add support for Python 3.12 and Django 5.2 (#250)
1 parent 44acd72 commit c5a4243

15 files changed

Lines changed: 128 additions & 104 deletions

File tree

.github/workflows/tests.yml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,11 @@ jobs:
1212
strategy:
1313
max-parallel: 2
1414
matrix:
15-
python-version: ["3.11"]
16-
django: ["42"]
15+
python-version: ["3.11", "3.12"]
16+
django: ["42", "52"]
17+
exclude:
18+
- python-version: "3.12"
19+
django: "42"
1720
steps:
1821
- name: Checkout
1922
uses: actions/checkout@v5

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,13 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [v14.2.0](https://github.com/eduNEXT/eox-tenant/compare/v14.1.2...v14.2.0) - (2025-10-13)
9+
10+
### Changed
11+
12+
- **Ulmo Support**: Upgrade requirements base on edx-platform Ulmo
13+
release, update GitHub Workflows with new actions version.
14+
815
## [v14.1.2](https://github.com/eduNEXT/eox-tenant/compare/v14.1.1...v14.1.2) - (2025-09-09)
916

1017
### Changed

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ upgrade: ## update the requirements/*.txt files with the latest packages satisfy
3737
$(PIP_COMPILE) -o requirements/test.txt requirements/test.in
3838
$(PIP_COMPILE) -o requirements/tox.txt requirements/tox.in
3939

40-
grep -e "^django==" requirements/test.txt > requirements/django42.txt
40+
grep -e "^django==" requirements/test.txt > requirements/django52.txt
4141
sed '/^[dD]jango==/d;' requirements/test.txt > requirements/test.tmp
4242
mv requirements/test.tmp requirements/test.txt
4343

README.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,9 @@ Compatibility Notes
7171
+------------------+------------------+
7272
| Teak | >= v14.0.0 |
7373
+------------------+------------------+
74+
+------------------+------------------+
75+
| Ulmo | >= v14.2.0 |
76+
+------------------+------------------+
7477

7578
The plugin is configured for the latest release (Teak). The following changes in the plugin settings should be applied to be used for previous releases.
7679

eox_tenant/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
"""
22
Init for eox-tenant.
33
"""
4-
__version__ = '14.1.1'
4+
__version__ = '14.2.0'

eox_tenant/test/test_tenant_wise.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -232,4 +232,6 @@ def test_get_site_values_with_unserializable_settings(self):
232232

233233
with self.assertRaises(TypeError):
234234
json.dumps(unserializable_settings)
235-
self.assertDictContainsSubset(site_values, unserializable_settings)
235+
for key, value in site_values.items():
236+
self.assertIn(key, unserializable_settings)
237+
self.assertEqual(unserializable_settings[key], value)

requirements/base.txt

Lines changed: 33 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -4,33 +4,32 @@
44
#
55
# make upgrade
66
#
7-
asgiref==3.8.1
7+
asgiref==3.10.0
88
# via django
9-
certifi==2025.4.26
9+
certifi==2025.10.5
1010
# via requests
11-
cffi==1.17.1
11+
cffi==2.0.0
1212
# via
1313
# cryptography
1414
# pynacl
15-
charset-normalizer==3.4.2
15+
charset-normalizer==3.4.3
1616
# via requests
17-
click==8.2.1
17+
click==8.3.0
1818
# via edx-django-utils
19-
cryptography==45.0.4
20-
# via
21-
# pyjwt
22-
# social-auth-core
19+
cryptography==46.0.2
20+
# via pyjwt
2321
defusedxml==0.7.1
2422
# via
2523
# python3-openid
2624
# social-auth-core
27-
django==4.2.23
25+
django==5.2.7
2826
# via
29-
# -c https://raw.githubusercontent.com/openedx/edx-lint/master/edx_lint/files/common_constraints.txt
27+
# -c requirements/constraints.txt
3028
# -r requirements/base.in
3129
# django-crum
3230
# django-model-utils
3331
# django-mysql
32+
# django-simple-history
3433
# django-waffle
3534
# djangorestframework
3635
# drf-jwt
@@ -45,27 +44,25 @@ django-crum==0.7.9
4544
# edx-django-utils
4645
django-model-utils==5.0.0
4746
# via edx-organizations
48-
django-mysql==4.17.0
47+
django-mysql==4.19.0
4948
# via -r requirements/base.in
50-
django-simple-history==3.0.0
51-
# via
52-
# -c https://raw.githubusercontent.com/openedx/edx-lint/master/edx_lint/files/common_constraints.txt
53-
# edx-organizations
54-
django-waffle==4.2.0
49+
django-simple-history==3.10.1
50+
# via edx-organizations
51+
django-waffle==5.0.0
5552
# via
5653
# edx-django-utils
5754
# edx-drf-extensions
58-
djangorestframework==3.16.0
55+
djangorestframework==3.16.1
5956
# via
6057
# -r requirements/base.in
6158
# drf-jwt
6259
# edx-drf-extensions
6360
# edx-organizations
64-
dnspython==2.7.0
61+
dnspython==2.8.0
6562
# via pymongo
6663
drf-jwt==1.19.2
6764
# via edx-drf-extensions
68-
edx-django-utils==8.0.0
65+
edx-django-utils==8.0.1
6966
# via edx-drf-extensions
7067
edx-drf-extensions==10.6.0
7168
# via
@@ -77,38 +74,37 @@ edx-opaque-keys[django]==3.0.0
7774
# edx-drf-extensions
7875
# edx-organizations
7976
# openedx-filters
80-
edx-organizations==7.1.0
77+
edx-organizations==7.3.0
8178
# via -r requirements/base.in
82-
idna==3.10
79+
idna==3.11
8380
# via requests
84-
jsonfield==3.1.0
81+
jsonfield==3.2.0
8582
# via -r requirements/base.in
86-
oauthlib==3.2.2
83+
oauthlib==3.3.1
8784
# via
8885
# requests-oauthlib
8986
# social-auth-core
9087
openedx-filters==2.1.0
9188
# via -r requirements/base.in
92-
pbr==6.1.1
93-
# via stevedore
94-
pillow==11.2.1
89+
pillow==11.3.0
9590
# via edx-organizations
96-
psutil==7.0.0
91+
psutil==7.1.0
9792
# via edx-django-utils
98-
pycparser==2.22
93+
pycparser==2.23
9994
# via cffi
10095
pyjwt[crypto]==2.10.1
10196
# via
10297
# drf-jwt
10398
# edx-drf-extensions
99+
# pyjwt
104100
# social-auth-core
105-
pymongo==4.13.0
101+
pymongo==4.15.3
106102
# via edx-opaque-keys
107-
pynacl==1.5.0
103+
pynacl==1.6.0
108104
# via edx-django-utils
109105
python3-openid==3.2.0
110106
# via social-auth-core
111-
requests==2.32.4
107+
requests==2.32.5
112108
# via
113109
# edx-drf-extensions
114110
# requests-oauthlib
@@ -119,20 +115,18 @@ semantic-version==2.10.0
119115
# via edx-drf-extensions
120116
six==1.17.0
121117
# via -r requirements/base.in
122-
social-auth-core==4.6.1
118+
social-auth-core==4.8.1
123119
# via -r requirements/base.in
124120
sqlparse==0.5.3
125121
# via django
126-
stevedore==5.4.1
122+
stevedore==5.5.0
127123
# via
128124
# edx-django-utils
129125
# edx-opaque-keys
130-
typing-extensions==4.14.0
126+
typing-extensions==4.15.0
131127
# via edx-opaque-keys
132-
urllib3==2.2.3
133-
# via
134-
# -c https://raw.githubusercontent.com/openedx/edx-lint/master/edx_lint/files/common_constraints.txt
135-
# requests
128+
urllib3==2.5.0
129+
# via requests
136130

137131
# The following packages are considered to be unsafe in a requirements file:
138132
# setuptools

requirements/constraints.txt

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,16 @@
99
# linking to it here is good.
1010

1111

12-
# Common constraints for Open edX repos
13-
-c https://raw.githubusercontent.com/openedx/edx-lint/master/edx_lint/files/common_constraints.txt
12+
# using LTS django version
13+
Django<6.0
14+
15+
# elasticsearch>=7.14.0 includes breaking changes in it which caused issues in discovery upgrade process.
16+
# elastic search changelog: https://www.elastic.co/guide/en/enterprise-search/master/release-notes-7.14.0.html
17+
# See https://github.com/openedx/edx-platform/issues/35126 for more info
18+
elasticsearch<7.14.0
19+
20+
# NOTE: Pylint 4.x introduces changes in how the "ignore" and "ignore-patterns" options
21+
# are parsed from setup.cfg and other configuration files. This causes Django migration
22+
# modules (e.g., eox_tenant/migrations) to be linted even when explicitly ignored.
23+
# Until we find a stable fix or plugin-based workaround, we keep Pylint pinned below 4.
24+
pylint<4

requirements/django52.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
django==5.2.7

requirements/pip-tools.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@
44
#
55
# make upgrade
66
#
7-
build==1.2.2.post1
7+
build==1.3.0
88
# via pip-tools
9-
click==8.2.1
9+
click==8.3.0
1010
# via pip-tools
1111
packaging==25.0
1212
# via build
13-
pip-tools==7.4.1
13+
pip-tools==7.5.1
1414
# via -r requirements/pip-tools.in
1515
pyproject-hooks==1.2.0
1616
# via

0 commit comments

Comments
 (0)