Skip to content

Commit 7e7957f

Browse files
authored
chore: add support for Python 3.12 and Django 5.2 (#325)
1 parent d80e3ac commit 7e7957f

File tree

14 files changed

+154
-124
lines changed

14 files changed

+154
-124
lines changed

.github/workflows/tests.yml

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

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,13 @@ Please do not update the unreleased notes.
1111

1212
<!-- Content should be placed here -->
1313

14+
## [v12.2.0](https://github.com/eduNEXT/eox-core/compare/v12.1.0...v12.2.0) - (2025-10-13)
15+
16+
### Changed
17+
18+
- **Ulmo Support**: Upgrade requirements base on edx-platform Ulmo
19+
release, update GitHub Workflows with new actions version.
20+
1421
## [v12.1.0](https://github.com/eduNEXT/eox-core/compare/v12.0.0...v12.1.0) - (2025-07-01)
1522

1623
### Added

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,6 @@ upgrade: ## update the requirements/*.txt files with the latest packages satisfy
6161
$(PIP_COMPILE) -o requirements/test.txt requirements/test.in
6262
$(PIP_COMPILE) -o requirements/tox.txt requirements/tox.in
6363

64-
grep -e "^django==" requirements/test.txt > requirements/django42.txt
64+
grep -e "^django==" requirements/test.txt > requirements/django52.txt
6565
sed '/^[dD]jango==/d;' requirements/test.txt > requirements/test.tmp
6666
mv requirements/test.tmp requirements/test.txt

README.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,8 @@ Compatibility Notes
7777
+------------------+---------------+
7878
| Teak | >= 12.0.0 |
7979
+------------------+---------------+
80+
| Ulmo | >= 12.2.0 |
81+
+------------------+---------------+
8082

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

eox_core/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
"""
22
Init for main eox-core app
33
"""
4-
__version__ = '12.1.0'
4+
__version__ = '12.2.0'

requirements/base.txt

Lines changed: 45 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -8,25 +8,25 @@ amqp==5.3.1
88
# via kombu
99
appdirs==1.4.4
1010
# via fs
11-
asgiref==3.8.1
11+
asgiref==3.10.0
1212
# via django
13-
attrs==25.3.0
13+
attrs==25.4.0
1414
# via openedx-events
15-
billiard==4.2.1
15+
billiard==4.2.2
1616
# via celery
1717
celery==5.5.3
1818
# via
1919
# -r requirements/base.in
2020
# event-tracking
21-
certifi==2025.4.26
21+
certifi==2025.10.5
2222
# via requests
23-
cffi==1.17.1
23+
cffi==2.0.0
2424
# via
2525
# cryptography
2626
# pynacl
27-
charset-normalizer==3.4.2
27+
charset-normalizer==3.4.3
2828
# via requests
29-
click==8.2.1
29+
click==8.3.0
3030
# via
3131
# -r requirements/base.in
3232
# celery
@@ -37,29 +37,29 @@ click==8.2.1
3737
# edx-django-utils
3838
click-didyoumean==0.3.1
3939
# via celery
40-
click-plugins==1.1.1
40+
click-plugins==1.1.1.2
4141
# via celery
4242
click-repl==0.3.0
4343
# via celery
4444
code-annotations==2.3.0
4545
# via edx-toggles
46-
cryptography==45.0.4
46+
cryptography==46.0.2
4747
# via
4848
# jwcrypto
4949
# pyjwt
50-
# social-auth-core
5150
defusedxml==0.7.1
5251
# via
5352
# python3-openid
5453
# social-auth-core
55-
django==4.2.23
54+
django==5.2.7
5655
# via
57-
# -c https://raw.githubusercontent.com/openedx/edx-lint/master/edx_lint/files/common_constraints.txt
56+
# -c requirements/constraints.txt
5857
# -r requirements/base.in
5958
# django-crum
6059
# django-filter
6160
# django-model-utils
6261
# django-oauth-toolkit
62+
# django-simple-history
6363
# django-waffle
6464
# djangorestframework
6565
# drf-jwt
@@ -79,7 +79,9 @@ django-crum==0.7.9
7979
# edx-proctoring
8080
# edx-toggles
8181
django-filter==25.1
82-
# via -r requirements/base.in
82+
# via
83+
# -c requirements/constraints.txt
84+
# -r requirements/base.in
8385
django-ipware==7.0.1
8486
# via edx-proctoring
8587
django-model-utils==5.0.0
@@ -92,38 +94,36 @@ django-oauth-toolkit==1.7.1
9294
# -r requirements/base.in
9395
django-oauth2-provider==0.2.6.1
9496
# via -r requirements/base.in
95-
django-simple-history==3.0.0
96-
# via
97-
# -c https://raw.githubusercontent.com/openedx/edx-lint/master/edx_lint/files/common_constraints.txt
98-
# edx-proctoring
99-
django-waffle==4.2.0
97+
django-simple-history==3.10.1
98+
# via edx-proctoring
99+
django-waffle==5.0.0
100100
# via
101101
# -r requirements/base.in
102102
# edx-django-utils
103103
# edx-drf-extensions
104104
# edx-proctoring
105105
# edx-toggles
106-
django-webpack-loader==3.2.0
106+
django-webpack-loader==3.2.1
107107
# via edx-proctoring
108-
djangorestframework==3.16.0
108+
djangorestframework==3.16.1
109109
# via
110110
# -r requirements/base.in
111111
# drf-jwt
112112
# drf-yasg
113113
# edx-api-doc-tools
114114
# edx-drf-extensions
115115
# edx-proctoring
116-
dnspython==2.7.0
116+
dnspython==2.8.0
117117
# via pymongo
118118
drf-jwt==1.19.2
119119
# via edx-drf-extensions
120-
drf-yasg==1.21.10
120+
drf-yasg==1.21.11
121121
# via edx-api-doc-tools
122122
edx-api-doc-tools==2.1.0
123123
# via -r requirements/base.in
124124
edx-ccx-keys==2.0.2
125125
# via openedx-events
126-
edx-django-utils==8.0.0
126+
edx-django-utils==8.0.1
127127
# via
128128
# edx-drf-extensions
129129
# edx-rest-api-client
@@ -147,57 +147,55 @@ edx-proctoring==5.2.0
147147
# via -r requirements/base.in
148148
edx-rest-api-client==6.2.0
149149
# via edx-proctoring
150-
edx-toggles==5.3.0
150+
edx-toggles==5.4.1
151151
# via event-tracking
152152
edx-when==3.0.0
153153
# via edx-proctoring
154154
event-tracking==3.3.0
155155
# via edx-proctoring
156-
fastavro==1.11.1
156+
fastavro==1.12.1
157157
# via openedx-events
158158
fs==2.4.16
159159
# via xblock
160-
idna==3.10
160+
idna==3.11
161161
# via requests
162162
inflection==0.5.1
163163
# via drf-yasg
164164
jinja2==3.1.6
165165
# via code-annotations
166-
jsonfield==3.1.0
166+
jsonfield==3.2.0
167167
# via edx-proctoring
168168
jwcrypto==1.5.6
169169
# via django-oauth-toolkit
170170
kombu==5.5.4
171171
# via celery
172-
lxml==5.4.0
172+
lxml==6.0.2
173173
# via xblock
174174
mako==1.3.10
175175
# via xblock
176-
markupsafe==3.0.2
176+
markupsafe==3.0.3
177177
# via
178178
# jinja2
179179
# mako
180180
# xblock
181-
oauthlib==3.2.2
181+
oauthlib==3.3.1
182182
# via
183183
# django-oauth-toolkit
184184
# requests-oauthlib
185185
# social-auth-core
186-
openedx-events==10.2.1
186+
openedx-events==10.5.0
187187
# via
188188
# -r requirements/base.in
189189
# event-tracking
190190
packaging==25.0
191191
# via
192192
# drf-yasg
193193
# kombu
194-
pbr==6.1.1
195-
# via stevedore
196-
prompt-toolkit==3.0.51
194+
prompt-toolkit==3.0.52
197195
# via click-repl
198-
psutil==7.0.0
196+
psutil==7.1.0
199197
# via edx-django-utils
200-
pycparser==2.22
198+
pycparser==2.23
201199
# via cffi
202200
pycryptodomex==3.23.0
203201
# via edx-proctoring
@@ -208,11 +206,11 @@ pyjwt[crypto]==2.10.1
208206
# edx-proctoring
209207
# edx-rest-api-client
210208
# social-auth-core
211-
pymongo==4.13.0
209+
pymongo==4.15.3
212210
# via
213211
# edx-opaque-keys
214212
# event-tracking
215-
pynacl==1.5.0
213+
pynacl==1.6.0
216214
# via edx-django-utils
217215
python-dateutil==2.9.0.post0
218216
# via
@@ -231,12 +229,12 @@ pytz==2025.2
231229
# edx-proctoring
232230
# event-tracking
233231
# xblock
234-
pyyaml==6.0.2
232+
pyyaml==6.0.3
235233
# via
236234
# code-annotations
237235
# drf-yasg
238236
# xblock
239-
requests==2.32.4
237+
requests==2.32.5
240238
# via
241239
# django-oauth-toolkit
242240
# edx-drf-extensions
@@ -251,7 +249,7 @@ semantic-version==2.10.0
251249
# via edx-drf-extensions
252250
shortuuid==1.0.13
253251
# via django-oauth2-provider
254-
simplejson==3.20.1
252+
simplejson==3.20.2
255253
# via xblock
256254
six==1.17.0
257255
# via
@@ -260,35 +258,33 @@ six==1.17.0
260258
# event-tracking
261259
# fs
262260
# python-dateutil
263-
social-auth-core==4.6.1
261+
social-auth-core==4.8.1
264262
# via -r requirements/base.in
265263
sqlparse==0.5.3
266264
# via django
267-
stevedore==5.4.1
265+
stevedore==5.5.0
268266
# via
269267
# code-annotations
270268
# edx-django-utils
271269
# edx-opaque-keys
272270
text-unidecode==1.3
273271
# via python-slugify
274-
typing-extensions==4.14.0
272+
typing-extensions==4.15.0
275273
# via
276274
# edx-opaque-keys
277275
# jwcrypto
278276
tzdata==2025.2
279277
# via kombu
280278
uritemplate==4.2.0
281279
# via drf-yasg
282-
urllib3==2.2.3
283-
# via
284-
# -c https://raw.githubusercontent.com/openedx/edx-lint/master/edx_lint/files/common_constraints.txt
285-
# requests
280+
urllib3==2.5.0
281+
# via requests
286282
vine==5.1.0
287283
# via
288284
# amqp
289285
# celery
290286
# kombu
291-
wcwidth==0.2.13
287+
wcwidth==0.2.14
292288
# via prompt-toolkit
293289
web-fragments==3.1.0
294290
# via xblock

requirements/constraints.txt

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,26 @@
88
# pin when possible. Writing an issue against the offending project and
99
# linking to it here is good.
1010

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

1425
# As it is not clarified what exact breaking changes will be introduced as per
1526
# the next major release, ensure the installed version is within boundaries.
1627
# Issue for unpinning: https://github.com/openedx/edx-platform/issues/32884
1728
django-oauth-toolkit<2.0.0
29+
30+
# django-filter 25.2 dropped support for Django 4.2.
31+
# Pinning to 25.1 to maintain compatibility with Django 4.2 environments.
32+
# Once Django 4.2 support is dropped, this constraint can be removed.
33+
django-filter==25.1

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)