Skip to content

Commit ae26c18

Browse files
author
Feanil Patel
authored
Merge pull request #259 from openedx/python-support
Python support 3.11 and 3.12
2 parents cc3eb3a + 192e3c3 commit ae26c18

16 files changed

Lines changed: 200 additions & 132 deletions

File tree

.github/workflows/ci.yml

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,10 @@ jobs:
1414
strategy:
1515
matrix:
1616
os: [ubuntu-20.04]
17-
python-version: ["3.8"]
17+
python-version: ["3.8", "3.11", "3.12"]
1818
toxenv:
1919
[
20-
py38-django32-drf312,
21-
py38-django32-drflatest,
22-
py38-django42-drflatest,
23-
quality,
20+
py38-django42-drflatest,quality
2421
]
2522

2623
steps:

CHANGELOG.rst

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,13 @@ Change Log
1414
Unreleased
1515
----------
1616

17+
1.8.0 --- 2024-02-29
18+
--------------------
19+
* Add support for python 3.11 and 3.12 support.
20+
* Removed django32 support.
21+
22+
23+
1724
1.7.0 --- 2023-07-23
1825
--------------------
1926

Makefile

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,22 @@ pip:
4848
upgrade-pip-tools: pip-tools
4949
pip-compile --upgrade requirements/pip-tools.in
5050

51+
define COMMON_CONSTRAINTS_TEMP_COMMENT
52+
# This is a temporary solution to override the real common_constraints.txt\n# In edx-lint, until the pyjwt constraint in edx-lint has been removed.\n# See BOM-2721 for more details.\n# Below is the copied and edited version of common_constraints\n
53+
endef
54+
55+
COMMON_CONSTRAINTS_TXT=requirements/common_constraints.txt
56+
.PHONY: $(COMMON_CONSTRAINTS_TXT)
57+
$(COMMON_CONSTRAINTS_TXT):
58+
wget -O "$(@)" https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt || touch "$(@)"
59+
echo "$(COMMON_CONSTRAINTS_TEMP_COMMENT)" | cat - $(@) > temp && mv temp $(@)
60+
5161
upgrade: export CUSTOM_COMPILE_COMMAND=make upgrade
52-
upgrade: ## update the requirements/*.txt files with the latest packages satisfying requirements/*.in
62+
upgrade: $(COMMON_CONSTRAINTS_TXT) ## update the requirements/*.txt files with the latest packages satisfying requirements/*.in
5363
# Make sure to compile files after any other files they include!
5464
pip install -qr requirements/pip-tools.txt
65+
sed 's/Django<4.0//g' requirements/common_constraints.txt > requirements/common_constraints.tmp
66+
mv requirements/common_constraints.tmp requirements/common_constraints.txt
5567
pip-compile --upgrade -o requirements/pip-tools.txt requirements/pip-tools.in
5668
pip-compile --upgrade --allow-unsafe --rebuild -o requirements/pip.txt requirements/pip.in
5769
pip install -qr requirements/pip-tools.txt

edx_api_doc_tools/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,4 +46,4 @@
4646
)
4747

4848

49-
__version__ = '1.7.0'
49+
__version__ = '1.8.0'

requirements/base.txt

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,29 +4,31 @@
44
#
55
# make upgrade
66
#
7-
asgiref==3.7.2
7+
asgiref==3.8.1
88
# via django
9-
django==3.2.24
9+
backports-zoneinfo==0.2.1 ; python_version < "3.9"
1010
# via
11-
# -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt
11+
# -c requirements/constraints.txt
12+
# django
13+
# djangorestframework
14+
django==4.2.11
15+
# via
16+
# -c requirements/common_constraints.txt
1217
# -r requirements/base.in
1318
# djangorestframework
1419
# drf-yasg
15-
djangorestframework==3.14.0
20+
djangorestframework==3.15.1
1621
# via
1722
# -r requirements/base.in
1823
# drf-yasg
1924
drf-yasg==1.21.7
2025
# via -r requirements/base.in
2126
inflection==0.5.1
2227
# via drf-yasg
23-
packaging==23.2
28+
packaging==24.0
2429
# via drf-yasg
2530
pytz==2024.1
26-
# via
27-
# django
28-
# djangorestframework
29-
# drf-yasg
31+
# via drf-yasg
3032
pyyaml==6.0.1
3133
# via drf-yasg
3234
sqlparse==0.4.4

