Skip to content

Maintenance around supported Django, Python and Node package versions - #109

Merged
kylebayler merged 16 commits into
mainfrom
support/django-version-mainenance
May 28, 2026
Merged

Maintenance around supported Django, Python and Node package versions#109
kylebayler merged 16 commits into
mainfrom
support/django-version-mainenance

Conversation

@nickmoreton

@nickmoreton nickmoreton commented Apr 30, 2026

Copy link
Copy Markdown
Contributor

Support Reference

Summary

  • raise package requirements to Python >=3.9 and Django >=4.2
  • update classifiers for supported Python, Django, and Wagtail versions
  • update tox and CI Python matrices for currently supported Django/Python combinations
  • refresh Poetry lock metadata for the new Python constraint
  • add repository AGENTS.md guidance
  • update npm development dependencies to the current installed versions from npm outdated
  • migrate ESLint configuration to flat config for ESLint 10
  • update the project Node version from 20 to 24
  • format Markdown files now covered by Prettier 3

CI compatibility notes

  • update flake8 to 7.3.0 so linting works on Python 3.14
  • update the flake8 ignore config format for flake8 7's stricter parsing
  • adjust tox so test commands run inside each tox environment via python -m pytest
  • add explicit tox test dependencies and Django/crispy-forms constraints so each Django factor installs the intended versions
  • normalize Django 5.2's aria-invalid="true" output so existing snapshots remain consistent across supported Django versions
  • update ESLint from 7.32.0 to 10.2.1 and replace .eslintrc.js with eslint.config.js
  • update Prettier from 2.3.2 to 3.8.3, Sass from 1.69.7 to 1.99.0, Vite from 2.9.18 to 8.0.10, and Autoprefixer from 10.4.2 to 10.5.0
  • use Node 24 in local nvm setup and GitHub Actions via .nvmrc

Testing

  • poetry run flake8 tbxforms tests
  • poetry run pytest
  • poetry run tox -l
  • poetry run tox -e py312-dj42
  • poetry run tox -e py312-dj52
  • npm --cache /private/tmp/tbxforms-npm-cache outdated
  • npm --cache /private/tmp/tbxforms-npm-cache ls autoprefixer eslint prettier sass vite --depth=0
  • npm run lint
  • npm run build

Includes changes made using AI (Codex)

@nickmoreton nickmoreton self-assigned this Apr 30, 2026
@nickmoreton
nickmoreton force-pushed the support/django-version-mainenance branch from ca91ba2 to ed43cc8 Compare April 30, 2026 13:51
@nickmoreton nickmoreton changed the title Update supported Django and Python versions Maintenance around supported Django, Python and Node package versions Apr 30, 2026
@nickmoreton
nickmoreton marked this pull request as ready for review April 30, 2026 13:55
@nickmoreton
nickmoreton requested a review from kylebayler as a code owner April 30, 2026 13:55

@kylebayler kylebayler left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@nickmoreton Nice, thanks for this! This looks great. I've added a couple of questions about bits I don't understand, and a few suggestions to further tighten the tox config for your review.

Comment thread tests/fields/test_date_input_field.py
Comment thread tox.ini Outdated
Comment thread tox.ini Outdated
Comment thread tox.ini Outdated
Comment thread tox.ini Outdated
Comment thread tox.ini Outdated
Comment thread tox.ini Outdated
Comment thread tox.ini Outdated
Comment thread tox.ini Outdated
Comment on lines +32 to +35
djlint==1.23.3
pytest==7.0.0
pytest-icdiff==0.5
syrupy==4.6.0

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this needed?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, the explicit tox deps are needed because tox runs in isolated envs and these test tools aren’t exposed via a package test extra. Without them, a recreated tox env fails on missing pytest, then djlint, then syrupy.

The only unnecessary bit was extras = test, because no such extra exists in pyproject.toml.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed extras = test 1ebdf55

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fair. I'm not a big fan of redefining things like package versions, though switching to pyproject.toml [dependency-groups] feels like overkill.

For now, can you add comments to tox.ini and pypyroject.toml for duplicated packages, e.g.

# in tox.ini
syrupy==4.6.0  # Match version in pyproject.toml
# in pyproject.toml
syrupy = "4.6.0"  # Match version in .tox.ini

nickmoreton and others added 8 commits May 26, 2026 09:43
Co-authored-by: Kyle Bayler <kbayliss@users.noreply.github.com>
Co-authored-by: Kyle Bayler <kbayliss@users.noreply.github.com>
Co-authored-by: Kyle Bayler <kbayliss@users.noreply.github.com>
Co-authored-by: Kyle Bayler <kbayliss@users.noreply.github.com>
Co-authored-by: Kyle Bayler <kbayliss@users.noreply.github.com>
Co-authored-by: Kyle Bayler <kbayliss@users.noreply.github.com>
Co-authored-by: Kyle Bayler <kbayliss@users.noreply.github.com>
@nickmoreton
nickmoreton requested a review from kylebayler May 26, 2026 10:13
@kylebayler
kylebayler merged commit 5ae0e07 into main May 28, 2026
7 checks passed
@kylebayler
kylebayler deleted the support/django-version-mainenance branch May 28, 2026 13:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants