diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 494163f8..7d59a0de 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,16 +12,17 @@ jobs: run_tests: name: tests runs-on: ${{ matrix.os }} + continue-on-error: true strategy: matrix: os: [ubuntu-20.04] - python-version: ['3.8'] - toxenv: [docs, quality, django32, django42] + python-version: ['3.8', '3.12'] + toxenv: [docs, quality, django42] steps: - uses: actions/checkout@v4 - name: setup python - uses: actions/setup-python@v5 + uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} @@ -37,7 +38,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 diff --git a/requirements/base.txt b/requirements/base.txt index a9148fbf..188ed6ef 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -6,8 +6,10 @@ # asgiref==3.7.2 # via django -backports-zoneinfo==0.2.1 - # via django +backports-zoneinfo==0.2.1 ; python_version < "3.9" + # via + # -c requirements/constraints.txt + # django cffi==1.16.0 # via pynacl click==8.1.7 diff --git a/requirements/constraints.txt b/requirements/constraints.txt index 7dfbe23f..a7981d10 100644 --- a/requirements/constraints.txt +++ b/requirements/constraints.txt @@ -21,3 +21,6 @@ sphinx==4.2.0 # version 1.0.0 requires docutils >0.19 but sphinx@4.2.0 needs docutils<0.18 doc8<1.0.0 + +# Needed for Django 4.2 + Python 3.12 compatibility +backports.zoneinfo; python_version<"3.9" diff --git a/requirements/dev.txt b/requirements/dev.txt index 084b122f..78b07fe4 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -15,8 +15,9 @@ astroid==3.1.0 # -r requirements/quality.txt # pylint # pylint-celery -backports-zoneinfo==0.2.1 +backports-zoneinfo==0.2.1 ; python_version < "3.9" # via + # -c requirements/constraints.txt # -r requirements/quality.txt # django build==1.1.1 @@ -155,7 +156,7 @@ pbr==6.0.0 # via # -r requirements/quality.txt # stevedore -pip-tools==7.4.0 +pip-tools==7.4.1 # via -r requirements/pip-tools.txt platformdirs==4.2.0 # via diff --git a/requirements/doc.in b/requirements/doc.in index 8135a8fd..65db8348 100644 --- a/requirements/doc.in +++ b/requirements/doc.in @@ -9,4 +9,4 @@ readme_renderer # Validates README.rst for usage on PyPI Sphinx # Documentation builder twine factory-boy -pytest #Needed? \ No newline at end of file +pytest #Needed? diff --git a/requirements/doc.txt b/requirements/doc.txt index 7645001a..f843b228 100644 --- a/requirements/doc.txt +++ b/requirements/doc.txt @@ -16,8 +16,9 @@ babel==2.14.0 # via # pydata-sphinx-theme # sphinx -backports-zoneinfo==0.2.1 +backports-zoneinfo==0.2.1 ; python_version < "3.9" # via + # -c requirements/constraints.txt # -r requirements/test.txt # django beautifulsoup4==4.12.3 @@ -27,7 +28,6 @@ certifi==2024.2.2 cffi==1.16.0 # via # -r requirements/test.txt - # cryptography # pynacl charset-normalizer==3.3.2 # via requests @@ -37,8 +37,6 @@ coverage[toml]==7.4.3 # via # -r requirements/test.txt # pytest-cov -cryptography==42.0.5 - # via secretstorage ddt==1.7.2 # via -r requirements/test.txt django==4.2.11 @@ -90,10 +88,6 @@ iniconfig==2.0.0 # pytest jaraco-classes==3.3.1 # via keyring -jeepney==0.8.0 - # via - # keyring - # secretstorage jinja2==3.1.3 # via sphinx keyring==24.3.1 @@ -179,8 +173,6 @@ rfc3986==2.0.0 # via twine rich==13.7.1 # via twine -secretstorage==3.3.3 - # via keyring six==1.16.0 # via # -r requirements/test.txt diff --git a/requirements/pip-tools.txt b/requirements/pip-tools.txt index 8528adba..921c5b5c 100644 --- a/requirements/pip-tools.txt +++ b/requirements/pip-tools.txt @@ -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 diff --git a/requirements/quality.txt b/requirements/quality.txt index 46e949f6..3525fbbe 100644 --- a/requirements/quality.txt +++ b/requirements/quality.txt @@ -12,8 +12,9 @@ astroid==3.1.0 # via # pylint # pylint-celery -backports-zoneinfo==0.2.1 +backports-zoneinfo==0.2.1 ; python_version < "3.9" # via + # -c requirements/constraints.txt # -r requirements/test.txt # django cffi==1.16.0 diff --git a/requirements/test.txt b/requirements/test.txt index 565052cc..e9a1038b 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -8,8 +8,9 @@ asgiref==3.7.2 # via # -r requirements/base.txt # django -backports-zoneinfo==0.2.1 +backports-zoneinfo==0.2.1 ; python_version < "3.9" # via + # -c requirements/constraints.txt # -r requirements/base.txt # django cffi==1.16.0 diff --git a/tox.ini b/tox.ini index 328b95d7..0170ed04 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = py38-django{32, 42} +envlist = py{38, 312}-django{42}, docs, quality [doc8] ignore = D000, D001 @@ -37,7 +37,7 @@ norecursedirs = .* docs requirements [testenv] deps = - django32: Django>=3.2,<4.0 + setuptools django42: Django>=4.2,<4.3 -r{toxinidir}/requirements/test.txt commands = @@ -51,6 +51,8 @@ allowlist_externals = make rm deps = + setuptools + wheel -r{toxinidir}/requirements/doc.txt commands = doc8 --ignore-path docs/_build README.rst docs @@ -70,6 +72,7 @@ allowlist_externals = rm touch deps = + setuptools -r{toxinidir}/requirements/quality.txt commands = touch tests/__init__.py @@ -87,4 +90,3 @@ deps = -r{toxinidir}/requirements/quality.txt commands = isort tests test_utils edx_django_utils manage.py setup.py test_settings.py -