requirements/ci.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,11 @@ colorama==0.4.6
1212
# via tox
1313
distlib==0.3.8
1414
# via virtualenv
15-
filelock==3.13.1
15+
filelock==3.13.3
1616
# via
1717
# tox
1818
# virtualenv
19-
packaging==23.2
19+
packaging==24.0
2020
# via
2121
# pyproject-api
2222
# tox
@@ -32,7 +32,7 @@ tomli==2.0.1
3232
# via
3333
# pyproject-api
3434
# tox
35-
tox==4.13.0
35+
tox==4.14.2
3636
# via -r requirements/ci.in
3737
virtualenv==20.25.1
3838
# via tox
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# This is a temporary solution to override the real common_constraints.txt
2+
# In edx-lint, until the pyjwt constraint in edx-lint has been removed.
3+
# See BOM-2721 for more details.
4+
# Below is the copied and edited version of common_constraints
5+
6+
# A central location for most common version constraints
7+
# (across edx repos) for pip-installation.
8+
#
9+
# Similar to other constraint files this file doesn't install any packages.
10+
# It specifies version constraints that will be applied if a package is needed.
11+
# When pinning something here, please provide an explanation of why it is a good
12+
# idea to pin this package across all edx repos, Ideally, link to other information
13+
# that will help people in the future to remove the pin when possible.
14+
# Writing an issue against the offending project and linking to it here is good.
15+
#
16+
# Note: Changes to this file will automatically be used by other repos, referencing
17+
# this file from Github directly. It does not require packaging in edx-lint.
18+
19+
20+
# using LTS django version
21+
Django<5.0
22+
23+
# elasticsearch>=7.14.0 includes breaking changes in it which caused issues in discovery upgrade process.
24+
# elastic search changelog: https://www.elastic.co/guide/en/enterprise-search/master/release-notes-7.14.0.html
25+
elasticsearch<7.14.0
26+
27+
# django-simple-history>3.0.0 adds indexing and causes a lot of migrations to be affected
28+
django-simple-history==3.0.0
29+
30+
# opentelemetry requires version 6.x at the moment:
31+
# https://github.com/open-telemetry/opentelemetry-python/issues/3570
32+
# Normally this could be added as a constraint in edx-django-utils, where we're
33+
# adding the opentelemetry dependency. However, when we compile pip-tools.txt,
34+
# that uses version 7.x, and then there's no undoing that when compiling base.txt.
35+
# So we need to pin it globally, for now.
36+
# Ticket for unpinning: https://github.com/openedx/edx-lint/issues/407
37+
importlib-metadata<7
38+

requirements/constraints.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,6 @@
99
# linking to it here is good.
1010

1111
# Common constraints for edx repos
12-
-c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt
12+
-c common_constraints.txt
13+
14+
backports.zoneinfo;python_version<"3.9"

requirements/dev.txt

