Skip to content

Commit

Permalink
Merge pull request #183 from openedx/jenkins/add-python312-support-ff…
Browse files Browse the repository at this point in the history
…17633

feat: add python 3.11 and 3.12 support
  • Loading branch information
Feanil Patel authored Apr 2, 2024
2 parents 52fc520 + 1bfc318 commit 93c878e
Show file tree
Hide file tree
Showing 14 changed files with 166 additions and 126 deletions.
55 changes: 29 additions & 26 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,31 +13,34 @@ jobs:
strategy:
matrix:
os: [ubuntu-20.04]
python-version: ['3.8']
toxenv: [django32, django42, docs, quality]
python-version:
- '3.8'
- '3.11'
- '3.12'
toxenv: [django42, docs, quality]

steps:
- uses: actions/checkout@v4
- name: setup python
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}

- name: Install pip
run: pip install -r requirements/pip.txt

- name: Install Dependencies
run: pip install -r requirements/ci.txt

- name: Run Tests
env:
TOXENV: ${{ matrix.toxenv }}
run: tox

- name: Run coverage
if: matrix.python-version == '3.8' && matrix.toxenv == 'django42'
uses: codecov/codecov-action@v3
with:
flags: unittests
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: true
- uses: actions/checkout@v4
- name: setup python
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}

- name: Install pip
run: pip install -r requirements/pip.txt

- name: Install Dependencies
run: pip install -r requirements/ci.txt

- name: Run Tests
env:
TOXENV: ${{ matrix.toxenv }}
run: tox

- name: Run coverage
if: matrix.python-version == '3.8' && matrix.toxenv == 'django42'
uses: codecov/codecov-action@v3
with:
flags: unittests
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: true
2 changes: 1 addition & 1 deletion docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
'sphinx.ext.doctest',
'sphinx.ext.intersphinx',
'sphinx.ext.ifconfig',
'sphinxcontrib.napoleon'
'sphinx.ext.napoleon'
]

# A list of warning types to suppress arbitrary warning messages.
Expand Down
6 changes: 3 additions & 3 deletions requirements/ci.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,11 @@ colorama==0.4.6
# via tox
distlib==0.3.8
# via virtualenv
filelock==3.13.1
filelock==3.13.3
# via
# tox
# virtualenv
packaging==23.2
packaging==24.0
# via
# pyproject-api
# tox
Expand All @@ -34,7 +34,7 @@ tomli==2.0.1
# via
# pyproject-api
# tox
tox==4.13.0
tox==4.14.2
# via -r requirements/ci.in
virtualenv==20.25.1
# via
Expand Down
9 changes: 9 additions & 0 deletions requirements/common_constraints.txt
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,12 @@ elasticsearch<7.14.0

# django-simple-history>3.0.0 adds indexing and causes a lot of migrations to be affected
django-simple-history==3.0.0

# opentelemetry requires version 6.x at the moment:
# https://github.com/open-telemetry/opentelemetry-python/issues/3570
# Normally this could be added as a constraint in edx-django-utils, where we're
# adding the opentelemetry dependency. However, when we compile pip-tools.txt,
# that uses version 7.x, and then there's no undoing that when compiling base.txt.
# So we need to pin it globally, for now.
# Ticket for unpinning: https://github.com/openedx/edx-lint/issues/407
importlib-metadata<7
5 changes: 5 additions & 0 deletions requirements/constraints.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,8 @@

# This file contains all common constraints for edx-repos
-c common_constraints.txt



