diff --git a/projects/dev.py b/projects/dev.py index 8bc2f2524..7be663f44 100644 --- a/projects/dev.py +++ b/projects/dev.py @@ -48,7 +48,6 @@ MIDDLEWARE = [ "debug_toolbar.middleware.DebugToolbarMiddleware", - "django.middleware.security.SecurityMiddleware", "django.contrib.sessions.middleware.SessionMiddleware", "django.middleware.common.CommonMiddleware", @@ -56,6 +55,7 @@ "django.contrib.auth.middleware.AuthenticationMiddleware", "django.contrib.messages.middleware.MessageMiddleware", "django.middleware.clickjacking.XFrameOptionsMiddleware", + # Admin-specific "django.contrib.admindocs.middleware.XViewMiddleware", ] diff --git a/requirements/base.in b/requirements/base.in index f5ebd9403..aa00dddd7 100644 --- a/requirements/base.in +++ b/requirements/base.in @@ -1,6 +1,6 @@ # Core requirements for using this application -c constraints.txt -Django<4.0 # Web application framework +Django<5.0 # Web application framework djangorestframework<4.0 # REST API diff --git a/requirements/base.txt b/requirements/base.txt index 7c80551d3..d48934464 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -6,8 +6,9 @@ # asgiref==3.6.0 # via django -django==3.2.18 +django==3.2.19 # via + # -c requirements/constraints.txt # -r requirements/base.in # djangorestframework djangorestframework==3.14.0 @@ -16,5 +17,5 @@ pytz==2023.3 # via # django # djangorestframework -sqlparse==0.4.3 +sqlparse==0.4.4 # via django diff --git a/requirements/ci.txt b/requirements/ci.txt index e6ca7b96a..ee3eb376d 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -4,48 +4,41 @@ # # make upgrade # -cachetools==5.3.0 - # via tox -chardet==5.1.0 - # via tox click==8.1.3 # via import-linter -colorama==0.4.6 - # via tox -coverage==7.2.3 +coverage==7.2.5 # via -r requirements/ci.in distlib==0.3.6 # via virtualenv -filelock==3.11.0 +filelock==3.12.0 # via # tox # virtualenv -grimp==2.3 +grimp==2.4 # via import-linter import-linter==1.8.0 # via -r requirements/ci.in packaging==23.1 - # via - # pyproject-api - # tox -platformdirs==3.2.0 - # via - # tox - # virtualenv + # via tox +platformdirs==3.5.1 + # via virtualenv pluggy==1.0.0 # via tox -pyproject-api==1.5.1 +py==1.11.0 + # via tox +six==1.16.0 # via tox tomli==2.0.1 # via # import-linter - # pyproject-api # tox -tox==4.4.12 - # via -r requirements/ci.in +tox==3.28.0 + # via + # -c requirements/constraints.txt + # -r requirements/ci.in typing-extensions==4.5.0 # via # grimp # import-linter -virtualenv==20.21.0 +virtualenv==20.23.0 # via tox diff --git a/requirements/constraints.txt b/requirements/constraints.txt index 4f2f47ff4..6014c0923 100644 --- a/requirements/constraints.txt +++ b/requirements/constraints.txt @@ -13,4 +13,7 @@ # tox>4.0.0 isn't yet compatible with many tox plugins, causing CI failures in almost all repos. # Details can be found in this discussion: https://github.com/tox-dev/tox/discussions/1810 -tox<4.0.0 \ No newline at end of file +tox<4.0.0 + +# Develop primarily on Django 3.2, but we'll want to start testing against 4.2 +Django<4.0 diff --git a/requirements/dev.in b/requirements/dev.in index 4a7645b38..2c9492480 100644 --- a/requirements/dev.in +++ b/requirements/dev.in @@ -8,3 +8,4 @@ diff-cover # Changeset diff test coverage edx-i18n-tools # For i18n_tool dummy tox-battery # Makes tox aware of requirements file changes +django-debug-toolbar # Debugging DB queries primarily diff --git a/requirements/dev.txt b/requirements/dev.txt index 2fbb634cf..0ca1afd83 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -8,7 +8,7 @@ asgiref==3.6.0 # via # -r requirements/quality.txt # django -astroid==2.15.2 +astroid==2.15.4 # via # -r requirements/quality.txt # pylint @@ -21,19 +21,12 @@ build==0.10.0 # via # -r requirements/pip-tools.txt # pip-tools -cachetools==5.3.0 - # via - # -r requirements/ci.txt - # tox -certifi==2022.12.7 +certifi==2023.5.7 # via # -r requirements/quality.txt # requests chardet==5.1.0 - # via - # -r requirements/ci.txt - # diff-cover - # tox + # via diff-cover charset-normalizer==3.1.0 # via # -r requirements/quality.txt @@ -56,11 +49,7 @@ code-annotations==1.3.0 # via # -r requirements/quality.txt # edx-lint -colorama==0.4.6 - # via - # -r requirements/ci.txt - # tox -coverage[toml]==7.2.3 +coverage[toml]==7.2.5 # via # -r requirements/ci.txt # -r requirements/quality.txt @@ -75,14 +64,18 @@ distlib==0.3.6 # via # -r requirements/ci.txt # virtualenv -django==3.2.18 +django==3.2.19 # via + # -c requirements/constraints.txt # -r requirements/quality.txt + # django-debug-toolbar # djangorestframework # edx-i18n-tools +django-debug-toolbar==4.0.0 + # via -r requirements/dev.in djangorestframework==3.14.0 # via -r requirements/quality.txt -docutils==0.19 +docutils==0.20 # via # -r requirements/quality.txt # readme-renderer @@ -94,12 +87,12 @@ exceptiongroup==1.1.1 # via # -r requirements/quality.txt # pytest -filelock==3.11.0 +filelock==3.12.0 # via # -r requirements/ci.txt # tox # virtualenv -grimp==2.3 +grimp==2.4 # via # -r requirements/ci.txt # import-linter @@ -109,7 +102,7 @@ idna==3.4 # requests import-linter==1.8.0 # via -r requirements/ci.txt -importlib-metadata==6.3.0 +importlib-metadata==6.6.0 # via # -r requirements/quality.txt # keyring @@ -169,7 +162,6 @@ packaging==23.1 # -r requirements/pip-tools.txt # -r requirements/quality.txt # build - # pyproject-api # pytest # tox path==16.6.0 @@ -184,12 +176,11 @@ pkginfo==1.9.6 # via # -r requirements/quality.txt # twine -platformdirs==3.2.0 +platformdirs==3.5.1 # via # -r requirements/ci.txt # -r requirements/quality.txt # pylint - # tox # virtualenv pluggy==1.0.0 # via @@ -200,17 +191,21 @@ pluggy==1.0.0 # tox polib==1.2.0 # via edx-i18n-tools +py==1.11.0 + # via + # -r requirements/ci.txt + # tox pycodestyle==2.10.0 # via -r requirements/quality.txt pydocstyle==6.3.0 # via -r requirements/quality.txt -pygments==2.15.0 +pygments==2.15.1 # via # -r requirements/quality.txt # diff-cover # readme-renderer # rich -pylint==2.17.2 +pylint==2.17.4 # via # -r requirements/quality.txt # edx-lint @@ -230,15 +225,11 @@ pylint-plugin-utils==0.7 # -r requirements/quality.txt # pylint-celery # pylint-django -pyproject-api==1.5.1 - # via - # -r requirements/ci.txt - # tox pyproject-hooks==1.0.0 # via # -r requirements/pip-tools.txt # build -pytest==7.3.0 +pytest==7.3.1 # via # -r requirements/quality.txt # pytest-cov @@ -265,12 +256,12 @@ readme-renderer==37.3 # via # -r requirements/quality.txt # twine -requests==2.28.2 +requests==2.30.0 # via # -r requirements/quality.txt # requests-toolbelt # twine -requests-toolbelt==0.10.1 +requests-toolbelt==1.0.0 # via # -r requirements/quality.txt # twine @@ -278,23 +269,26 @@ rfc3986==2.0.0 # via # -r requirements/quality.txt # twine -rich==13.3.4 +rich==13.3.5 # via # -r requirements/quality.txt # twine six==1.16.0 # via + # -r requirements/ci.txt # -r requirements/quality.txt # bleach # edx-lint + # tox snowballstemmer==2.2.0 # via # -r requirements/quality.txt # pydocstyle -sqlparse==0.4.3 +sqlparse==0.4.4 # via # -r requirements/quality.txt # django + # django-debug-toolbar stevedore==5.0.0 # via # -r requirements/quality.txt @@ -312,16 +306,16 @@ tomli==2.0.1 # coverage # import-linter # pylint - # pyproject-api # pyproject-hooks # pytest # tox -tomlkit==0.11.7 +tomlkit==0.11.8 # via # -r requirements/quality.txt # pylint -tox==4.4.12 +tox==3.28.0 # via + # -c requirements/constraints.txt # -r requirements/ci.txt # tox-battery tox-battery==0.6.1 @@ -337,12 +331,12 @@ typing-extensions==4.5.0 # import-linter # pylint # rich -urllib3==1.26.15 +urllib3==2.0.2 # via # -r requirements/quality.txt # requests # twine -virtualenv==20.21.0 +virtualenv==20.23.0 # via # -r requirements/ci.txt # tox diff --git a/requirements/doc.txt b/requirements/doc.txt index bd988df39..3ae643a37 100644 --- a/requirements/doc.txt +++ b/requirements/doc.txt @@ -6,29 +6,21 @@ # accessible-pygments==0.0.4 # via pydata-sphinx-theme -alabaster==0.7.12 +alabaster==0.7.13 # via sphinx asgiref==3.6.0 # via # -r requirements/test.txt # django -attrs==22.1.0 - # via - # -r requirements/test.txt - # pytest -babel==2.10.3 +babel==2.12.1 # via # pydata-sphinx-theme # sphinx -backports-zoneinfo==0.2.1 - # via - # -r requirements/test.txt - # django beautifulsoup4==4.12.2 # via pydata-sphinx-theme -bleach==5.0.1 +bleach==6.0.0 # via readme-renderer -certifi==2022.12.7 +certifi==2023.5.7 # via requests charset-normalizer==3.1.0 # via requests @@ -38,12 +30,13 @@ click==8.1.3 # code-annotations code-annotations==1.3.0 # via -r requirements/test.txt -coverage[toml]==7.2.3 +coverage[toml]==7.2.5 # via # -r requirements/test.txt # pytest-cov -django==3.2.18 +django==3.2.19 # via + # -c requirements/constraints.txt # -r requirements/test.txt # djangorestframework # sphinxcontrib-django @@ -58,11 +51,15 @@ docutils==0.19 # readme-renderer # restructuredtext-lint # sphinx -idna==3.3 +exceptiongroup==1.1.1 + # via + # -r requirements/test.txt + # pytest +idna==3.4 # via requests imagesize==1.4.1 # via sphinx -importlib-metadata==6.3.0 +importlib-metadata==6.6.0 # via sphinx iniconfig==2.0.0 # via @@ -91,20 +88,18 @@ pluggy==1.0.0 # via # -r requirements/test.txt # pytest -py==1.11.0 - # via - # -r requirements/test.txt - # pytest +pprintpp==0.4.0 + # via sphinxcontrib-django pydata-sphinx-theme==0.13.3 # via sphinx-book-theme -pygments==2.13.0 +pygments==2.15.1 # via # accessible-pygments # doc8 # pydata-sphinx-theme # readme-renderer # sphinx -pytest==7.3.0 +pytest==7.3.1 # via # -r requirements/test.txt # pytest-cov @@ -129,7 +124,7 @@ pyyaml==6.0 # code-annotations readme-renderer==37.3 # via -r requirements/doc.in -requests==2.28.2 +requests==2.30.0 # via sphinx restructuredtext-lint==1.4.0 # via doc8 @@ -139,14 +134,15 @@ snowballstemmer==2.2.0 # via sphinx soupsieve==2.4.1 # via beautifulsoup4 -sphinx==5.1.1 +sphinx==6.2.1 # via # -r requirements/doc.in # pydata-sphinx-theme # sphinx-book-theme + # sphinxcontrib-django sphinx-book-theme==1.0.1 # via -r requirements/doc.in -sphinxcontrib-applehelp==1.0.2 +sphinxcontrib-applehelp==1.0.4 # via sphinx sphinxcontrib-devhelp==1.0.2 # via sphinx @@ -160,7 +156,7 @@ sphinxcontrib-qthelp==1.0.3 # via sphinx sphinxcontrib-serializinghtml==1.1.5 # via sphinx -sqlparse==0.4.3 +sqlparse==0.4.4 # via # -r requirements/test.txt # django @@ -181,7 +177,7 @@ tomli==2.0.1 # pytest typing-extensions==4.5.0 # via pydata-sphinx-theme -urllib3==1.26.12 +urllib3==2.0.2 # via requests webencodings==0.5.1 # via bleach diff --git a/requirements/quality.txt b/requirements/quality.txt index 134d429a1..012149d1f 100644 --- a/requirements/quality.txt +++ b/requirements/quality.txt @@ -8,13 +8,13 @@ asgiref==3.6.0 # via # -r requirements/test.txt # django -astroid==2.15.2 +astroid==2.15.4 # via # pylint # pylint-celery bleach==6.0.0 # via readme-renderer -certifi==2022.12.7 +certifi==2023.5.7 # via requests charset-normalizer==3.1.0 # via requests @@ -30,19 +30,20 @@ code-annotations==1.3.0 # via # -r requirements/test.txt # edx-lint -coverage[toml]==7.2.3 +coverage[toml]==7.2.5 # via # -r requirements/test.txt # pytest-cov dill==0.3.6 # via pylint -django==3.2.18 +django==3.2.19 # via + # -c requirements/constraints.txt # -r requirements/test.txt # djangorestframework djangorestframework==3.14.0 # via -r requirements/test.txt -docutils==0.19 +docutils==0.20 # via readme-renderer edx-lint==5.3.4 # via -r requirements/quality.in @@ -52,7 +53,7 @@ exceptiongroup==1.1.1 # pytest idna==3.4 # via requests -importlib-metadata==6.3.0 +importlib-metadata==6.6.0 # via # keyring # twine @@ -98,7 +99,7 @@ pbr==5.11.1 # stevedore pkginfo==1.9.6 # via twine -platformdirs==3.2.0 +platformdirs==3.5.1 # via pylint pluggy==1.0.0 # via @@ -108,11 +109,11 @@ pycodestyle==2.10.0 # via -r requirements/quality.in pydocstyle==6.3.0 # via -r requirements/quality.in -pygments==2.15.0 +pygments==2.15.1 # via # readme-renderer # rich -pylint==2.17.2 +pylint==2.17.4 # via # edx-lint # pylint-celery @@ -126,7 +127,7 @@ pylint-plugin-utils==0.7 # via # pylint-celery # pylint-django -pytest==7.3.0 +pytest==7.3.1 # via # -r requirements/test.txt # pytest-cov @@ -150,15 +151,15 @@ pyyaml==6.0 # code-annotations readme-renderer==37.3 # via twine -requests==2.28.2 +requests==2.30.0 # via # requests-toolbelt # twine -requests-toolbelt==0.10.1 +requests-toolbelt==1.0.0 # via twine rfc3986==2.0.0 # via twine -rich==13.3.4 +rich==13.3.5 # via twine six==1.16.0 # via @@ -166,7 +167,7 @@ six==1.16.0 # edx-lint snowballstemmer==2.2.0 # via pydocstyle -sqlparse==0.4.3 +sqlparse==0.4.4 # via # -r requirements/test.txt # django @@ -184,7 +185,7 @@ tomli==2.0.1 # coverage # pylint # pytest -tomlkit==0.11.7 +tomlkit==0.11.8 # via pylint twine==4.0.2 # via -r requirements/quality.in @@ -193,7 +194,7 @@ typing-extensions==4.5.0 # astroid # pylint # rich -urllib3==1.26.15 +urllib3==2.0.2 # via # requests # twine diff --git a/requirements/test.txt b/requirements/test.txt index 9410f3893..b5cc57ce5 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -12,9 +12,10 @@ click==8.1.3 # via code-annotations code-annotations==1.3.0 # via -r requirements/test.in -coverage[toml]==7.2.3 +coverage[toml]==7.2.5 # via pytest-cov # via + # -c requirements/constraints.txt # -r requirements/base.txt # djangorestframework djangorestframework==3.14.0 @@ -33,7 +34,7 @@ pbr==5.11.1 # via stevedore pluggy==1.0.0 # via pytest -pytest==7.3.0 +pytest==7.3.1 # via # pytest-cov # pytest-django @@ -50,7 +51,7 @@ pytz==2023.3 # djangorestframework pyyaml==6.0 # via code-annotations -sqlparse==0.4.3 +sqlparse==0.4.4 # via # -r requirements/base.txt # django diff --git a/tox.ini b/tox.ini index 6e84a0ace..44168b281 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = py38-django{32}, quality, docs, pii_check +envlist = py38-django{32,42}, quality, docs, pii_check [doc8] ; D001 = Line too long @@ -37,6 +37,7 @@ norecursedirs = .* docs requirements site-packages [testenv] deps = django32: Django>=3.2,<3.3 + django42: Django>=4.2,<4.3 -r{toxinidir}/requirements/test.txt commands = pytest {posargs}