Lines changed: 36 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
#
55
# make upgrade
66
#
7-
asgiref==3.7.2
7+
asgiref==3.8.1
88
# via
99
# -r requirements/quality.txt
1010
# django
@@ -13,7 +13,13 @@ astroid==3.1.0
1313
# -r requirements/quality.txt
1414
# pylint
1515
# pylint-celery
16-
build==1.0.3
16+
backports-zoneinfo==0.2.1 ; python_version < "3.9"
17+
# via
18+
# -c requirements/constraints.txt
19+
# -r requirements/quality.txt
20+
# django
21+
# djangorestframework
22+
build==1.2.1
1723
# via
1824
# -r requirements/pip-tools.txt
1925
# pip-tools
@@ -25,10 +31,6 @@ certifi==2024.2.2
2531
# via
2632
# -r requirements/quality.txt
2733
# requests
28-
cffi==1.16.0
29-
# via
30-
# -r requirements/quality.txt
31-
# cryptography
3234
chardet==5.2.0
3335
# via
3436
# -r requirements/ci.txt
@@ -50,15 +52,15 @@ click-log==0.4.0
5052
# via
5153
# -r requirements/quality.txt
5254
# edx-lint
53-
code-annotations==1.6.0
55+
code-annotations==1.7.0
5456
# via
5557
# -r requirements/quality.txt
5658
# edx-lint
5759
colorama==0.4.6
5860
# via
5961
# -r requirements/ci.txt
6062
# tox
61-
coverage[toml]==7.4.3
63+
coverage[toml]==7.4.4
6264
# via
6365
# -r requirements/quality.txt
6466
# pytest-cov
@@ -76,14 +78,14 @@ distlib==0.3.8
7678
# via
7779
# -r requirements/ci.txt
7880
# virtualenv
79-
django==3.2.24
81+
django==4.2.11
8082
# via
81-
# -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt
83+
# -c requirements/common_constraints.txt
8284
# -r requirements/quality.txt
8385
# djangorestframework
8486
# drf-yasg
8587
# edx-i18n-tools
86-
djangorestframework==3.14.0
88+
djangorestframework==3.15.1
8789
# via
8890
# -r requirements/quality.txt
8991
# drf-yasg
@@ -101,7 +103,7 @@ exceptiongroup==1.2.0
101103
# via
102104
# -r requirements/quality.txt
103105
# pytest
104-
filelock==3.13.1
106+
filelock==3.13.3
105107
# via
106108
# -r requirements/ci.txt
107109
# tox
@@ -110,14 +112,15 @@ idna==3.6
110112
# via
111113
# -r requirements/quality.txt
112114
# requests
113-
importlib-metadata==7.0.1
115+
importlib-metadata==6.11.0
114116
# via
117+
# -c requirements/common_constraints.txt
115118
# -r requirements/pip-tools.txt
116119
# -r requirements/quality.txt
117120
# build
118121
# keyring
119122
# twine
120-
importlib-resources==6.1.2
123+
importlib-resources==6.4.0
121124
# via
122125
# -r requirements/quality.txt
123126
# keyring
@@ -133,25 +136,28 @@ isort==5.13.2
133136
# via
134137
# -r requirements/quality.txt
135138
# pylint
136-
jaraco-classes==3.3.1
139+
jaraco-classes==3.4.0
137140
# via
138141
# -r requirements/quality.txt
139142
# keyring
140-
jeepney==0.8.0
143+
jaraco-context==4.3.0
144+
# via
145+
# -r requirements/quality.txt
146+
# keyring
147+
jaraco-functools==4.0.0
141148
# via
142149
# -r requirements/quality.txt
143150
# keyring
144-
# secretstorage
145151
jinja2==3.1.3
146152
# via
147153
# -r requirements/quality.txt
148154
# code-annotations
149155
# diff-cover
150-
keyring==24.3.1
156+
keyring==25.0.0
151157
# via
152158
# -r requirements/quality.txt
153159
# twine
154-
lxml==5.1.0
160+
lxml==5.2.0
155161
# via edx-i18n-tools
156162
markdown-it-py==3.0.0
157163
# via
@@ -173,11 +179,12 @@ more-itertools==10.2.0
173179
# via
174180
# -r requirements/quality.txt
175181
# jaraco-classes
176-
nh3==0.2.15
182+
# jaraco-functools
183+
nh3==0.2.17
177184
# via
178185
# -r requirements/quality.txt
179186
# readme-renderer
180-
packaging==23.2
187+
packaging==24.0
181188
# via
182189
# -r requirements/ci.txt
183190
# -r requirements/pip-tools.txt
@@ -193,9 +200,9 @@ pbr==6.0.0
193200
# via
194201
# -r requirements/quality.txt
195202
# stevedore
196-
pip-tools==7.4.0
203+
pip-tools==7.4.1
197204
# via -r requirements/pip-tools.txt
198-
pkginfo==1.9.6
205+
pkginfo==1.10.0
199206
# via
200207
# -r requirements/quality.txt
201208
# twine
@@ -217,7 +224,7 @@ polib==1.2.0
217224
# via edx-i18n-tools
218225
pycodestyle==2.11.1
219226
# via -r requirements/quality.txt
220-
pycparser==2.21
227+
pycparser==2.22
221228
# via
222229
# -r requirements/quality.txt
223230
# cffi
@@ -258,12 +265,12 @@ pyproject-hooks==1.0.0
258265
# -r requirements/pip-tools.txt
259266
# build
260267
# pip-tools
261-
pytest==8.0.2
268+
pytest==8.1.1
262269
# via
263270
# -r requirements/quality.txt
264271
# pytest-cov
265272
# pytest-django
266-
pytest-cov==4.1.0
273+
pytest-cov==5.0.0
267274
# via -r requirements/quality.txt
268275
pytest-django==4.8.0
269276
# via -r requirements/quality.txt
@@ -274,8 +281,6 @@ python-slugify==8.0.4
274281
pytz==2024.1
275282
# via
276283
# -r requirements/quality.txt
277-
# django
278-
# djangorestframework
279284
# drf-yasg
280285
pyyaml==6.0.1
281286
# via
@@ -304,10 +309,6 @@ rich==13.7.1
304309
# via
305310
# -r requirements/quality.txt
306311
# twine
307-
secretstorage==3.3.3
308-
# via
309-
# -r requirements/quality.txt
310-
# keyring
311312
six==1.16.0
312313
# via
313314
# -r requirements/quality.txt
@@ -345,7 +346,7 @@ tomlkit==0.12.4
345346
# via
346347
# -r requirements/quality.txt
347348
# pylint
348-
tox==4.13.0
349+
tox==4.14.2
349350
# via -r requirements/ci.txt
350351
twine==5.0.0
351352
# via -r requirements/quality.txt
@@ -369,11 +370,11 @@ virtualenv==20.25.1
369370
# via
370371
# -r requirements/ci.txt
371372
# tox
372-
wheel==0.42.0
373+
wheel==0.43.0
373374
# via
374375
# -r requirements/pip-tools.txt
375376
# pip-tools
376-
zipp==3.17.0
377+
zipp==3.18.1
377378
# via
378379
# -r requirements/pip-tools.txt
379380
# -r requirements/quality.txt

0 commit comments

Comments
 (0)