diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index bbace54..70f0df3 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -12,12 +12,12 @@ jobs: fail-fast: false matrix: python-version: - - "3.8" - "3.9" - "3.10" - "3.11" - "3.12" - "3.13" + - "3.14" steps: - uses: actions/checkout@v3 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 3347da0..b314a5b 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -14,12 +14,12 @@ jobs: fail-fast: false matrix: python-version: - - "3.8" - "3.9" - "3.10" - "3.11" - "3.12" - "3.13" + - "3.14" steps: - uses: actions/checkout@v3 diff --git a/CHANGELOG.md b/CHANGELOG.md index f24bf45..3f2ab55 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # CHANGELOG FOR CRISPY-BOOTSTRAP5 +## 2025.11 (TBC) +* Confirmed support for Django 6.0. +* Added support for Python 3.14. +* Dropped support for Python 3.8. + ## 2025.6 (2025-06-08) * `` elements now have `fs-6` class so they are the same font size as ``. diff --git a/pyproject.toml b/pyproject.toml index 2d9971c..2e2eef6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -10,7 +10,7 @@ description="Bootstrap5 template pack for django-crispy-forms" readme = "README.md" license = {text = "MIT"} authors = [{name = "David Smith"}] -requires-python = ">=3.8" +requires-python = ">=3.9" classifiers=[ "Environment :: Web Environment", "Framework :: Django", @@ -18,15 +18,16 @@ classifiers=[ "Framework :: Django :: 5.0", "Framework :: Django :: 5.1", "Framework :: Django :: 5.2", + "Framework :: Django :: 6.0", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3 :: Only", - "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", "Topic :: Internet :: WWW/HTTP", "Topic :: Internet :: WWW/HTTP :: Dynamic Content", "Topic :: Software Development :: Libraries :: Python Modules", diff --git a/tests/results/test_clearable_file_field.html b/tests/results/test_clearable_file_field.html index 4c63da7..df35cb6 100644 --- a/tests/results/test_clearable_file_field.html +++ b/tests/results/test_clearable_file_field.html @@ -1,6 +1,7 @@
- +
+ Clearable file
Currently
@@ -19,5 +20,6 @@
+
\ No newline at end of file diff --git a/tests/results/test_clearable_file_field_failing.html b/tests/results/test_clearable_file_field_failing.html index 78422b5..986e2d7 100644 --- a/tests/results/test_clearable_file_field_failing.html +++ b/tests/results/test_clearable_file_field_failing.html @@ -1,12 +1,12 @@
-
+
\ No newline at end of file diff --git a/tests/results/test_clearable_file_field_failing_lt60.html b/tests/results/test_clearable_file_field_failing_lt60.html new file mode 100644 index 0000000..78422b5 --- /dev/null +++ b/tests/results/test_clearable_file_field_failing_lt60.html @@ -0,0 +1,24 @@ +
+
+ +
+ +
+ + This field is required. + +
+
+
+
\ No newline at end of file diff --git a/tests/results/test_clearable_file_field_lt60.html b/tests/results/test_clearable_file_field_lt60.html new file mode 100644 index 0000000..4c63da7 --- /dev/null +++ b/tests/results/test_clearable_file_field_lt60.html @@ -0,0 +1,23 @@ +
+
+ +
+ Currently +
+ + + + + + + + + +
+
+
+ +
+
+
\ No newline at end of file diff --git a/tests/test_layout.py b/tests/test_layout.py index 733226d..a6b7deb 100644 --- a/tests/test_layout.py +++ b/tests/test_layout.py @@ -607,7 +607,10 @@ def test_file_field(): form.helper = FormHelper() form.helper.layout = Layout("clearable_file") - assert parse_form(form) == parse_expected("test_clearable_file_field.html") + if django.VERSION < (6, 0): + assert parse_form(form) == parse_expected("test_clearable_file_field_lt60.html") + else: + assert parse_form(form) == parse_expected("test_clearable_file_field.html") form.helper.layout = Layout("file_field") @@ -621,6 +624,8 @@ def test_file_field(): expected = "test_clearable_file_field_failing_lt50.html" elif django.VERSION < (5, 2): expected = "test_clearable_file_field_failing_lt52.html" + elif django.VERSION < (6, 0): + expected = "test_clearable_file_field_failing_lt60.html" else: expected = "test_clearable_file_field_failing.html" assert parse_form(form) == parse_expected(expected) diff --git a/tox.ini b/tox.ini index 82c1ed5..052f7a3 100644 --- a/tox.ini +++ b/tox.ini @@ -1,8 +1,10 @@ [tox] envlist = - {py38,py39,py310,py311}-django{42}-crispy{-release,-latest}, - {py310,py311,py312}-django{50,51,52,-latest}-crispy{-release,-latest}, - {py313}-django{51,52,-latest}-crispy{-release,-latest}, + {py39,py310,py311}-django{42}-crispy{-release,-latest}, + {py310,py311}-django{50,51,52}-crispy{-release,-latest}, + {py312}-django{50,51,52,60,-latest}-crispy{-release,-latest}, + {py313}-django{51,52,60,-latest}-crispy{-release,-latest}, + {py314}-django{52,60,-latest}-crispy{-release,-latest}, lint [testenv] @@ -13,6 +15,7 @@ deps = django50: django>=5.0a1,<5.1 django51: django>=5.1a1,<5.2 django52: django>=5.2a1,<5.3 + django60: django>=6.0a1,<6.1 crispy-release: django-crispy-forms>=2.3 crispy-latest: https://github.com/django-crispy-forms/django-crispy-forms/archive/main.tar.gz dependency_groups = test