diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 56e18720d..41eb08a93 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -17,6 +17,7 @@ jobs: "3.8", "3.9", "3.10", + "3.11", ] steps: - name: "Check out repository" @@ -68,6 +69,7 @@ jobs: "3.8", "3.9", "3.10", + "3.11", ] steps: - name: "Check out repository" diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index ed0d2da1c..f190be7a0 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -22,7 +22,7 @@ repos: rev: "1.15.0" hooks: - id: django-upgrade - args: [--target-version, "3.2"] + args: [--target-version, "4.2"] - repo: https://github.com/psf/black rev: "23.10.1" hooks: diff --git a/requirements-dev.txt b/requirements-dev.txt index 5cd22fcb6..f4e892672 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -12,9 +12,9 @@ asgiref==3.7.2 # django bagit==1.8.1 # via -r requirements.txt -boto3==1.33.2 +boto3==1.34.21 # via -r requirements.txt -botocore==1.33.2 +botocore==1.34.21 # via # -r requirements.txt # boto3 @@ -43,7 +43,7 @@ click==8.1.7 # via pip-tools colorama==0.4.6 # via tox -coverage[toml]==7.3.2 +coverage[toml]==7.4.0 # via # -r requirements-dev.in # pytest-cov @@ -59,11 +59,11 @@ debtcollector==2.5.0 # oslo-config # oslo-utils # python-keystoneclient -distlib==0.3.7 +distlib==0.3.8 # via virtualenv dj-database-url==2.1.0 # via -r requirements.txt -django==3.2.23 +django==4.2.9 # via # -r requirements.txt # dj-database-url @@ -92,7 +92,7 @@ filelock==3.13.1 # virtualenv gevent==23.9.1 # via -r requirements.txt -greenlet==3.0.1 +greenlet==3.0.3 # via # -r requirements.txt # gevent @@ -106,7 +106,7 @@ idna==3.6 # via # -r requirements.txt # requests -importlib-metadata==6.8.0 +importlib-metadata==7.0.1 # via # build # pytest-randomly @@ -130,11 +130,11 @@ josepy==1.14.0 # mozilla-django-oidc jsonfield==3.1.0 # via -r requirements.txt -keystoneauth1==5.4.0 +keystoneauth1==5.5.0 # via # -r requirements.txt # python-keystoneclient -lxml==4.9.3 +lxml==5.1.0 # via # -r requirements.txt # metsrw @@ -142,17 +142,17 @@ lxml==4.9.3 # sword2 metsrw==0.5.0 # via -r requirements.txt -mozilla-django-oidc==3.0.0 +mozilla-django-oidc==4.0.0 # via -r requirements.txt msgpack==1.0.7 # via # -r requirements.txt # oslo-serialization -mysqlclient==2.2.0 +mysqlclient==2.2.1 # via # -r requirements.txt # agentarchives -netaddr==0.9.0 +netaddr==0.10.1 # via # -r requirements.txt # oslo-config @@ -165,7 +165,7 @@ os-service-types==1.7.0 # via # -r requirements.txt # keystoneauth1 -oslo-config==9.2.0 +oslo-config==9.3.0 # via # -r requirements.txt # python-keystoneclient @@ -175,11 +175,11 @@ oslo-i18n==6.2.0 # oslo-config # oslo-utils # python-keystoneclient -oslo-serialization==5.2.0 +oslo-serialization==5.3.0 # via # -r requirements.txt # python-keystoneclient -oslo-utils==6.3.0 +oslo-utils==7.0.0 # via # -r requirements.txt # oslo-serialization @@ -205,7 +205,7 @@ pbr==6.0.0 # stevedore pip-tools==7.3.0 # via -r requirements-dev.in -platformdirs==4.0.0 +platformdirs==4.1.0 # via # tox # virtualenv @@ -243,7 +243,7 @@ pyproject-api==1.6.1 # via tox pyproject-hooks==1.0.0 # via build -pytest==7.4.3 +pytest==7.4.4 # via # -r requirements-dev.in # pytest-cov @@ -267,9 +267,9 @@ python-dateutil==2.8.2 # -r requirements.txt # botocore # django-tastypie -python-gnupg==0.5.1 +python-gnupg==0.5.2 # via -r requirements.txt -python-keystoneclient==5.2.0 +python-keystoneclient==5.3.0 # via -r requirements.txt python-ldap==3.4.4 # via @@ -284,7 +284,6 @@ python-swiftclient==4.4.0 pytz==2023.3.post1 # via # -r requirements.txt - # django # oslo-serialization # oslo-utils pyyaml==6.0.1 @@ -306,7 +305,7 @@ rfc3986==2.0.0 # via # -r requirements.txt # oslo-config -s3transfer==0.8.1 +s3transfer==0.10.0 # via # -r requirements.txt # boto3 @@ -337,14 +336,14 @@ tomli==2.0.1 # pyproject-hooks # pytest # tox -tox==4.11.4 +tox==4.12.1 # via -r requirements-dev.in -typing-extensions==4.8.0 +typing-extensions==4.9.0 # via # -r requirements.txt # asgiref # dj-database-url -tzdata==2023.3 +tzdata==2023.4 # via # -r requirements.txt # oslo-serialization @@ -354,7 +353,7 @@ urllib3==1.26.18 # -r requirements.txt # botocore # requests -virtualenv==20.24.7 +virtualenv==20.25.0 # via tox wheel==0.42.0 # via pip-tools @@ -379,9 +378,9 @@ zope-interface==6.1 # gevent # The following packages are considered to be unsafe in a requirements file: -pip==23.3.1 +pip==23.3.2 # via pip-tools -setuptools==69.0.2 +setuptools==69.0.3 # via # -r requirements.txt # pip-tools diff --git a/requirements.in b/requirements.in index be39345bb..5f88e5920 100644 --- a/requirements.in +++ b/requirements.in @@ -2,7 +2,7 @@ bagit boto3 brotli -Django>=3.2,<4 +Django>=4.2,<5 django-csp django-tastypie dj-database-url @@ -15,15 +15,12 @@ metsrw python-gnupg python-keystoneclient python-swiftclient -requests~=2.27; python_version == "3.6" requests git+https://github.com/swordapp/python-client-sword2.git@59db54c03e4498dd6b001ac4f3a4167aa2fb8987#egg=sword2 -whitenoise>=5.3.0,<6.0; python_version == "3.6" whitenoise agentarchives git+https://github.com/Brown-University-Library/django-shibboleth-remoteuser.git@962f6f9818683ef5f6432f091d22945e54b82592#egg=django-shibboleth-remoteuser prometheus_client -django-prometheus>=2.2,<2.3; python_version == "3.6" django-prometheus # LDAP support @@ -34,5 +31,4 @@ django-auth-ldap django-cas-ng # Required for OpenID Connect authentication -mozilla-django-oidc~=2.0; python_version == "3.6" mozilla-django-oidc diff --git a/requirements.txt b/requirements.txt index 817e56a00..86657b027 100644 --- a/requirements.txt +++ b/requirements.txt @@ -10,9 +10,9 @@ asgiref==3.7.2 # via django bagit==1.8.1 # via -r requirements.in -boto3==1.33.2 +boto3==1.34.21 # via -r requirements.in -botocore==1.33.2 +botocore==1.34.21 # via # boto3 # s3transfer @@ -36,7 +36,7 @@ debtcollector==2.5.0 # python-keystoneclient dj-database-url==2.1.0 # via -r requirements.in -django==3.2.23 +django==4.2.9 # via # -r requirements.in # dj-database-url @@ -59,7 +59,7 @@ django-tastypie==0.14.6 # via -r requirements.in gevent==23.9.1 # via -r requirements.in -greenlet==3.0.1 +greenlet==3.0.3 # via gevent gunicorn==21.2.0 # via -r requirements.in @@ -81,9 +81,9 @@ josepy==1.14.0 # via mozilla-django-oidc jsonfield==3.1.0 # via -r requirements.in -keystoneauth1==5.4.0 +keystoneauth1==5.5.0 # via python-keystoneclient -lxml==4.9.3 +lxml==5.1.0 # via # -r requirements.in # metsrw @@ -91,13 +91,13 @@ lxml==4.9.3 # sword2 metsrw==0.5.0 # via -r requirements.in -mozilla-django-oidc==3.0.0 +mozilla-django-oidc==4.0.0 # via -r requirements.in msgpack==1.0.7 # via oslo-serialization -mysqlclient==2.2.0 +mysqlclient==2.2.1 # via agentarchives -netaddr==0.9.0 +netaddr==0.10.1 # via # oslo-config # oslo-utils @@ -105,16 +105,16 @@ netifaces==0.11.0 # via oslo-utils os-service-types==1.7.0 # via keystoneauth1 -oslo-config==9.2.0 +oslo-config==9.3.0 # via python-keystoneclient oslo-i18n==6.2.0 # via # oslo-config # oslo-utils # python-keystoneclient -oslo-serialization==5.2.0 +oslo-serialization==5.3.0 # via python-keystoneclient -oslo-utils==6.3.0 +oslo-utils==7.0.0 # via # oslo-serialization # python-keystoneclient @@ -155,9 +155,9 @@ python-dateutil==2.8.2 # via # botocore # django-tastypie -python-gnupg==0.5.1 +python-gnupg==0.5.2 # via -r requirements.in -python-keystoneclient==5.2.0 +python-keystoneclient==5.3.0 # via -r requirements.in python-ldap==3.4.4 # via @@ -169,7 +169,6 @@ python-swiftclient==4.4.0 # via -r requirements.in pytz==2023.3.post1 # via - # django # oslo-serialization # oslo-utils pyyaml==6.0.1 @@ -188,7 +187,7 @@ requests==2.31.0 # python-swiftclient rfc3986==2.0.0 # via oslo-config -s3transfer==0.8.1 +s3transfer==0.10.0 # via boto3 six==1.16.0 # via @@ -204,11 +203,11 @@ stevedore==5.1.0 # python-keystoneclient sword2 @ git+https://github.com/swordapp/python-client-sword2.git@59db54c03e4498dd6b001ac4f3a4167aa2fb8987 # via -r requirements.in -typing-extensions==4.8.0 +typing-extensions==4.9.0 # via # asgiref # dj-database-url -tzdata==2023.3 +tzdata==2023.4 # via # oslo-serialization # oslo-utils @@ -228,7 +227,7 @@ zope-interface==6.1 # via gevent # The following packages are considered to be unsafe in a requirements file: -setuptools==69.0.2 +setuptools==69.0.3 # via # zope-event # zope-interface diff --git a/storage_service/locations/migrations/0037_django42.py b/storage_service/locations/migrations/0037_django42.py new file mode 100644 index 000000000..a11125d08 --- /dev/null +++ b/storage_service/locations/migrations/0037_django42.py @@ -0,0 +1,19 @@ +# Generated by Django 4.2.5 on 2023-09-14 19:23 +from django.db import migrations +from django.db import models + + +class Migration(migrations.Migration): + dependencies = [ + ("locations", "0036_archipelago"), + ] + + operations = [ + migrations.AlterField( + model_name="package", + name="related_packages", + field=models.ManyToManyField( + related_name="related", to="locations.package" + ), + ), + ] diff --git a/storage_service/storage_service/settings/base.py b/storage_service/storage_service/settings/base.py index 8f8337db6..8a6952c04 100644 --- a/storage_service/storage_service/settings/base.py +++ b/storage_service/storage_service/settings/base.py @@ -82,12 +82,6 @@ def _get_settings_from_file(path): # See: https://docs.djangoproject.com/en/dev/ref/settings/#site-id SITE_ID = 1 -# See: https://docs.djangoproject.com/en/dev/ref/settings/#use-i18n -USE_I18N = True - -# See: https://docs.djangoproject.com/en/dev/ref/settings/#use-l10n -USE_L10N = True - # See: https://docs.djangoproject.com/en/dev/ref/settings/#use-tz USE_TZ = True # ######## END GENERAL CONFIGURATION @@ -133,7 +127,14 @@ def _get_settings_from_file(path): "django.contrib.staticfiles.finders.AppDirectoriesFinder", ) -STATICFILES_STORAGE = "whitenoise.storage.CompressedManifestStaticFilesStorage" +STORAGES = { + "default": { + "BACKEND": "django.core.files.storage.FileSystemStorage", + }, + "staticfiles": { + "BACKEND": "whitenoise.storage.CompressedManifestStaticFilesStorage", + }, +} # END STATIC FILE CONFIGURATION diff --git a/storage_service/storage_service/settings/test.py b/storage_service/storage_service/settings/test.py index 7936c0b3f..dc00dd34b 100644 --- a/storage_service/storage_service/settings/test.py +++ b/storage_service/storage_service/settings/test.py @@ -34,6 +34,8 @@ } # Disable whitenoise -STATICFILES_STORAGE = None +STORAGES["staticfiles"][ + "BACKEND" +] = "django.contrib.staticfiles.storage.StaticFilesStorage" if MIDDLEWARE[0] == "whitenoise.middleware.WhiteNoiseMiddleware": del MIDDLEWARE[0] diff --git a/tox.ini b/tox.ini index 21cd87b3f..4ee7bce09 100644 --- a/tox.ini +++ b/tox.ini @@ -1,6 +1,6 @@ [tox] skipsdist = True -envlist = linting, py{38,39,310}, migrations +envlist = linting, py{38,39,310,311}, migrations skip_missing_interpreters = true [gh-actions] @@ -8,6 +8,7 @@ python = 3.8: py38 3.9: py39, migrations 3.10: py310 + 3.11: py311 [testenv:linting] basepython = python3