From 0028083f65c22d66030212fd20944e6a7743dade Mon Sep 17 00:00:00 2001 From: Sanjin <102841251+duckduckgrayduck@users.noreply.github.com> Date: Mon, 26 Oct 2026 19:04:35 -0500 Subject: [PATCH 1/4] Dependency updates to address quality issues --- requirements/base.txt | 20 ++++++++++---------- requirements/local.txt | 26 ++++++++++++++------------ requirements/production.txt | 20 ++++++++++---------- 3 files changed, 34 insertions(+), 32 deletions(-) diff --git a/requirements/base.txt b/requirements/base.txt index bf4382bae..8be0778ec 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -37,7 +37,7 @@ botocore==1.42.65 # via # boto3 # s3transfer -brotli==1.2.0 +brotli==1.2.1 # via fonttools bz2file==0.98 # via smart-open @@ -84,7 +84,7 @@ decorator==4.3.2 # ipython deprecated==1.2.13 # via redis -django==5.2.12 +django==5.2.18 # via # -r requirements/base.in # django-activity-stream @@ -155,7 +155,7 @@ django-vite==3.0.4 # via -r requirements/base.in django-weasyprint==2.4.0 # via -r requirements/base.in -djangorestframework==3.16.1 +djangorestframework==3.18.3 # via # -r requirements/base.in # djangorestframework-simplejwt @@ -178,7 +178,7 @@ fuzzywuzzy==0.18.0 # via -r requirements/base.in html2text==2018.1.9 # via -r requirements/base.in -idna==3.7 +idna==3.20 # via requests inflection==0.5.1 # via -r requirements/base.in @@ -196,7 +196,7 @@ kombu==5.4.2 # via celery levenshtein==0.25.1 # via python-levenshtein -lxml==6.0.2 +lxml==6.1.3 # via premailer markdown==3.8.1 # via -r requirements/base.in @@ -216,7 +216,7 @@ pexpect==4.6.0 # via ipython pickleshare==0.7.5 # via ipython -pillow==12.1.1 +pillow==13.0.0 # via # -r requirements/base.in # weasyprint @@ -240,7 +240,7 @@ pycryptodome==3.23.0 # via -r requirements/base.in pydyf==0.12.1 # via weasyprint -pygments==2.15.1 +pygments==2.21.0 # via ipython pyjwt[crypto]==2.9.0 # via @@ -302,7 +302,7 @@ smart-open==1.7.1 # via -r requirements/base.in sorl-thumbnail==12.11.0 # via -r requirements/base.in -sqlparse==0.5.4 +sqlparse==0.6.0 # via # django # django-debug-toolbar @@ -331,7 +331,7 @@ tzdata==2024.2 # kombu unidecode==1.0.22 # via python-slugify -urllib3==2.6.3 +urllib3==2.8.0 # via # botocore # requests @@ -342,7 +342,7 @@ vine==5.1.0 # kombu wcwidth==0.1.7 # via prompt-toolkit -weasyprint==68.0 +weasyprint==70.0 # via django-weasyprint webencodings==0.5.1 # via diff --git a/requirements/local.txt b/requirements/local.txt index f4ebc4555..38c68701b 100644 --- a/requirements/local.txt +++ b/requirements/local.txt @@ -43,7 +43,7 @@ billiard==4.2.1 # via # -r requirements/base.txt # celery -black==24.4.2 +black==25.12.0 # via -r requirements/local.in bleach==6.1.0 # via -r requirements/base.txt @@ -63,7 +63,7 @@ botocore==1.42.65 # -r requirements/base.txt # boto3 # s3transfer -brotli==1.2.0 +brotli==1.2.1 # via # -r requirements/base.txt # fonttools @@ -156,7 +156,7 @@ deprecated==1.2.13 # redis dill==0.4.1 # via pylint -django==5.2.12 +django==5.2.18 # via # -r requirements/base.txt # django-activity-stream @@ -231,7 +231,7 @@ django-vite==3.0.4 # via -r requirements/base.txt django-weasyprint==2.4.0 # via -r requirements/base.txt -djangorestframework==3.16.1 +djangorestframework==3.18.3 # via # -r requirements/base.txt # djangorestframework-simplejwt @@ -274,7 +274,7 @@ fuzzywuzzy==0.18.0 # via -r requirements/base.txt html2text==2018.1.9 # via -r requirements/base.txt -idna==3.7 +idna==3.20 # via # -r requirements/base.txt # requests @@ -315,7 +315,7 @@ levenshtein==0.25.1 # python-levenshtein license-expression==30.4.1 # via cyclonedx-python-lib -lxml==6.0.2 +lxml==6.1.3 # via # -r requirements/base.txt # premailer @@ -341,7 +341,7 @@ more-itertools==10.8.0 # via # -r requirements/base.txt # cssutils -msgpack==1.1.0 +msgpack==1.2.4 # via cachecontrol mypy-extensions==0.4.3 # via black @@ -381,7 +381,7 @@ pickleshare==0.7.5 # via # -r requirements/base.txt # ipython -pillow==12.1.1 +pillow==13.0.0 # via # -r requirements/base.txt # weasyprint @@ -439,7 +439,7 @@ pydyf==0.12.1 # weasyprint pyflakes==1.6.0 # via flake8 -pygments==2.15.1 +pygments==2.21.0 # via # -r requirements/base.txt # ipython @@ -506,6 +506,8 @@ python-levenshtein==0.25.1 # via -r requirements/base.txt python-slugify==1.2.5 # via -r requirements/base.txt +pytokens==0.4.1 + # via black pytz==2024.2 # via # -r requirements/base.txt @@ -575,7 +577,7 @@ sphinx==1.7.5 # via -r requirements/local.in sphinxcontrib-websupport==1.1.0 # via sphinx -sqlparse==0.5.4 +sqlparse==0.6.0 # via # -r requirements/base.txt # django @@ -625,7 +627,7 @@ unidecode==1.0.22 # via # -r requirements/base.txt # python-slugify -urllib3==2.6.3 +urllib3==2.8.0 # via # -r requirements/base.txt # botocore @@ -640,7 +642,7 @@ wcwidth==0.1.7 # via # -r requirements/base.txt # prompt-toolkit -weasyprint==68.0 +weasyprint==70.0 # via # -r requirements/base.txt # django-weasyprint diff --git a/requirements/production.txt b/requirements/production.txt index dc49de453..cd9c85280 100644 --- a/requirements/production.txt +++ b/requirements/production.txt @@ -51,7 +51,7 @@ botocore==1.42.65 # -r requirements/base.txt # boto3 # s3transfer -brotli==1.2.0 +brotli==1.2.1 # via # -r requirements/base.txt # fonttools @@ -131,7 +131,7 @@ deprecated==1.2.13 # via # -r requirements/base.txt # redis -django==5.2.12 +django==5.2.18 # via # -r requirements/base.txt # collectfast @@ -214,7 +214,7 @@ django-vite==3.0.4 # via -r requirements/base.txt django-weasyprint==2.4.0 # via -r requirements/base.txt -djangorestframework==3.16.1 +djangorestframework==3.18.3 # via # -r requirements/base.txt # djangorestframework-simplejwt @@ -245,7 +245,7 @@ gunicorn==22.0.0 # via -r requirements/production.in html2text==2018.1.9 # via -r requirements/base.txt -idna==3.7 +idna==3.20 # via # -r requirements/base.txt # django-anymail @@ -275,7 +275,7 @@ levenshtein==0.25.1 # via # -r requirements/base.txt # python-levenshtein -lxml==6.0.2 +lxml==6.1.3 # via # -r requirements/base.txt # premailer @@ -314,7 +314,7 @@ pickleshare==0.7.5 # via # -r requirements/base.txt # ipython -pillow==12.1.1 +pillow==13.0.0 # via # -r requirements/base.txt # weasyprint @@ -351,7 +351,7 @@ pydyf==0.12.1 # via # -r requirements/base.txt # weasyprint -pygments==2.15.1 +pygments==2.21.0 # via # -r requirements/base.txt # ipython @@ -429,7 +429,7 @@ smart-open==1.7.1 # via -r requirements/base.txt sorl-thumbnail==12.11.0 # via -r requirements/base.txt -sqlparse==0.5.4 +sqlparse==0.6.0 # via # -r requirements/base.txt # django @@ -473,7 +473,7 @@ unidecode==1.0.22 # via # -r requirements/base.txt # python-slugify -urllib3==2.6.3 +urllib3==2.8.0 # via # -r requirements/base.txt # botocore @@ -490,7 +490,7 @@ wcwidth==0.1.7 # via # -r requirements/base.txt # prompt-toolkit -weasyprint==68.0 +weasyprint==70.0 # via # -r requirements/base.txt # django-weasyprint From e6d47ff07e9ff80ef6a034476136c443cd4fed4e Mon Sep 17 00:00:00 2001 From: Sanjin <102841251+duckduckgrayduck@users.noreply.github.com> Date: Mon, 26 Oct 2026 19:19:43 -0500 Subject: [PATCH 2/4] Bump python version in test workflow --- .github/workflows/test.yml | 2 +- requirements/base.txt | 3 +-- requirements/local.txt | 3 +-- requirements/production.txt | 3 +-- 4 files changed, 4 insertions(+), 7 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index a19337af4..04d961454 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -76,7 +76,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: - python-version: "3.10" + python-version: "3.12" cache: "pip" # caching pip dependencies - name: Install diff --git a/requirements/base.txt b/requirements/base.txt index 8be0778ec..ebcbe45a0 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -24,7 +24,7 @@ bcrypt==3.1.4 # via -r requirements/base.in billiard==4.2.1 # via celery -bleach==6.1.0 +bleach==6.4.0 # via -r requirements/base.in boto==2.49.0 # via smart-open @@ -289,7 +289,6 @@ six==1.16.0 # via # asttokens # bcrypt - # bleach # click-repl # django-autocomplete-light # django-choices diff --git a/requirements/local.txt b/requirements/local.txt index 38c68701b..06dd773bf 100644 --- a/requirements/local.txt +++ b/requirements/local.txt @@ -45,7 +45,7 @@ billiard==4.2.1 # celery black==25.12.0 # via -r requirements/local.in -bleach==6.1.0 +bleach==6.4.0 # via -r requirements/base.txt boolean-py==4.0 # via license-expression @@ -554,7 +554,6 @@ six==1.16.0 # -r requirements/base.txt # asttokens # bcrypt - # bleach # click-repl # django-autocomplete-light # django-choices diff --git a/requirements/production.txt b/requirements/production.txt index cd9c85280..0a8f26c71 100644 --- a/requirements/production.txt +++ b/requirements/production.txt @@ -35,7 +35,7 @@ billiard==4.2.1 # via # -r requirements/base.txt # celery -bleach==6.1.0 +bleach==6.4.0 # via -r requirements/base.txt boto==2.49.0 # via @@ -416,7 +416,6 @@ six==1.16.0 # -r requirements/base.txt # asttokens # bcrypt - # bleach # click-repl # django-autocomplete-light # django-choices From e0a9895019ff8693703323bd4643d2245b013909 Mon Sep 17 00:00:00 2001 From: Sanjin <102841251+duckduckgrayduck@users.noreply.github.com> Date: Tue, 27 Oct 2026 07:49:05 -0500 Subject: [PATCH 3/4] Bump black further and update local node to match production --- compose/local/django/Dockerfile | 4 ++-- requirements/local.txt | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/compose/local/django/Dockerfile b/compose/local/django/Dockerfile index d9bb339f5..20a3d4d90 100644 --- a/compose/local/django/Dockerfile +++ b/compose/local/django/Dockerfile @@ -33,8 +33,8 @@ RUN update-ca-certificates # install NVM ENV NVM_DIR=/usr/local/nvm -# use the latest minor version of Node 22 -ENV NODE_VERSION=22.17.1 +# use the latest minor version of Node 24 +ENV NODE_VERSION=24.22.1 RUN mkdir $NVM_DIR RUN curl https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | sh \ diff --git a/requirements/local.txt b/requirements/local.txt index 06dd773bf..15c4c9148 100644 --- a/requirements/local.txt +++ b/requirements/local.txt @@ -43,7 +43,7 @@ billiard==4.2.1 # via # -r requirements/base.txt # celery -black==25.12.0 +black==26.10.1 # via -r requirements/local.in bleach==6.4.0 # via -r requirements/base.txt @@ -371,7 +371,7 @@ parso==0.8.3 # via # -r requirements/base.txt # jedi -pathspec==0.9.0 +pathspec==1.1.1 # via black pexpect==4.6.0 # via From 6769d5f781ae81f5c1f1e2a0d4918d6940200932 Mon Sep 17 00:00:00 2001 From: Sanjin <102841251+duckduckgrayduck@users.noreply.github.com> Date: Tue, 27 Oct 2026 07:54:52 -0500 Subject: [PATCH 4/4] Try to bump playwright to fix failing e2e tests --- package-lock.json | 33 +++++++++++++++------------------ package.json | 2 +- 2 files changed, 16 insertions(+), 19 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3e9430e2c..dba5e2358 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "0.0.1", "license": "MIT", "devDependencies": { - "@playwright/test": "^1.58.2", + "@playwright/test": "^1.64.1", "@sveltejs/vite-plugin-svelte": "^6.1.0", "@tsconfig/svelte": "^5.0.4", "@types/d3-shape": "^3.2.0", @@ -813,19 +813,19 @@ } }, "node_modules/@playwright/test": { - "version": "1.58.2", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.58.2.tgz", - "integrity": "sha512-akea+6bHYBBfA9uQqSYmlJXn61cTa+jbO87xVLCWbTqbWadRVmhxlXATaOjOgcBaWU4ePo0wB41KMFv3o35IXA==", + "version": "1.64.1", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.64.1.tgz", + "integrity": "sha512-IaYGml/nSOiZWROfPtuIL7neuu9qDOZ3TNvNljUIrhDMxiGTgPjzj/g9p9RxpS2tSepPDRY+UwAaEeiKtUvIAg==", "dev": true, "license": "Apache-2.0", "dependencies": { - "playwright": "1.58.2" + "playwright": "1.64.1" }, "bin": { "playwright": "cli.js" }, "engines": { - "node": ">=18" + "node": ">=20" } }, "node_modules/@polka/url": { @@ -2587,35 +2587,32 @@ } }, "node_modules/playwright": { - "version": "1.58.2", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.58.2.tgz", - "integrity": "sha512-vA30H8Nvkq/cPBnNw4Q8TWz1EJyqgpuinBcHET0YVJVFldr8JDNiU9LaWAE1KqSkRYazuaBhTpB5ZzShOezQ6A==", + "version": "1.64.1", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.64.1.tgz", + "integrity": "sha512-HCrVhHr5QQuwYoswEUGTb7gGp522yflbv/ST8nF4sFWGuLjQCt17Q/EubpGGSNKYn1tsTCPZxqHhHCfVURu7UA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "playwright-core": "1.58.2" + "playwright-core": "1.64.1" }, "bin": { "playwright": "cli.js" }, "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "fsevents": "2.3.2" + "node": ">=20" } }, "node_modules/playwright-core": { - "version": "1.58.2", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.58.2.tgz", - "integrity": "sha512-yZkEtftgwS8CsfYo7nm0KE8jsvm6i/PTgVtB8DL726wNf6H2IMsDuxCpJj59KDaxCtSnrWan2AeDqM7JBaultg==", + "version": "1.64.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.64.1.tgz", + "integrity": "sha512-BC4s8y6SEVA6Q1rSxZTto8hI1KUI3xXlHGZgvGqP4IqPdI/a6FX9H29IDNz7vKo9l21b6LfYosScPL6M3xxyDQ==", "dev": true, "license": "Apache-2.0", "bin": { "playwright-core": "cli.js" }, "engines": { - "node": ">=18" + "node": ">=20" } }, "node_modules/postcss": { diff --git a/package.json b/package.json index 68edb5ec0..c6c7f6412 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "author": "", "license": "MIT", "devDependencies": { - "@playwright/test": "^1.58.2", + "@playwright/test": "^1.64.1", "@sveltejs/vite-plugin-svelte": "^6.1.0", "@tsconfig/svelte": "^5.0.4", "@types/d3-shape": "^3.2.0",