Skip to content

Commit 1aed40a

Browse files
authored
Updated supported versions. (#213)
* Added Django 6.0 * Added Python 3.14 * Removed Python 3.8
1 parent ef2ec5d commit 1aed40a

File tree

10 files changed

+76
-12
lines changed

10 files changed

+76
-12
lines changed

.github/workflows/publish.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,12 @@ jobs:
1212
fail-fast: false
1313
matrix:
1414
python-version:
15-
- "3.8"
1615
- "3.9"
1716
- "3.10"
1817
- "3.11"
1918
- "3.12"
2019
- "3.13"
20+
- "3.14"
2121

2222
steps:
2323
- uses: actions/checkout@v3

.github/workflows/test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,12 @@ jobs:
1414
fail-fast: false
1515
matrix:
1616
python-version:
17-
- "3.8"
1817
- "3.9"
1918
- "3.10"
2019
- "3.11"
2120
- "3.12"
2221
- "3.13"
22+
- "3.14"
2323

2424
steps:
2525
- uses: actions/checkout@v3

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
# CHANGELOG FOR CRISPY-BOOTSTRAP5
22

3+
## 2025.11 (TBC)
4+
* Confirmed support for Django 6.0.
5+
* Added support for Python 3.14.
6+
* Dropped support for Python 3.8.
7+
38
## 2025.6 (2025-06-08)
49
* `<legend>` elements now have `fs-6` class so they are the same font size as `<labels>`.
510

pyproject.toml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,23 +10,24 @@ description="Bootstrap5 template pack for django-crispy-forms"
1010
readme = "README.md"
1111
license = {text = "MIT"}
1212
authors = [{name = "David Smith"}]
13-
requires-python = ">=3.8"
13+
requires-python = ">=3.9"
1414
classifiers=[
1515
"Environment :: Web Environment",
1616
"Framework :: Django",
1717
"Framework :: Django :: 4.2",
1818
"Framework :: Django :: 5.0",
1919
"Framework :: Django :: 5.1",
2020
"Framework :: Django :: 5.2",
21+
"Framework :: Django :: 6.0",
2122
"License :: OSI Approved :: MIT License",
2223
"Operating System :: OS Independent",
2324
"Programming Language :: Python :: 3 :: Only",
24-
"Programming Language :: Python :: 3.8",
2525
"Programming Language :: Python :: 3.9",
2626
"Programming Language :: Python :: 3.10",
2727
"Programming Language :: Python :: 3.11",
2828
"Programming Language :: Python :: 3.12",
2929
"Programming Language :: Python :: 3.13",
30+
"Programming Language :: Python :: 3.14",
3031
"Topic :: Internet :: WWW/HTTP",
3132
"Topic :: Internet :: WWW/HTTP :: Dynamic Content",
3233
"Topic :: Software Development :: Libraries :: Python Modules",

tests/results/test_clearable_file_field.html

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
<form method="post" enctype="multipart/form-data">
22
<div id="div_id_clearable_file" class="mb-3">
3-
<label for="id_clearable_file" class="form-label">Clearable file</label>
3+
<fieldset>
4+
<legend for="id_clearable_file" class="form-label fs-6">Clearable file</legend>
45
<div class="input-group mb-2">
56
<span class="input-group-text">Currently</span>
67
<div class="form-control d-flex h-auto">
@@ -19,5 +20,6 @@
1920
<div>
2021
<input type="file" name="clearable_file" class="form-control" id="id_clearable_file">
2122
</div>
23+
</fieldset>
2224
</div>
2325
</form>

tests/results/test_clearable_file_field_failing.html

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
<form method="post" enctype="multipart/form-data">
22
<div id="div_id_clearable_file" class="mb-3">
3-
<label for="id_clearable_file" class="form-label requiredField">
3+
<fieldset aria-describedby="id_clearable_file_error">
4+
<legend for="id_clearable_file" class="form-label fs-6 requiredField">
45
Clearable file
56
<span class="asteriskField">*</span>
6-
</label>
7+
</legend>
78
<div class="is-invalid">
89
<input
9-
aria-describedby="id_clearable_file_error"
1010
type="file"
1111
name="clearable_file"
1212
class="form-control is-invalid"
@@ -20,5 +20,6 @@
2020
</span>
2121
</div>
2222
</div>
23+
</fieldset>
2324
</div>
2425
</form>
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<form method="post" enctype="multipart/form-data">
2+
<div id="div_id_clearable_file" class="mb-3">
3+
<label for="id_clearable_file" class="form-label requiredField">
4+
Clearable file
5+
<span class="asteriskField">*</span>
6+
</label>
7+
<div class="is-invalid">
8+
<input
9+
aria-describedby="id_clearable_file_error"
10+
type="file"
11+
name="clearable_file"
12+
class="form-control is-invalid"
13+
id="id_clearable_file"
14+
required
15+
aria-invalid="true"
16+
>
17+
<div id="id_clearable_file_error" class="invalid-feedback">
18+
<span id="error_1_id_clearable_file">
19+
<strong>This field is required.</strong>
20+
</span>
21+
</div>
22+
</div>
23+
</div>
24+
</form>
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<form method="post" enctype="multipart/form-data">
2+
<div id="div_id_clearable_file" class="mb-3">
3+
<label for="id_clearable_file" class="form-label">Clearable file</label>
4+
<div class="input-group mb-2">
5+
<span class="input-group-text">Currently</span>
6+
<div class="form-control d-flex h-auto">
7+
<span class="text-break flex-grow-1">
8+
<a href="something"></a>
9+
</span>
10+
<span class="align-self-center ml-2">
11+
<span class="form-check">
12+
<input type="checkbox" name="clearable_file-clear" id="clearable_file-clear_id"
13+
class="form-check-input">
14+
<label class="form-check-label mb-0" for="clearable_file-clear_id">Clear</label>
15+
</span>
16+
</span>
17+
</div>
18+
</div>
19+
<div>
20+
<input type="file" name="clearable_file" class="form-control" id="id_clearable_file">
21+
</div>
22+
</div>
23+
</form>

tests/test_layout.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -607,7 +607,10 @@ def test_file_field():
607607
form.helper = FormHelper()
608608
form.helper.layout = Layout("clearable_file")
609609

610-
assert parse_form(form) == parse_expected("test_clearable_file_field.html")
610+
if django.VERSION < (6, 0):
611+
assert parse_form(form) == parse_expected("test_clearable_file_field_lt60.html")
612+
else:
613+
assert parse_form(form) == parse_expected("test_clearable_file_field.html")
611614

612615
form.helper.layout = Layout("file_field")
613616

@@ -621,6 +624,8 @@ def test_file_field():
621624
expected = "test_clearable_file_field_failing_lt50.html"
622625
elif django.VERSION < (5, 2):
623626
expected = "test_clearable_file_field_failing_lt52.html"
627+
elif django.VERSION < (6, 0):
628+
expected = "test_clearable_file_field_failing_lt60.html"
624629
else:
625630
expected = "test_clearable_file_field_failing.html"
626631
assert parse_form(form) == parse_expected(expected)

tox.ini

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
[tox]
22
envlist =
3-
{py38,py39,py310,py311}-django{42}-crispy{-release,-latest},
4-
{py310,py311,py312}-django{50,51,52,-latest}-crispy{-release,-latest},
5-
{py313}-django{51,52,-latest}-crispy{-release,-latest},
3+
{py39,py310,py311}-django{42}-crispy{-release,-latest},
4+
{py310,py311}-django{50,51,52}-crispy{-release,-latest},
5+
{py312}-django{50,51,52,60,-latest}-crispy{-release,-latest},
6+
{py313}-django{51,52,60,-latest}-crispy{-release,-latest},
7+
{py314}-django{52,60,-latest}-crispy{-release,-latest},
68
lint
79

810
[testenv]
@@ -13,6 +15,7 @@ deps =
1315
django50: django>=5.0a1,<5.1
1416
django51: django>=5.1a1,<5.2
1517
django52: django>=5.2a1,<5.3
18+
django60: django>=6.0a1,<6.1
1619
crispy-release: django-crispy-forms>=2.3
1720
crispy-latest: https://github.com/django-crispy-forms/django-crispy-forms/archive/main.tar.gz
1821
dependency_groups = test

0 commit comments

Comments
 (0)