Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add python312 support #261

Merged
merged 1 commit into from
Mar 7, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,13 @@ jobs:
fail-fast: false
matrix:
os: [ubuntu-20.04]
python-version: ['3.8']
toxenv: [quality, docs, django32, django42]
python-version: ['3.8', '3.12']
toxenv: [quality, docs, django42]

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

Expand All @@ -34,7 +34,7 @@ jobs:
run: tox

- name: Run Coverage
if: matrix.python-version == '3.8' && matrix.toxenv=='django42'
if: matrix.python-version == '3.12' && matrix.toxenv=='django42'
uses: codecov/codecov-action@v3
with:
flags: unittests
Expand Down
6 changes: 6 additions & 0 deletions CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,12 @@ Change Log
Unreleased
~~~~~~~~~~

[1.8.0] - 2024-03-06
~~~~~~~~~~~~~~~~~~~~
* Added support for ``Python 3.12``
* Dropped support for ``Django 3.2``


[1.7.0] - 2023-07-21
~~~~~~~~~~~~~~~~~~~~

Expand Down
2 changes: 1 addition & 1 deletion edx_ace/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
from .recipient import Recipient
from .recipient_resolver import RecipientResolver

__version__ = '1.7.0'
__version__ = '1.8.0'


__all__ = [
Expand Down
2 changes: 1 addition & 1 deletion requirements/ci.txt
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ tomli==2.0.1
# via
# pyproject-api
# tox
tox==4.13.0
tox==4.14.0
# via -r requirements/ci.in
virtualenv==20.25.1
# via tox
2 changes: 2 additions & 0 deletions requirements/constraints.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,5 @@

# Common constraints for edx repos
-c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt

backports.zoneinfo==0.2.1; python_version<'3.9'
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Needed for Python 3.12 compatibility. Django 4+ adds this import because we currently update our requirements in a python 3.8 env.

3 changes: 2 additions & 1 deletion requirements/dev.in
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,5 @@ edx-i18n-tools # For i18n_tool dummy
pip-tools # Requirements file management
tox # virtualenv management for tests
twine # Utility for PyPI package uploads
wheel # For generation of wheels for PyPI
wheel # For generation of wheels for PyPI
backports.zoneinfo; python_version<'3.9' # Needed for Python 3.12 compatibility
26 changes: 9 additions & 17 deletions requirements/dev.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,16 +12,18 @@ astroid==3.1.0
# pylint-celery
attrs==23.2.0
# via -r requirements/base.in
backports-zoneinfo==0.2.1
# via django
backports-zoneinfo==0.2.1 ; python_version < "3.9"
# via
# -c requirements/constraints.txt
# -r requirements/dev.in
# -r requirements/quality.in
# django
build==1.1.1
# via pip-tools
cachetools==5.3.3
# via tox
certifi==2024.2.2
# via requests
cffi==1.16.0
# via cryptography
chardet==5.2.0
# via
# diff-cover
Expand All @@ -40,15 +42,13 @@ code-annotations==1.6.0
# via edx-lint
colorama==0.4.6
# via tox
cryptography==42.0.5
# via secretstorage
diff-cover==8.0.3
# via -r requirements/dev.in
dill==0.3.8
# via pylint
distlib==0.3.8
# via virtualenv
django==4.2.10
django==4.2.11
# via
# -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt
# -r requirements/base.in
Expand Down Expand Up @@ -80,10 +80,6 @@ isort==5.13.2
# pylint
jaraco-classes==3.3.1
# via keyring
jeepney==0.8.0
# via
# keyring
# secretstorage
jinja2==3.1.3
# via
# code-annotations
Expand Down Expand Up @@ -113,7 +109,7 @@ path==16.10.0
# via edx-i18n-tools
pbr==6.0.0
# via stevedore
pip-tools==7.4.0
pip-tools==7.4.1
# via -r requirements/dev.in
pkginfo==1.10.0
# via twine
Expand All @@ -130,8 +126,6 @@ polib==1.2.0
# via edx-i18n-tools
pycodestyle==2.11.1
# via -r requirements/quality.in
pycparser==2.21
# via cffi
pydocstyle==6.3.0
# via -r requirements/quality.in
pygments==2.17.2
Expand Down Expand Up @@ -182,8 +176,6 @@ rich==13.7.1
# via twine
sailthru-client==2.2.3
# via -r requirements/base.in
secretstorage==3.3.3
# via keyring
simplejson==3.19.2
# via sailthru-client
six==1.16.0
Expand Down Expand Up @@ -211,7 +203,7 @@ tomli==2.0.1
# tox
tomlkit==0.12.4
# via pylint
tox==4.13.0
tox==4.14.0
# via -r requirements/dev.in
twine==5.0.0
# via -r requirements/dev.in
Expand Down
1 change: 1 addition & 0 deletions requirements/doc.in
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,4 @@ sphinx-book-theme # Common theme for all Open edX projects
readme_renderer # Validates README.rst for usage on PyPI
Sphinx # Documentation builder
twine
backports.zoneinfo; python_version<'3.9' # Needed for Python 3.12 compatibility
21 changes: 6 additions & 15 deletions requirements/doc.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,19 +16,18 @@ 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
# -r requirements/doc.in
# django
beautifulsoup4==4.12.3
# via pydata-sphinx-theme
certifi==2024.2.2
# via requests
cffi==1.16.0
# via cryptography
charset-normalizer==3.3.2
# via requests
cryptography==42.0.5
# via secretstorage
django==4.2.10
django==4.2.11
# via
# -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt
# -r requirements/base.in
Expand All @@ -54,10 +53,6 @@ importlib-resources==6.1.2
# via keyring
jaraco-classes==3.3.1
# via keyring
jeepney==0.8.0
# via
# keyring
# secretstorage
jinja2==3.1.3
# via sphinx
keyring==24.3.1
Expand All @@ -80,8 +75,6 @@ pbr==6.0.0
# via stevedore
pkginfo==1.10.0
# via twine
pycparser==2.21
# via cffi
pydata-sphinx-theme==0.14.4
# via sphinx-book-theme
pygments==2.17.2
Expand Down Expand Up @@ -116,8 +109,6 @@ rich==13.7.1
# via twine
sailthru-client==2.2.3
# via -r requirements/base.in
secretstorage==3.3.3
# via keyring
simplejson==3.19.2
# via sailthru-client
six==1.16.0
Expand Down
2 changes: 1 addition & 1 deletion requirements/pip-tools.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ importlib-metadata==7.0.1
# via build
packaging==23.2
# 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 Down
1 change: 1 addition & 0 deletions requirements/quality.in
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,4 @@ edx-lint # edX pylint rules and plugins
isort # to standardize order of imports
pycodestyle # PEP 8 compliance validation
pydocstyle # PEP 257 compliance validation
backports.zoneinfo; python_version<'3.9' # Needed for Python 3.12 compatibility
4 changes: 4 additions & 0 deletions requirements/quality.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@ astroid==3.1.0
# via
# pylint
# pylint-celery
backports-zoneinfo==0.2.1 ; python_version < "3.9"
# via
# -c requirements/constraints.txt
# -r requirements/quality.in
click==8.1.7
# via
# click-log
Expand Down
1 change: 1 addition & 0 deletions requirements/test.in
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,4 @@ mock
pudb # For easier test debugging
hypothesis[pytz] # For property-based testing
hypothesis-pytest
backports.zoneinfo; python_version<'3.9' # Needed for Python 3.12 compatibility
11 changes: 7 additions & 4 deletions requirements/test.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,11 @@ attrs==23.2.0
# via
# -r requirements/base.in
# hypothesis
backports-zoneinfo==0.2.1
# via django
backports-zoneinfo==0.2.1 ; python_version < "3.9"
# via
# -c requirements/constraints.txt
# -r requirements/test.in
# django
certifi==2024.2.2
# via requests
charset-normalizer==3.3.2
Expand Down Expand Up @@ -57,7 +60,7 @@ pudb==2024.1
# via -r requirements/test.in
pygments==2.17.2
# via pudb
pytest==8.1.0
pytest==8.0.2
# via
# hypothesis-pytest
# pytest-cov
Expand Down Expand Up @@ -99,7 +102,7 @@ typing-extensions==4.10.0
# urwid
urllib3==2.2.1
# via requests
urwid==2.6.7
urwid==2.6.8
# via
# pudb
# urwid-readline
Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -120,13 +120,13 @@ def is_requirement(line):
classifiers=[
'Development Status :: 3 - Alpha',
'Framework :: Django',
'Framework :: Django :: 3.2',
'Framework :: Django :: 4.2',
'Intended Audience :: Developers',
'License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)',
'Natural Language :: English',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.12',
],
entry_points={
'openedx.ace.channel': [
Expand Down
33 changes: 18 additions & 15 deletions tox.ini
Original file line number Diff line number Diff line change
@@ -1,47 +1,50 @@
[tox]
envlist = py38-django{32, 42}, quality
envlist = py{38, 312}-django{42}, docs, quality

[testenv]
deps =
django32: Django>=3.2,<4.0
deps =
setuptools
django42: Django>=4.2,<4.3
quality: Django>=4.2,<4.3
-r{toxinidir}/requirements/test.txt
-r{toxinidir}/requirements/quality.txt
commands =
commands =
python -Wd -m pytest {posargs}

[testenv:docs]
setenv =
setenv =
DJANGO_SETTINGS_MODULE = test_settings
PYTHONPATH = {toxinidir}
allowlist_externals =
allowlist_externals =
make
rm
deps =
deps =
setuptools
wheel
-r{toxinidir}/requirements/test.txt
-r{toxinidir}/requirements/doc.txt
commands =
commands =
doc8 --ignore-path docs/_build README.rst docs
make -C docs clean
make -C docs html
python setup.py sdist bdist_wheel
twine check dist/*

[testenv:quality]
setenv =
setenv =
DJANGO_SETTINGS_MODULE=test_settings
PYTHONPATH = {toxinidir}/:{toxinidir}/edx_ace
basepython = python3.8
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removing basepython because we want tox to control python version instead.

allowlist_externals =
deps =
setuptools
quality: Django>=4.2,<4.3
-r{toxinidir}/requirements/test.txt
-r{toxinidir}/requirements/quality.txt
allowlist_externals =
make
rm
touch
commands =
commands =
touch edx_ace/tests/__init__.py
pylint edx_ace
rm edx_ace/tests/__init__.py
pycodestyle edx_ace
isort --check-only --diff edx_ace manage.py setup.py test_settings.py
make selfcheck

Loading