# Temporary to Support the python 3.11 Upgrade
backports.zoneinfo;python_version<"3.9" # Newer versions have zoneinfo available in the standard library
47 changes: 28 additions & 19 deletions requirements/dev.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,16 @@
#
# make upgrade
#
asgiref==3.7.2
asgiref==3.8.1
# via django
astroid==3.1.0
# via
# pylint
# pylint-celery
backports-zoneinfo==0.2.1
# via django
backports-zoneinfo==0.2.1 ; python_version < "3.9"
# via
# -c requirements/constraints.txt
# django
cachetools==5.3.3
# via tox
certifi==2024.2.2
Expand All @@ -31,7 +33,7 @@ click==8.1.7
# edx-lint
click-log==0.4.0
# via edx-lint
code-annotations==1.6.0
code-annotations==1.7.0
# via edx-lint
colorama==0.4.6
# via tox
Expand All @@ -43,7 +45,7 @@ dill==0.3.8
# via pylint
distlib==0.3.8
# via virtualenv
django==4.2.10
django==4.2.11
# via
# -c requirements/common_constraints.txt
# -r requirements/quality.in
Expand All @@ -54,23 +56,28 @@ edx-i18n-tools==1.3.0
# via -r requirements/dev.in
edx-lint==5.3.6
# via -r requirements/quality.in
filelock==3.13.1
filelock==3.13.3
# via
# tox
# virtualenv
idna==3.6
# via requests
importlib-metadata==7.0.1
importlib-metadata==6.11.0
# via
# -c requirements/common_constraints.txt
# keyring
# twine
importlib-resources==6.1.2
importlib-resources==6.4.0
# via keyring
isort==5.13.2
# via
# -r requirements/quality.in
# pylint
jaraco-classes==3.3.1
jaraco-classes==3.4.0
# via keyring
jaraco-context==4.3.0
# via keyring
jaraco-functools==4.0.0
# via keyring
jeepney==0.8.0
# via
Expand All @@ -80,9 +87,9 @@ jinja2==3.1.3
# via
# code-annotations
# diff-cover
keyring==24.3.1
keyring==25.0.0
# via twine
lxml==5.1.0
lxml==5.2.0
# via edx-i18n-tools
markdown-it-py==3.0.0
# via rich
Expand All @@ -93,18 +100,20 @@ mccabe==0.7.0
mdurl==0.1.2
# via markdown-it-py
more-itertools==10.2.0
# via jaraco-classes
nh3==0.2.15
# via
# jaraco-classes
# jaraco-functools
nh3==0.2.17
# via readme-renderer
packaging==23.2
packaging==24.0
# via
# pyproject-api
# tox
path==16.10.0
# via edx-i18n-tools
pbr==6.0.0
# via stevedore
pkginfo==1.9.6
pkginfo==1.10.0
# via twine
platformdirs==4.2.0
# via
Expand All @@ -120,7 +129,7 @@ polib==1.2.0
# via edx-i18n-tools
pycodestyle==2.11.1
# via -r requirements/quality.in
pycparser==2.21
pycparser==2.22
# via cffi
pydocstyle==6.3.0
# via -r requirements/quality.in
Expand Down Expand Up @@ -182,7 +191,7 @@ tomli==2.0.1
# tox
tomlkit==0.12.4
# via pylint
tox==4.13.0
tox==4.14.2
# via -r requirements/dev.in
twine==5.0.0
# via -r requirements/dev.in
Expand All @@ -200,9 +209,9 @@ virtualenv==20.25.1
# via
# -r requirements/dev.in
# tox
wheel==0.42.0
wheel==0.43.0
# via -r requirements/dev.in
zipp==3.17.0
zipp==3.18.1
# via
# importlib-metadata
# importlib-resources
37 changes: 23 additions & 14 deletions requirements/doc.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,16 @@ accessible-pygments==0.0.4
# via pydata-sphinx-theme
alabaster==0.7.13
# via sphinx
asgiref==3.7.2
asgiref==3.8.1
# via django
babel==2.14.0
# via
# pydata-sphinx-theme
# sphinx
backports-zoneinfo==0.2.1
# via django
backports-zoneinfo==0.2.1 ; python_version < "3.9"
# via
# -c requirements/constraints.txt
# django
beautifulsoup4==4.12.3
# via pydata-sphinx-theme
certifi==2024.2.2
Expand All @@ -26,7 +28,7 @@ charset-normalizer==3.3.2
# via requests
cryptography==42.0.5
# via secretstorage
django==4.2.10
django==4.2.11
# via
# -c requirements/common_constraints.txt
# -r requirements/doc.in
Expand All @@ -43,22 +45,27 @@ idna==3.6
# via requests
imagesize==1.4.1
# via sphinx
importlib-metadata==7.0.1
importlib-metadata==6.11.0
# via
# -c requirements/common_constraints.txt
# keyring
# sphinx
# twine
importlib-resources==6.1.2
importlib-resources==6.4.0
# via keyring
jaraco-classes==3.3.1
jaraco-classes==3.4.0
# via keyring
jaraco-context==4.3.0
# via keyring
jaraco-functools==4.0.0
# via keyring
jeepney==0.8.0
# via
# keyring
# secretstorage
jinja2==3.1.3
# via sphinx
keyring==24.3.1
keyring==25.0.0
# via twine
markdown-it-py==3.0.0
# via rich
Expand All @@ -67,20 +74,22 @@ markupsafe==2.1.5
mdurl==0.1.2
# via markdown-it-py
more-itertools==10.2.0
# via jaraco-classes
nh3==0.2.15
# via
# jaraco-classes
# jaraco-functools
nh3==0.2.17
# via readme-renderer
packaging==23.2
packaging==24.0
# via
# pydata-sphinx-theme
# sphinx
pbr==6.0.0
# via stevedore
pkginfo==1.9.6
pkginfo==1.10.0
# via twine
pockets==0.9.1
# via sphinxcontrib-napoleon
pycparser==2.21
pycparser==2.22
# via cffi
pydata-sphinx-theme==0.14.4
# via sphinx-book-theme
Expand Down Expand Up @@ -159,7 +168,7 @@ urllib3==2.2.1
# via
# requests
# twine
zipp==3.17.0
zipp==3.18.1
# via
# importlib-metadata
# importlib-resources
16 changes: 9 additions & 7 deletions requirements/pip-tools.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,17 @@
#
# make upgrade
#
build==1.1.1
build==1.2.1
# via pip-tools
click==8.1.7
# via pip-tools
importlib-metadata==7.0.1
# via build
packaging==23.2
importlib-metadata==6.11.0
# via
# -c requirements/common_constraints.txt
# build
packaging==24.0
# via build
pip-tools==7.4.0
pip-tools==7.4.1
# via -r requirements/pip-tools.in
pyproject-hooks==1.0.0
# via
Expand All @@ -23,9 +25,9 @@ tomli==2.0.1
# build
# pip-tools
# pyproject-hooks
wheel==0.42.0
wheel==0.43.0
# via pip-tools
zipp==3.17.0
zipp==3.18.1
# via importlib-metadata

# The following packages are considered to be unsafe in a requirements file:
Expand Down
4 changes: 2 additions & 2 deletions requirements/pip.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@
#
# make upgrade
#
wheel==0.42.0
wheel==0.43.0
# via -r requirements/pip.in

# The following packages are considered to be unsafe in a requirements file:
pip==24.0
# via -r requirements/pip.in
setuptools==69.1.1
setuptools==69.2.0
# via -r requirements/pip.in
Loading

0 comments on commit 93c878e

Please sign in to comment.