diff --git a/.copier-answers.resonant.yml b/.copier-answers.resonant.yml index fab80cf3..7ba71dc9 100644 --- a/.copier-answers.resonant.yml +++ b/.copier-answers.resonant.yml @@ -1,4 +1,4 @@ -_commit: v0.41.0 +_commit: v0.43.0 _src_path: gh:kitware-resonant/cookiecutter-resonant core_app_name: core include_example_code: false diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2f2bada5..e9f7cdf0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -48,8 +48,7 @@ jobs: - 5672:5672 minio: # This image does not require any command arguments (which GitHub Actions don't support) - # see: https://github.com/bitnami/containers/issues/83267 - image: bitnamilegacy/minio:2025.4.22 + image: bitnamilegacy/minio:latest env: MINIO_ROOT_USER: minioAccessKey MINIO_ROOT_PASSWORD: minioSecretKey @@ -70,7 +69,7 @@ jobs: - 6379:6379 steps: - name: Checkout repository - uses: actions/checkout@v5 + uses: actions/checkout@v6 with: lfs: true - name: Install uv @@ -82,7 +81,7 @@ jobs: DJANGO_DATABASE_URL: postgres://postgres:postgres@localhost:5432/django DJANGO_ISIC_ELASTICSEARCH_URL: http://elastic:elastic@localhost:9200 DJANGO_CELERY_BROKER_URL: amqp://localhost:5672/ - DJANGO_MINIO_STORAGE_URL: http://minioAccessKey:minioSecretKey@localhost:9000/django-storage-testing + DJANGO_MINIO_STORAGE_URL: http://minioAccessKey:minioSecretKey@localhost:9000/django-storage DJANGO_CACHE_URL: redis://localhost:6379/0 build-node: runs-on: ubuntu-latest diff --git a/Procfile b/Procfile index a4328dc0..ffe002a7 100644 --- a/Procfile +++ b/Procfile @@ -6,7 +6,7 @@ release: python ./manage.py migrate --check || python ./manage.py migrate # set the request line limit to match heroku: # https://devcenter.heroku.com/articles/http-routing#http-validation-and-restrictions # long request lines are useful for long DSL search queries -web: gunicorn --timeout 120 --limit-request-line 8192 --bind 0.0.0.0:$PORT isic.wsgi +web: gunicorn --graceful-timeout 120 --timeout 125 --limit-request-line 8192 --bind 0.0.0.0:$PORT isic.wsgi worker: REMAP_SIGTERM=SIGQUIT ./deploy/worker.sh low_priority_worker: REMAP_SIGTERM=SIGQUIT ./deploy/low-priority-worker.sh beat: REMAP_SIGTERM=SIGQUIT celery --app isic.celery beat --loglevel INFO diff --git a/docker-compose.yml b/docker-compose.yml index 083dd610..0dfbb4ae 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,6 +1,6 @@ services: postgres: - image: pgvector/pgvector:pg17 + image: pgvector/pgvector:pg18 shm_size: 128mb environment: POSTGRES_DB: django @@ -11,7 +11,7 @@ services: ports: - 5432:5432 volumes: - - postgres:/var/lib/postgresql/data + - postgres:/var/lib/postgresql elasticsearch: image: elasticsearch:9.0.2 diff --git a/isic/core/migrations/0001_default_site.py b/isic/core/migrations/0001_default_site.py index 5667ead1..e8a9edcc 100644 --- a/isic/core/migrations/0001_default_site.py +++ b/isic/core/migrations/0001_default_site.py @@ -4,7 +4,7 @@ from django.db.migrations.state import StateApps -def update_default_site(apps: StateApps, schema_editor: BaseDatabaseSchemaEditor): +def update_default_site(apps: StateApps, schema_editor: BaseDatabaseSchemaEditor) -> None: Site = apps.get_model("sites", "Site") # A default site object may or may not exist. @@ -21,7 +21,7 @@ def update_default_site(apps: StateApps, schema_editor: BaseDatabaseSchemaEditor ) -def rollback_default_site(apps: StateApps, schema_editor: BaseDatabaseSchemaEditor): +def rollback_default_site(apps: StateApps, schema_editor: BaseDatabaseSchemaEditor) -> None: Site = apps.get_model("sites", "Site") # This is the initial value of the default site object, as populated by the sites app. diff --git a/pyproject.toml b/pyproject.toml index 1f9f5995..99c22509 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -30,7 +30,7 @@ dependencies = [ "django-oauth-toolkit<2.0.0", "django-redis", "django-resonant-settings[allauth,celery]", - "django-resonant-utils[s3_storage]", + "django-resonant-utils[allauth,s3_storage]", "django-stubs-ext", "django-widget-tweaks", "gdal", diff --git a/uv.lock b/uv.lock index af5b30ca..0e5b7e50 100644 --- a/uv.lock +++ b/uv.lock @@ -730,14 +730,14 @@ wheels = [ [[package]] name = "django-resonant-settings" -version = "0.41.0" +version = "0.43.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "django-environ" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/ee/19/4fa035cec41b5c7ceb1348f5aec7692ec6a71b0a1d79cec7746aa2e1926a/django_resonant_settings-0.41.0.tar.gz", hash = "sha256:1324c12d33329a36a198c500695434db57206ac75ee63fa8da35d390831bc8de", size = 17654, upload-time = "2025-10-16T20:11:42.172Z" } +sdist = { url = "https://files.pythonhosted.org/packages/cc/53/ea5e3bda1cdade97bcab5e208ee4cc9c338cfe021961b861ac71bc52cf61/django_resonant_settings-0.43.0.tar.gz", hash = "sha256:2a4cd9179c9b24a2c96afe3cb9bf90b26c20d6b2dab50d532867d85d9875b906", size = 18095, upload-time = "2025-12-01T20:00:31.552Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/38/d3/ac3e2ffd10139f3f209acafc1f8dd7b9d177c1b7b26b71cdd60e2f36020e/django_resonant_settings-0.41.0-py3-none-any.whl", hash = "sha256:10be63da455eaaa67a34b057dabe9f15b380917c945cb8c33f929ad1afde2b47", size = 24123, upload-time = "2025-10-16T20:11:41.112Z" }, + { url = "https://files.pythonhosted.org/packages/7f/30/cabcb03d269119df36b7f460ede9a4026c69a0ea1afddbc51c5f9321701b/django_resonant_settings-0.43.0-py3-none-any.whl", hash = "sha256:63d7eb64524de1f7d9034b1cb4d92e841f2f7f126fe654756a62d8704c93576b", size = 24733, upload-time = "2025-12-01T20:00:30.774Z" }, ] [package.optional-dependencies] @@ -761,6 +761,9 @@ wheels = [ ] [package.optional-dependencies] +allauth = [ + { name = "django-allauth" }, +] minio-storage = [ { name = "django-minio-storage" }, ] @@ -1196,7 +1199,7 @@ dependencies = [ { name = "django-oauth-toolkit" }, { name = "django-redis" }, { name = "django-resonant-settings", extra = ["allauth", "celery"] }, - { name = "django-resonant-utils", extra = ["s3-storage"] }, + { name = "django-resonant-utils", extra = ["allauth", "s3-storage"] }, { name = "django-s3-file-field", extra = ["s3"] }, { name = "django-storages", extra = ["s3"] }, { name = "django-stubs-ext" }, @@ -1302,8 +1305,8 @@ requires-dist = [ { name = "django-oauth-toolkit", specifier = "<2.0.0" }, { name = "django-redis" }, { name = "django-resonant-settings", extras = ["allauth", "celery"] }, + { name = "django-resonant-utils", extras = ["allauth", "s3-storage"] }, { name = "django-resonant-utils", extras = ["minio-storage"], marker = "extra == 'development'" }, - { name = "django-resonant-utils", extras = ["s3-storage"] }, { name = "django-s3-file-field", extras = ["minio"], marker = "extra == 'development'" }, { name = "django-s3-file-field", extras = ["s3"] }, { name = "django-storages", extras = ["s3"] },