Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-crispy-bootstrap5 for 
openSUSE:Factory checked in at 2026-03-05 17:15:19
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-crispy-bootstrap5 (Old)
 and      /work/SRC/openSUSE:Factory/.python-crispy-bootstrap5.new.561 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-crispy-bootstrap5"

Thu Mar  5 17:15:19 2026 rev:7 rq:1336606 version:2026.3

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/python-crispy-bootstrap5/python-crispy-bootstrap5.changes
        2025-10-03 15:44:21.746864243 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-crispy-bootstrap5.new.561/python-crispy-bootstrap5.changes
       2026-03-05 17:18:35.751214607 +0100
@@ -1,0 +2,9 @@
+Wed Mar  4 22:24:14 UTC 2026 - Dirk Müller <[email protected]>
+
+- update to 2026.3:
+  * Confirmed support for Django 6.0.
+  * Dropped support for Django 4.2, 5.0 and 5.1.
+  * Added support for Python 3.14.
+  * Dropped support for Python 3.8 and 3.9.
+
+-------------------------------------------------------------------

Old:
----
  crispy-bootstrap5-2025.6.tar.gz

New:
----
  crispy-bootstrap5-2026.3.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-crispy-bootstrap5.spec ++++++
--- /var/tmp/diff_new_pack.ZeUALF/_old  2026-03-05 17:18:36.407241757 +0100
+++ /var/tmp/diff_new_pack.ZeUALF/_new  2026-03-05 17:18:36.411241922 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package python-crispy-bootstrap5
 #
-# Copyright (c) 2025 SUSE LLC and contributors
+# Copyright (c) 2026 SUSE LLC and contributors
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -18,7 +18,7 @@
 
 %{?sle15_python_module_pythons}
 Name:           python-crispy-bootstrap5
-Version:        2025.6
+Version:        2026.3
 Release:        0
 Summary:        Bootstrap5 template pack for django-crispy-forms
 License:        MIT

++++++ crispy-bootstrap5-2025.6.tar.gz -> crispy-bootstrap5-2026.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crispy-bootstrap5-2025.6/.github/workflows/publish.yml 
new/crispy-bootstrap5-2026.3/.github/workflows/publish.yml
--- old/crispy-bootstrap5-2025.6/.github/workflows/publish.yml  2025-06-08 
09:38:56.000000000 +0200
+++ new/crispy-bootstrap5-2026.3/.github/workflows/publish.yml  2026-03-01 
11:05:35.000000000 +0100
@@ -12,12 +12,11 @@
       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 -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/crispy-bootstrap5-2025.6/.github/workflows/test.yml 
new/crispy-bootstrap5-2026.3/.github/workflows/test.yml
--- old/crispy-bootstrap5-2025.6/.github/workflows/test.yml     2025-06-08 
09:38:56.000000000 +0200
+++ new/crispy-bootstrap5-2026.3/.github/workflows/test.yml     2026-03-01 
11:05:35.000000000 +0100
@@ -14,12 +14,11 @@
       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 -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/crispy-bootstrap5-2025.6/CHANGELOG.md 
new/crispy-bootstrap5-2026.3/CHANGELOG.md
--- old/crispy-bootstrap5-2025.6/CHANGELOG.md   2025-06-08 09:38:56.000000000 
+0200
+++ new/crispy-bootstrap5-2026.3/CHANGELOG.md   2026-03-01 11:05:35.000000000 
+0100
@@ -1,5 +1,11 @@
 # CHANGELOG FOR CRISPY-BOOTSTRAP5
 
+## 2026.3 (2026-03-01)
+* Confirmed support for Django 6.0.
+* Dropped support for Django 4.2, 5.0 and 5.1.
+* Added support for Python 3.14.
+* Dropped support for Python 3.8 and 3.9.
+
 ## 2025.6 (2025-06-08)
 * `<legend>` elements now have `fs-6` class so they are the same font size as 
`<labels>`.  
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crispy-bootstrap5-2025.6/crispy_bootstrap5/__init__.py 
new/crispy-bootstrap5-2026.3/crispy_bootstrap5/__init__.py
--- old/crispy-bootstrap5-2025.6/crispy_bootstrap5/__init__.py  2025-06-08 
09:38:56.000000000 +0200
+++ new/crispy-bootstrap5-2026.3/crispy_bootstrap5/__init__.py  2026-03-01 
11:05:35.000000000 +0100
@@ -1 +1 @@
-__version__ = "2025.6"
+__version__ = "2026.3"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crispy-bootstrap5-2025.6/crispy_bootstrap5/templates/bootstrap5/layout/field_errors.html
 
new/crispy-bootstrap5-2026.3/crispy_bootstrap5/templates/bootstrap5/layout/field_errors.html
--- 
old/crispy-bootstrap5-2025.6/crispy_bootstrap5/templates/bootstrap5/layout/field_errors.html
        2025-06-08 09:38:56.000000000 +0200
+++ 
new/crispy-bootstrap5-2026.3/crispy_bootstrap5/templates/bootstrap5/layout/field_errors.html
        2026-03-01 11:05:35.000000000 +0100
@@ -1,10 +1,5 @@
 {% if form_show_errors and field.errors %}
-    {% if field.errors.field_id %}
-        {# Django 5.2+ #}
-        <div id="{{field.errors.field_id}}_error" class="invalid-feedback">
-    {% else %}
-        <div id="{{field.auto_id}}_error" class="invalid-feedback">
-    {% endif %}
+    <div id="{{field.errors.field_id}}_error" class="invalid-feedback">
     {% for error in field.errors %}
         <span id="error_{{ forloop.counter }}_{{ field.auto_id }}"><strong>{{ 
error }}</strong></span>
     {% endfor %}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crispy-bootstrap5-2025.6/crispy_bootstrap5/templates/bootstrap5/layout/field_errors_block.html
 
new/crispy-bootstrap5-2026.3/crispy_bootstrap5/templates/bootstrap5/layout/field_errors_block.html
--- 
old/crispy-bootstrap5-2025.6/crispy_bootstrap5/templates/bootstrap5/layout/field_errors_block.html
  2025-06-08 09:38:56.000000000 +0200
+++ 
new/crispy-bootstrap5-2026.3/crispy_bootstrap5/templates/bootstrap5/layout/field_errors_block.html
  2026-03-01 11:05:35.000000000 +0100
@@ -1,10 +1,5 @@
 {% if form_show_errors and field.errors %}
-    {% if field.errors.field_id %}
-        {# Django 5.2+ #}
-        <div id="{{field.errors.field_id}}_error"class="invalid-feedback">
-    {% else %}
-        <div id="{{field.auto_id}}_error" class="invalid-feedback">
-    {% endif %}
+    <div id="{{field.errors.field_id}}_error" class="invalid-feedback">
     {% for error in field.errors %}
         <p id="error_{{ forloop.counter }}_{{ field.auto_id }}"><strong>{{ 
error }}</strong></p>
     {% endfor %}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crispy-bootstrap5-2025.6/crispy_bootstrap5/templates/bootstrap5/layout/field_with_buttons.html
 
new/crispy-bootstrap5-2026.3/crispy_bootstrap5/templates/bootstrap5/layout/field_with_buttons.html
--- 
old/crispy-bootstrap5-2025.6/crispy_bootstrap5/templates/bootstrap5/layout/field_with_buttons.html
  2025-06-08 09:38:56.000000000 +0200
+++ 
new/crispy-bootstrap5-2026.3/crispy_bootstrap5/templates/bootstrap5/layout/field_with_buttons.html
  2026-03-01 11:05:35.000000000 +0100
@@ -24,16 +24,13 @@
             {% endif %}
             {{ buttons|safe }}
         </div>
-        {% if field.errors.field_id %}
-            {# Django 5.2+ #}
-            <div id="{{field.errors.field_id}}_error">
-        {% else %}
-            <div id="{{field.auto_id}}_error">
-        {% endif %}
+        {% if field.errors %}
+        <div id="{{field.errors.field_id}}_error">
             {% for error in field.errors %}
                 <p id="error_{{ forloop.counter }}_{{ field.auto_id }}" 
class="text-danger mb-0"><small><strong>{{ error }}</strong></small></p>
             {% endfor %}
         </div>
+        {% endif %}
         {% include 'bootstrap5/layout/help_text.html' %}
     </div>
 </div>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crispy-bootstrap5-2025.6/crispy_bootstrap5/templates/bootstrap5/layout/multifield.html
 
new/crispy-bootstrap5-2026.3/crispy_bootstrap5/templates/bootstrap5/layout/multifield.html
--- 
old/crispy-bootstrap5-2025.6/crispy_bootstrap5/templates/bootstrap5/layout/multifield.html
  2025-06-08 09:38:56.000000000 +0200
+++ 
new/crispy-bootstrap5-2026.3/crispy_bootstrap5/templates/bootstrap5/layout/multifield.html
  2026-03-01 11:05:35.000000000 +0100
@@ -1,27 +1,3 @@
-{% load crispy_forms_field %}
-
-{% if field.is_hidden %}
-    {{ field }}
-{% else %}
-
-    {% if field.label %}
-        <label for="{{ field.id_for_label }}"{% if labelclass %} class="{{ 
labelclass }}"{% endif %}>
-    {% endif %}
-
-    {% if field|is_checkbox %}
-        {% crispy_field field %}
-    {% endif %}
-
-    {% if field.label %}
-        {{ field.label }}
-    {% endif %}
-
-    {% if not field|is_checkbox %}
-        {% crispy_field field %}
-    {% endif %}
-
-    {% if field.label %}
-        </label>
-    {% endif %}
-
-{% endif %}
+<div class="d-flex gap-2">
+    {{ fields_output }}
+</div>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crispy-bootstrap5-2025.6/crispy_bootstrap5/templates/bootstrap5/layout/radio_checkbox_select.html
 
new/crispy-bootstrap5-2026.3/crispy_bootstrap5/templates/bootstrap5/layout/radio_checkbox_select.html
--- 
old/crispy-bootstrap5-2025.6/crispy_bootstrap5/templates/bootstrap5/layout/radio_checkbox_select.html
       2025-06-08 09:38:56.000000000 +0200
+++ 
new/crispy-bootstrap5-2026.3/crispy_bootstrap5/templates/bootstrap5/layout/radio_checkbox_select.html
       2026-03-01 11:05:35.000000000 +0100
@@ -20,12 +20,7 @@
 
 </div>
 {% if field.errors and inline_class %}
-    {% if field.errors.field_id %}
-        {# Django 5.2+ #}
-        <div id="{{field.errors.field_id}}_error" class="invalid-feedback">
-    {% else %}
-        <div id="{{field.auto_id}}_error" class="invalid-feedback">
-    {% endif %}
+    <div id="{{field.errors.field_id}}_error" class="invalid-feedback">
         {% for error in field.errors %}
             <p id="error_{{ forloop.counter }}_{{ field.auto_id }}"><strong>{{ 
error }}</strong></p>
         {% endfor %}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crispy-bootstrap5-2025.6/crispy_bootstrap5/templates/bootstrap5/multifield.html
 
new/crispy-bootstrap5-2026.3/crispy_bootstrap5/templates/bootstrap5/multifield.html
--- 
old/crispy-bootstrap5-2025.6/crispy_bootstrap5/templates/bootstrap5/multifield.html
 1970-01-01 01:00:00.000000000 +0100
+++ 
new/crispy-bootstrap5-2026.3/crispy_bootstrap5/templates/bootstrap5/multifield.html
 2026-03-01 11:05:35.000000000 +0100
@@ -0,0 +1 @@
+<div>{% include 'bootstrap5/field.html' %}</div>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/crispy-bootstrap5-2025.6/pyproject.toml 
new/crispy-bootstrap5-2026.3/pyproject.toml
--- old/crispy-bootstrap5-2025.6/pyproject.toml 2025-06-08 09:38:56.000000000 
+0200
+++ new/crispy-bootstrap5-2026.3/pyproject.toml 2026-03-01 11:05:35.000000000 
+0100
@@ -1,32 +1,26 @@
 [build-system]
 build-backend = "setuptools.build_meta"
-requires = [
-  "setuptools>=61",
-]
+requires = ["setuptools>=77.0.3"]
 
 [project]
 name="crispy-bootstrap5"
 description="Bootstrap5 template pack for django-crispy-forms"
 readme = "README.md"
-license = {text = "MIT"}
+license = "MIT"
 authors = [{name = "David Smith"}]
-requires-python = ">=3.8"
+requires-python = ">=3.9"
 classifiers=[
   "Environment :: Web Environment",
   "Framework :: Django",
-  "Framework :: Django :: 4.2",
-  "Framework :: Django :: 5.0",
-  "Framework :: Django :: 5.1",
   "Framework :: Django :: 5.2",
-  "License :: OSI Approved :: MIT License",
+  "Framework :: Django :: 6.0",
   "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",
@@ -38,11 +32,16 @@
   "django>=4.2",
   "django-crispy-forms>=2.3",
 ]
-[project.optional-dependencies]
+[dependency-groups]
 test = [
   "pytest",
   "pytest-django",
 ]
+lint = [
+  "black",
+  "isort",
+  "flake8",
+]
 [project.urls]
 "CI" = "https://github.com/django-crispy-forms/crispy-bootstrap5/actions";
 "Changelog" = 
"https://github.com/django-crispy-forms/crispy-bootstrap5/releases";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crispy-bootstrap5-2025.6/tests/results/field_with_buttons.html 
new/crispy-bootstrap5-2026.3/tests/results/field_with_buttons.html
--- old/crispy-bootstrap5-2025.6/tests/results/field_with_buttons.html  
2025-06-08 09:38:56.000000000 +0200
+++ new/crispy-bootstrap5-2026.3/tests/results/field_with_buttons.html  
2026-03-01 11:05:35.000000000 +0100
@@ -7,7 +7,6 @@
                     <input class="form-control inputtext textInput textinput" 
id="id_email" aria-describedby="id_email_helptext"
                                                maxlength="30" name="email" 
required type="text">
                     <a class="btn btn-primary"                                 
        role="button">click me</a></div>
-                <div id="id_email_error"></div>
                                <div class="form-text" 
id="id_email_helptext">Insert your email</div>
                        </div>
                </div>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crispy-bootstrap5-2025.6/tests/results/field_with_buttons_failing_lt50.html 
new/crispy-bootstrap5-2026.3/tests/results/field_with_buttons_failing_lt50.html
--- 
old/crispy-bootstrap5-2025.6/tests/results/field_with_buttons_failing_lt50.html 
    2025-06-08 09:38:56.000000000 +0200
+++ 
new/crispy-bootstrap5-2026.3/tests/results/field_with_buttons_failing_lt50.html 
    1970-01-01 01:00:00.000000000 +0100
@@ -1,15 +0,0 @@
-<form method="post">
-       <div class=" col-md">
-               <div class="mb-3"><label class=" form-label requiredField" 
for="id_email">Email<span
-                                       class="asteriskField">*</span></label>
-                       <div>
-                               <div class="input-group"><input 
class="form-control inputtext is-invalid textInput textinput"
-                                               id="id_email" maxlength="20" 
name="email" required type="text"><button
-                                               class="btn 
btn-outline-secondary" type="button">Go!</button></div>
-                               <div id="id_email_error">
-                    <p class="mb-0 text-danger" 
id="error_1_id_email"><small><strong>This field is 
required.</strong></small></p>
-                </div>
-                       </div>
-               </div>
-       </div>
-</form>
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crispy-bootstrap5-2025.6/tests/results/field_with_buttons_failing_lt52.html 
new/crispy-bootstrap5-2026.3/tests/results/field_with_buttons_failing_lt52.html
--- 
old/crispy-bootstrap5-2025.6/tests/results/field_with_buttons_failing_lt52.html 
    2025-06-08 09:38:56.000000000 +0200
+++ 
new/crispy-bootstrap5-2026.3/tests/results/field_with_buttons_failing_lt52.html 
    1970-01-01 01:00:00.000000000 +0100
@@ -1,15 +0,0 @@
-<form method="post">
-       <div class=" col-md">
-               <div class="mb-3"><label class=" form-label requiredField" 
for="id_email">Email<span
-                                       class="asteriskField">*</span></label>
-                       <div>
-                               <div class="input-group"><input 
class="form-control inputtext is-invalid textInput textinput"
-                                               id="id_email" maxlength="20" 
name="email" required type="text" aria-invalid="true"><button
-                                               class="btn 
btn-outline-secondary" type="button">Go!</button></div>
-                               <div id="id_email_error">
-                    <p class="mb-0 text-danger" 
id="error_1_id_email"><small><strong>This field is 
required.</strong></small></p>
-                </div>
-                       </div>
-               </div>
-       </div>
-</form>
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crispy-bootstrap5-2025.6/tests/results/field_with_buttons_lt50.html 
new/crispy-bootstrap5-2026.3/tests/results/field_with_buttons_lt50.html
--- old/crispy-bootstrap5-2025.6/tests/results/field_with_buttons_lt50.html     
2025-06-08 09:38:56.000000000 +0200
+++ new/crispy-bootstrap5-2026.3/tests/results/field_with_buttons_lt50.html     
1970-01-01 01:00:00.000000000 +0100
@@ -1,15 +0,0 @@
-<form method="post">
-       <div class=" col-md">
-               <div class="mb-3"><label class=" form-label requiredField" 
for="id_email">email<span
-                                       class="asteriskField">*</span></label>
-                       <div>
-                               <div class="input-group">
-                    <input class="form-control inputtext textInput textinput" 
id="id_email"
-                                               maxlength="30" name="email" 
required type="text">
-                    <a class="btn btn-primary"                                 
        role="button">click me</a></div>
-                <div id="id_email_error"></div>
-                <div class="form-text" id="id_email_helptext">Insert your 
email</div>
-                       </div>
-               </div>
-       </div>
-</form>
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crispy-bootstrap5-2025.6/tests/results/help_text_escape_lt50.html 
new/crispy-bootstrap5-2026.3/tests/results/help_text_escape_lt50.html
--- old/crispy-bootstrap5-2025.6/tests/results/help_text_escape_lt50.html       
2025-06-08 09:38:56.000000000 +0200
+++ new/crispy-bootstrap5-2026.3/tests/results/help_text_escape_lt50.html       
1970-01-01 01:00:00.000000000 +0100
@@ -1,5 +0,0 @@
-<div class="mb-3" id="div_id_email"><label class="form-label requiredField" 
for="id_email">email<span
-            class="asteriskField">*</span></label><input class="form-control 
inputtext textInput textinput"
-        id="id_email" name="email" required type="text" maxlength="320"><div 
class="form-text" id="id_email_helptext">Insert
-        your <b>email</b></div>
-</div>
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crispy-bootstrap5-2025.6/tests/results/inline_checkboxes_failing_lt50.html 
new/crispy-bootstrap5-2026.3/tests/results/inline_checkboxes_failing_lt50.html
--- 
old/crispy-bootstrap5-2025.6/tests/results/inline_checkboxes_failing_lt50.html  
    2025-06-08 09:38:56.000000000 +0200
+++ 
new/crispy-bootstrap5-2026.3/tests/results/inline_checkboxes_failing_lt50.html  
    1970-01-01 01:00:00.000000000 +0100
@@ -1,24 +0,0 @@
-<form method="post">
-    <div id="div_id_checkboxes" class="mb-3">
-        <fieldset>
-        <legend for=""  class=" form-label fs-6 requiredField">Checkboxes<span 
class="asteriskField">*</span></legend>
-        <div>
-            <div class="form-check form-check-inline">
-                <input type="checkbox" class="form-check-input is-invalid"  
name="checkboxes" value="1"  id="id_checkboxes_0">
-                <label for="id_checkboxes_0" class="form-check-label">Option 
one</label>
-            </div>
-            <div class="form-check form-check-inline">
-                <input type="checkbox" class="form-check-input is-invalid"  
name="checkboxes" value="2"  id="id_checkboxes_1">
-                <label for="id_checkboxes_1" class="form-check-label">Option 
two</label>
-            </div>
-            <div class="form-check form-check-inline">
-                <input type="checkbox" class="form-check-input is-invalid"  
name="checkboxes" value="3"  id="id_checkboxes_2">
-                <label for="id_checkboxes_2" class="form-check-label">Option 
three</label>
-            </div>
-        </div>
-        <div id="id_checkboxes_error" class="invalid-feedback">
-        <p id="error_1_id_checkboxes"><strong>This field is 
required.</strong></p>
-        </div>
-        </fieldset>
-    </div>
-</form>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crispy-bootstrap5-2025.6/tests/results/inline_checkboxes_failing_lt52.html 
new/crispy-bootstrap5-2026.3/tests/results/inline_checkboxes_failing_lt52.html
--- 
old/crispy-bootstrap5-2025.6/tests/results/inline_checkboxes_failing_lt52.html  
    2025-06-08 09:38:56.000000000 +0200
+++ 
new/crispy-bootstrap5-2026.3/tests/results/inline_checkboxes_failing_lt52.html  
    1970-01-01 01:00:00.000000000 +0100
@@ -1,24 +0,0 @@
-<form method="post">
-    <div id="div_id_checkboxes" class="mb-3">
-        <fieldset>
-        <legend for=""  class=" form-label fs-6 requiredField">Checkboxes<span 
class="asteriskField">*</span></legend>
-        <div>
-            <div class="form-check form-check-inline">
-                <input type="checkbox" class="form-check-input is-invalid"  
name="checkboxes" value="1"  id="id_checkboxes_0" aria-invalid="true">
-                <label for="id_checkboxes_0" class="form-check-label">Option 
one</label>
-            </div>
-            <div class="form-check form-check-inline">
-                <input type="checkbox" class="form-check-input is-invalid"  
name="checkboxes" value="2"  id="id_checkboxes_1" aria-invalid="true">
-                <label for="id_checkboxes_1" class="form-check-label">Option 
two</label>
-            </div>
-            <div class="form-check form-check-inline">
-                <input type="checkbox" class="form-check-input is-invalid"  
name="checkboxes" value="3"  id="id_checkboxes_2" aria-invalid="true">
-                <label for="id_checkboxes_2" class="form-check-label">Option 
three</label>
-            </div>
-        </div>
-        <div id="id_checkboxes_error" class="invalid-feedback">
-        <p id="error_1_id_checkboxes"><strong>This field is 
required.</strong></p>
-        </div>
-        </fieldset>
-    </div>
-</form>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crispy-bootstrap5-2025.6/tests/results/inline_radios_failing_lt50.html 
new/crispy-bootstrap5-2026.3/tests/results/inline_radios_failing_lt50.html
--- old/crispy-bootstrap5-2025.6/tests/results/inline_radios_failing_lt50.html  
2025-06-08 09:38:56.000000000 +0200
+++ new/crispy-bootstrap5-2026.3/tests/results/inline_radios_failing_lt50.html  
1970-01-01 01:00:00.000000000 +0100
@@ -1,20 +0,0 @@
-<form  method="post" >
-    <div id="div_id_inline_radios" class="mb-3">
-        <fieldset>
-        <legend for=""  class=" form-label fs-6 requiredField">Inline 
radios<span class="asteriskField">*</span></legend>
-        <div>
-            <div class="form-check form-check-inline">
-                <input type="radio" class="form-check-input is-invalid"  
name="inline_radios" value="option_one"  id="id_inline_radios_0" required>
-                <label for="id_inline_radios_0" 
class="form-check-label">Option one</label>
-            </div>
-            <div class="form-check form-check-inline">
-                <input type="radio" class="form-check-input is-invalid"  
name="inline_radios" value="option_two"  id="id_inline_radios_1" required>
-                <label for="id_inline_radios_1" 
class="form-check-label">Option two</label>
-            </div>
-        </div>
-        <div id="id_inline_radios_error" class="invalid-feedback">
-            <p id="error_1_id_inline_radios"><strong>This field is 
required.</strong></p>
-        </div>
-        </fieldset>
-    </div>
-</form>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crispy-bootstrap5-2025.6/tests/results/inline_radios_failing_lt52.html 
new/crispy-bootstrap5-2026.3/tests/results/inline_radios_failing_lt52.html
--- old/crispy-bootstrap5-2025.6/tests/results/inline_radios_failing_lt52.html  
2025-06-08 09:38:56.000000000 +0200
+++ new/crispy-bootstrap5-2026.3/tests/results/inline_radios_failing_lt52.html  
1970-01-01 01:00:00.000000000 +0100
@@ -1,20 +0,0 @@
-<form  method="post" >
-    <div id="div_id_inline_radios" class="mb-3">
-        <fieldset>
-        <legend for=""  class=" form-label fs-6 requiredField">Inline 
radios<span class="asteriskField">*</span></legend>
-        <div>
-            <div class="form-check form-check-inline">
-                <input type="radio" class="form-check-input is-invalid"  
name="inline_radios" value="option_one"  id="id_inline_radios_0" required 
aria-invalid="true">
-                <label for="id_inline_radios_0" 
class="form-check-label">Option one</label>
-            </div>
-            <div class="form-check form-check-inline">
-                <input type="radio" class="form-check-input is-invalid"  
name="inline_radios" value="option_two"  id="id_inline_radios_1" required 
aria-invalid="true">
-                <label for="id_inline_radios_1" 
class="form-check-label">Option two</label>
-            </div>
-        </div>
-        <div id="id_inline_radios_error" class="invalid-feedback">
-            <p id="error_1_id_inline_radios"><strong>This field is 
required.</strong></p>
-        </div>
-        </fieldset>
-    </div>
-</form>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crispy-bootstrap5-2025.6/tests/results/test_bootstrap5_form_inline_lt50.html
 
new/crispy-bootstrap5-2026.3/tests/results/test_bootstrap5_form_inline_lt50.html
--- 
old/crispy-bootstrap5-2025.6/tests/results/test_bootstrap5_form_inline_lt50.html
    2025-06-08 09:38:56.000000000 +0200
+++ 
new/crispy-bootstrap5-2026.3/tests/results/test_bootstrap5_form_inline_lt50.html
    1970-01-01 01:00:00.000000000 +0100
@@ -1,20 +0,0 @@
-<form class="row row-cols-lg-auto" method="post">
-    <div id="div_id_email">
-        <label class="visually-hidden" for="id_email">
-            email
-        </label><input class="form-control inputtext textInput textinput" 
id="id_email" maxlength="30" name="email"
-            placeholder="email" required type="text">
-    </div>
-    <div id="div_id_password1">
-        <label class="visually-hidden" for="id_password1">
-            password
-        </label><input class="form-control textInput textinput" 
id="id_password1" maxlength="30" name="password1"
-            placeholder="password" required type="password">
-    </div>
-    <div id="div_id_last_name">
-        <label class="visually-hidden" for="id_last_name">
-            last name
-        </label><input class="form-control inputtext textInput textinput" 
id="id_last_name" maxlength="5"
-            name="last_name" placeholder="last name" required type="text">
-    </div>
-</form>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crispy-bootstrap5-2025.6/tests/results/test_clearable_file_field_failing_lt50.html
 
new/crispy-bootstrap5-2026.3/tests/results/test_clearable_file_field_failing_lt50.html
--- 
old/crispy-bootstrap5-2025.6/tests/results/test_clearable_file_field_failing_lt50.html
      2025-06-08 09:38:56.000000000 +0200
+++ 
new/crispy-bootstrap5-2026.3/tests/results/test_clearable_file_field_failing_lt50.html
      1970-01-01 01:00:00.000000000 +0100
@@ -1,16 +0,0 @@
-<form method="post" enctype="multipart/form-data">
-    <div id="div_id_clearable_file" class="mb-3">
-        <label for="id_clearable_file" class="form-label requiredField">
-            Clearable file
-            <span class="asteriskField">*</span>
-        </label>
-        <div class="is-invalid">
-            <input type="file" name="clearable_file" class="form-control 
is-invalid" id="id_clearable_file" required>
-            <div id="id_clearable_file_error" class="invalid-feedback">
-                <span id="error_1_id_clearable_file">
-                    <strong>This field is required.</strong>
-                </span>
-            </div>
-        </div>
-    </div>
-</form>
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crispy-bootstrap5-2025.6/tests/results/test_clearable_file_field_failing_lt52.html
 
new/crispy-bootstrap5-2026.3/tests/results/test_clearable_file_field_failing_lt52.html
--- 
old/crispy-bootstrap5-2025.6/tests/results/test_clearable_file_field_failing_lt52.html
      2025-06-08 09:38:56.000000000 +0200
+++ 
new/crispy-bootstrap5-2026.3/tests/results/test_clearable_file_field_failing_lt52.html
      1970-01-01 01:00:00.000000000 +0100
@@ -1,23 +0,0 @@
-<form method="post" enctype="multipart/form-data">
-    <div id="div_id_clearable_file" class="mb-3">
-        <label for="id_clearable_file" class="form-label requiredField">
-            Clearable file
-            <span class="asteriskField">*</span>
-        </label>
-        <div class="is-invalid">
-            <input
-                    type="file"
-                    name="clearable_file"
-                    class="form-control is-invalid"
-                    id="id_clearable_file"
-                    required
-                    aria-invalid="true"
-            >
-            <div id="id_clearable_file_error" class="invalid-feedback">
-                <span id="error_1_id_clearable_file">
-                    <strong>This field is required.</strong>
-                </span>
-            </div>
-        </div>
-    </div>
-</form>
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crispy-bootstrap5-2025.6/tests/results/test_file_field_failing_lt50.html 
new/crispy-bootstrap5-2026.3/tests/results/test_file_field_failing_lt50.html
--- 
old/crispy-bootstrap5-2025.6/tests/results/test_file_field_failing_lt50.html    
    2025-06-08 09:38:56.000000000 +0200
+++ 
new/crispy-bootstrap5-2026.3/tests/results/test_file_field_failing_lt50.html    
    1970-01-01 01:00:00.000000000 +0100
@@ -1,16 +0,0 @@
-<form method="post" enctype="multipart/form-data">
-    <div id="div_id_file_field" class="mb-3">
-        <label for="id_file_field" class="form-label requiredField">
-            File field
-            <span class="asteriskField">*</span>
-        </label>
-        <div class="is-invalid">
-            <input type="file" name="file_field" class="form-control 
is-invalid" id="id_file_field" required>
-            <div id="id_file_field_error" class="invalid-feedback">
-                <span id="error_1_id_file_field">
-                    <strong>This field is required.</strong>
-                </span>
-            </div>
-        </div>
-    </div>
-</form>
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crispy-bootstrap5-2025.6/tests/results/test_file_field_failing_lt52.html 
new/crispy-bootstrap5-2026.3/tests/results/test_file_field_failing_lt52.html
--- 
old/crispy-bootstrap5-2025.6/tests/results/test_file_field_failing_lt52.html    
    2025-06-08 09:38:56.000000000 +0200
+++ 
new/crispy-bootstrap5-2026.3/tests/results/test_file_field_failing_lt52.html    
    1970-01-01 01:00:00.000000000 +0100
@@ -1,23 +0,0 @@
-<form method="post" enctype="multipart/form-data">
-    <div id="div_id_file_field" class="mb-3">
-        <label for="id_file_field" class="form-label requiredField">
-            File field
-            <span class="asteriskField">*</span>
-        </label>
-        <div class="is-invalid">
-            <input
-                    type="file"
-                    name="file_field"
-                    class="form-control is-invalid"
-                    id="id_file_field"
-                    required
-                    aria-invalid="true"
-            >
-            <div id="id_file_field_error" class="invalid-feedback">
-                <span id="error_1_id_file_field">
-                    <strong>This field is required.</strong>
-                </span>
-            </div>
-        </div>
-    </div>
-</form>
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crispy-bootstrap5-2025.6/tests/results/test_floating_field_failing_lt50.html
 
new/crispy-bootstrap5-2026.3/tests/results/test_floating_field_failing_lt50.html
--- 
old/crispy-bootstrap5-2025.6/tests/results/test_floating_field_failing_lt50.html
    2025-06-08 09:38:56.000000000 +0200
+++ 
new/crispy-bootstrap5-2026.3/tests/results/test_floating_field_failing_lt50.html
    1970-01-01 01:00:00.000000000 +0100
@@ -1,29 +0,0 @@
-<form  method="post" >
-    <div id="div_id_text_area" class="form-floating mb-3">
-        <textarea name="text_area" cols="40" rows="10" placeholder="text_area" 
class="textarea form-control is-invalid" required id="id_text_area">
-        </textarea>
-        <label for="id_text_area">
-            Text area<span class="asteriskField">*</span>
-        </label>
-        <div id="id_text_area_error" class="invalid-feedback">
-            <span id="error_1_id_text_area">
-                <strong>This field is required.</strong>
-            </span>
-        </div>
-    </div>
-    <div id="div_id_select_input" class="form-floating mb-3">
-        <select name="select_input" placeholder="select_input" class="select 
form-select is-invalid" id="id_select_input">
-            <option value="1">Option one</option>
-            <option value="2">Option two</option>
-            <option value="3">Option three</option>
-        </select>
-        <label for="id_select_input">
-            Select input<span class="asteriskField">*</span>
-        </label>
-        <div id="id_select_input_error" class="invalid-feedback">
-            <span id="error_1_id_select_input">
-                <strong>This field is required.</strong>
-            </span>
-        </div>
-    </div>
-</form>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crispy-bootstrap5-2025.6/tests/results/test_floating_field_failing_lt52.html
 
new/crispy-bootstrap5-2026.3/tests/results/test_floating_field_failing_lt52.html
--- 
old/crispy-bootstrap5-2025.6/tests/results/test_floating_field_failing_lt52.html
    2025-06-08 09:38:56.000000000 +0200
+++ 
new/crispy-bootstrap5-2026.3/tests/results/test_floating_field_failing_lt52.html
    1970-01-01 01:00:00.000000000 +0100
@@ -1,29 +0,0 @@
-<form  method="post" >
-    <div id="div_id_text_area" class="form-floating mb-3">
-        <textarea name="text_area" cols="40" rows="10" placeholder="text_area" 
class="textarea form-control is-invalid" required id="id_text_area" 
aria-invalid="true">
-        </textarea>
-        <label for="id_text_area">
-            Text area<span class="asteriskField">*</span>
-        </label>
-        <div id="id_text_area_error" class="invalid-feedback">
-            <span id="error_1_id_text_area">
-                <strong>This field is required.</strong>
-            </span>
-        </div>
-    </div>
-    <div id="div_id_select_input" class="form-floating mb-3">
-        <select name="select_input" placeholder="select_input" class="select 
form-select is-invalid" id="id_select_input" aria-invalid="true">
-            <option value="1">Option one</option>
-            <option value="2">Option two</option>
-            <option value="3">Option three</option>
-        </select>
-        <label for="id_select_input">
-            Select input<span class="asteriskField">*</span>
-        </label>
-        <div id="id_select_input_error" class="invalid-feedback">
-            <span id="error_1_id_select_input">
-                <strong>This field is required.</strong>
-            </span>
-        </div>
-    </div>
-</form>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crispy-bootstrap5-2025.6/tests/results/test_grouped_checkboxes_failing_lt50.html
 
new/crispy-bootstrap5-2026.3/tests/results/test_grouped_checkboxes_failing_lt50.html
--- 
old/crispy-bootstrap5-2025.6/tests/results/test_grouped_checkboxes_failing_lt50.html
        2025-06-08 09:38:56.000000000 +0200
+++ 
new/crispy-bootstrap5-2026.3/tests/results/test_grouped_checkboxes_failing_lt50.html
        1970-01-01 01:00:00.000000000 +0100
@@ -1,30 +0,0 @@
-<form method="post">
-    <div class="mb-3" id="div_id_checkbox_select_multiple">
-        <fieldset>
-            <legend class="form-label fs-6 requiredField">Checkbox select 
multiple<span class="asteriskField">*</span></legend>
-            <div><strong>Audio</strong>
-                <div class="form-check"><input class="form-check-input 
is-invalid" id="id_checkbox_select_multiple_0_0"
-                        name="checkbox_select_multiple" type="checkbox" 
value="vinyl"><label class="form-check-label"
-                        
for="id_checkbox_select_multiple_0_0">Vinyl</label></div>
-                <div class="form-check"><input class="form-check-input 
is-invalid" id="id_checkbox_select_multiple_0_1"
-                        name="checkbox_select_multiple" type="checkbox" 
value="cd"><label class="form-check-label"
-                        
for="id_checkbox_select_multiple_0_1">CD</label></div><strong>Video</strong>
-                <div class="form-check"><input class="form-check-input 
is-invalid" id="id_checkbox_select_multiple_1_0"
-                        name="checkbox_select_multiple" type="checkbox" 
value="vhs"><label class="form-check-label"
-                        for="id_checkbox_select_multiple_1_0">VHS 
Tape</label></div>
-                <div class="form-check"><input class="form-check-input 
is-invalid" id="id_checkbox_select_multiple_1_1"
-                        name="checkbox_select_multiple" type="checkbox" 
value="dvd"><label class="form-check-label"
-                        for="id_checkbox_select_multiple_1_1">DVD</label></div>
-                <div class="form-check"><input class="form-check-input 
is-invalid" id="id_checkbox_select_multiple_2"
-                        name="checkbox_select_multiple" type="checkbox" 
value="unknown"><label class="form-check-label"
-                        for="id_checkbox_select_multiple_2">Unknown</label>
-                    <div id="id_checkbox_select_multiple_error" 
class="invalid-feedback"><p 
id="error_1_id_checkbox_select_multiple"><strong>This field is
-                        required.</strong></p></div>
-                </div>
-            </div>
-            <div class="form-text" id="id_checkbox_select_multiple_helptext">
-                help
-            </div>
-        </fieldset>
-    </div>
-</form>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crispy-bootstrap5-2025.6/tests/results/test_grouped_checkboxes_failing_lt52.html
 
new/crispy-bootstrap5-2026.3/tests/results/test_grouped_checkboxes_failing_lt52.html
--- 
old/crispy-bootstrap5-2025.6/tests/results/test_grouped_checkboxes_failing_lt52.html
        2025-06-08 09:38:56.000000000 +0200
+++ 
new/crispy-bootstrap5-2026.3/tests/results/test_grouped_checkboxes_failing_lt52.html
        1970-01-01 01:00:00.000000000 +0100
@@ -1,32 +0,0 @@
-<form method="post">
-    <div class="mb-3" id="div_id_checkbox_select_multiple">
-        <fieldset>
-            <legend class="form-label fs-6 requiredField">Checkbox select 
multiple<span class="asteriskField">*</span></legend>
-            <div><strong>Audio</strong>
-                <div class="form-check"><input aria-invalid="true" 
class="form-check-input is-invalid" id="id_checkbox_select_multiple_0_0"
-                        name="checkbox_select_multiple" type="checkbox" 
value="vinyl"><label class="form-check-label"
-                        
for="id_checkbox_select_multiple_0_0">Vinyl</label></div>
-                <div class="form-check"><input aria-invalid="true" 
class="form-check-input is-invalid" id="id_checkbox_select_multiple_0_1"
-                        name="checkbox_select_multiple" type="checkbox" 
value="cd"><label class="form-check-label"
-                        
for="id_checkbox_select_multiple_0_1">CD</label></div><strong>Video</strong>
-                <div class="form-check"><input aria-invalid="true" 
class="form-check-input is-invalid" id="id_checkbox_select_multiple_1_0"
-                        name="checkbox_select_multiple" type="checkbox" 
value="vhs"><label class="form-check-label"
-                        for="id_checkbox_select_multiple_1_0">VHS 
Tape</label></div>
-                <div class="form-check"><input aria-invalid="true" 
class="form-check-input is-invalid" id="id_checkbox_select_multiple_1_1"
-                        name="checkbox_select_multiple" type="checkbox" 
value="dvd"><label class="form-check-label"
-                        for="id_checkbox_select_multiple_1_1">DVD</label></div>
-                <div class="form-check"><input aria-invalid="true" 
class="form-check-input is-invalid" id="id_checkbox_select_multiple_2"
-                        name="checkbox_select_multiple" type="checkbox" 
value="unknown"><label class="form-check-label"
-                        for="id_checkbox_select_multiple_2">Unknown</label>
-                    <div id="id_checkbox_select_multiple_error" 
class="invalid-feedback">
-                    <p id="error_1_id_checkbox_select_multiple"><strong>This 
field is
-                            required.</strong></p>
-                    </div>
-                </div>
-            </div>
-            <div class="form-text" id="id_checkbox_select_multiple_helptext">
-                help
-            </div>
-        </fieldset>
-    </div>
-</form>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crispy-bootstrap5-2025.6/tests/results/test_grouped_checkboxes_lt52.html 
new/crispy-bootstrap5-2026.3/tests/results/test_grouped_checkboxes_lt52.html
--- 
old/crispy-bootstrap5-2025.6/tests/results/test_grouped_checkboxes_lt52.html    
    2025-06-08 09:38:56.000000000 +0200
+++ 
new/crispy-bootstrap5-2026.3/tests/results/test_grouped_checkboxes_lt52.html    
    1970-01-01 01:00:00.000000000 +0100
@@ -1,27 +0,0 @@
-<form method="post">
-    <div class="mb-3" id="div_id_checkbox_select_multiple">
-        <fieldset>
-            <legend class="form-label fs-6 requiredField">Checkbox select 
multiple<span class="asteriskField">*</span></legend>
-            <div><strong>Audio</strong>
-                <div class="form-check"><input class="form-check-input" 
id="id_checkbox_select_multiple_0_0"
-                        name="checkbox_select_multiple" type="checkbox" 
value="vinyl"><label class="form-check-label"
-                        
for="id_checkbox_select_multiple_0_0">Vinyl</label></div>
-                <div class="form-check"><input class="form-check-input" 
id="id_checkbox_select_multiple_0_1"
-                        name="checkbox_select_multiple" type="checkbox" 
value="cd"><label class="form-check-label"
-                        
for="id_checkbox_select_multiple_0_1">CD</label></div><strong>Video</strong>
-                <div class="form-check"><input class="form-check-input" 
id="id_checkbox_select_multiple_1_0"
-                        name="checkbox_select_multiple" type="checkbox" 
value="vhs"><label class="form-check-label"
-                        for="id_checkbox_select_multiple_1_0">VHS 
Tape</label></div>
-                <div class="form-check"><input class="form-check-input" 
id="id_checkbox_select_multiple_1_1"
-                        name="checkbox_select_multiple" type="checkbox" 
value="dvd"><label class="form-check-label"
-                        for="id_checkbox_select_multiple_1_1">DVD</label></div>
-                <div class="form-check"><input class="form-check-input" 
id="id_checkbox_select_multiple_2"
-                        name="checkbox_select_multiple" type="checkbox" 
value="unknown"><label class="form-check-label"
-                        
for="id_checkbox_select_multiple_2">Unknown</label></div>
-            </div>
-            <div class="form-text" id="id_checkbox_select_multiple_helptext">
-                help
-            </div>
-        </fieldset>
-    </div>
-</form>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crispy-bootstrap5-2025.6/tests/results/test_grouped_radios_failing_lt50.html
 
new/crispy-bootstrap5-2026.3/tests/results/test_grouped_radios_failing_lt50.html
--- 
old/crispy-bootstrap5-2025.6/tests/results/test_grouped_radios_failing_lt50.html
    2025-06-08 09:38:56.000000000 +0200
+++ 
new/crispy-bootstrap5-2026.3/tests/results/test_grouped_radios_failing_lt50.html
    1970-01-01 01:00:00.000000000 +0100
@@ -1,28 +0,0 @@
-<form method="post">
-    <div class="mb-3" id="div_id_radio">
-        <fieldset>
-            <legend class="form-label fs-6 requiredField">Radio<span 
class="asteriskField">*</span></legend>
-            <div><strong>Audio</strong>
-                    <div class="form-check"><input class="form-check-input 
is-invalid" id="id_radio_0_0"
-                                    name="radio" required type="radio" 
value="vinyl"><label class="form-check-label"
-                                    for="id_radio_0_0">Vinyl</label></div>
-                    <div class="form-check"><input class="form-check-input 
is-invalid" id="id_radio_0_1"
-                                    name="radio" required type="radio" 
value="cd"><label class="form-check-label"
-                                    
for="id_radio_0_1">CD</label></div><strong>Video</strong>
-                    <div class="form-check"><input class="form-check-input 
is-invalid" id="id_radio_1_0"
-                                    name="radio" required type="radio" 
value="vhs"><label class="form-check-label"
-                                    for="id_radio_1_0">VHS Tape</label></div>
-                    <div class="form-check"><input class="form-check-input 
is-invalid" id="id_radio_1_1"
-                                    name="radio" required type="radio" 
value="dvd"><label class="form-check-label"
-                                    for="id_radio_1_1">DVD</label></div>
-                    <div class="form-check"><input class="form-check-input 
is-invalid" id="id_radio_2" name="radio"
-                                    required type="radio" 
value="unknown"><label class="form-check-label"
-                                    for="id_radio_2">Unknown</label>
-                            <div id="id_radio_error" class="invalid-feedback">
-                                <p id="error_1_id_radio"><strong>This field is 
required.</strong></p>
-                            </div>
-                    </div>
-            </div>
-        </fieldset>
-    </div>
-</form>
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crispy-bootstrap5-2025.6/tests/results/test_grouped_radios_failing_lt52.html
 
new/crispy-bootstrap5-2026.3/tests/results/test_grouped_radios_failing_lt52.html
--- 
old/crispy-bootstrap5-2025.6/tests/results/test_grouped_radios_failing_lt52.html
    2025-06-08 09:38:56.000000000 +0200
+++ 
new/crispy-bootstrap5-2026.3/tests/results/test_grouped_radios_failing_lt52.html
    1970-01-01 01:00:00.000000000 +0100
@@ -1,28 +0,0 @@
-<form method="post">
-    <div class="mb-3" id="div_id_radio">
-        <fieldset>
-            <legend class="form-label fs-6 requiredField">Radio<span 
class="asteriskField">*</span></legend>
-            <div><strong>Audio</strong>
-                    <div class="form-check"><input aria-invalid="true" 
class="form-check-input is-invalid" id="id_radio_0_0"
-                                    name="radio" required type="radio" 
value="vinyl"><label class="form-check-label"
-                                    for="id_radio_0_0">Vinyl</label></div>
-                    <div class="form-check"><input aria-invalid="true" 
class="form-check-input is-invalid" id="id_radio_0_1"
-                                    name="radio" required type="radio" 
value="cd"><label class="form-check-label"
-                                    
for="id_radio_0_1">CD</label></div><strong>Video</strong>
-                    <div class="form-check"><input aria-invalid="true" 
class="form-check-input is-invalid" id="id_radio_1_0"
-                                    name="radio" required type="radio" 
value="vhs"><label class="form-check-label"
-                                    for="id_radio_1_0">VHS Tape</label></div>
-                    <div class="form-check"><input aria-invalid="true" 
class="form-check-input is-invalid" id="id_radio_1_1"
-                                    name="radio" required type="radio" 
value="dvd"><label class="form-check-label"
-                                    for="id_radio_1_1">DVD</label></div>
-                    <div class="form-check"><input aria-invalid="true" 
class="form-check-input is-invalid" id="id_radio_2" name="radio"
-                                    required type="radio" 
value="unknown"><label class="form-check-label"
-                                    for="id_radio_2">Unknown</label>
-                            <div id="id_radio_error" class="invalid-feedback">
-                                <p id="error_1_id_radio"><strong>This field is 
required.</strong></p>
-                            </div>
-                    </div>
-            </div>
-        </fieldset>
-    </div>
-</form>
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crispy-bootstrap5-2025.6/tests/results/test_multifield.html 
new/crispy-bootstrap5-2026.3/tests/results/test_multifield.html
--- old/crispy-bootstrap5-2025.6/tests/results/test_multifield.html     
1970-01-01 01:00:00.000000000 +0100
+++ new/crispy-bootstrap5-2026.3/tests/results/test_multifield.html     
2026-03-01 11:05:35.000000000 +0100
@@ -0,0 +1,16 @@
+<form method="post">
+    <div class="d-flex gap-2">
+        <div>
+            <div id="div_id_password1" class="mb-3">
+                <label for="id_password1" class="form-label 
requiredField">password<span class="asteriskField">*</span> </label>
+                <input type="password" name="password1" maxlength="30" 
class="passwordinput form-control" required id="id_password1">
+            </div>
+        </div>
+        <div>
+            <div id="div_id_password2" class="mb-3">
+                <label for="id_password2" class="form-label 
requiredField">re-enter password<span class="asteriskField">*</span></label>
+                <input type="password" name="password2" maxlength="30" 
class="passwordinput form-control" required id="id_password2">
+            </div>
+        </div>
+    </div>
+</form>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crispy-bootstrap5-2025.6/tests/results/test_prepended_appended_text_lt50.html
 
new/crispy-bootstrap5-2026.3/tests/results/test_prepended_appended_text_lt50.html
--- 
old/crispy-bootstrap5-2025.6/tests/results/test_prepended_appended_text_lt50.html
   2025-06-08 09:38:56.000000000 +0200
+++ 
new/crispy-bootstrap5-2026.3/tests/results/test_prepended_appended_text_lt50.html
   1970-01-01 01:00:00.000000000 +0100
@@ -1,26 +0,0 @@
-<form method="post">
-    <div class="mb-3" id="div_id_email"><label class="form-label 
requiredField" for="id_email">email<span
-                class="asteriskField">*</span></label>
-        <div>
-            <div class="input-group"><span 
class="input-group-text">@&lt;&gt;&amp;</span><input
-                    class="form-control form-control-lg inputtext textInput 
textinput" id="id_email" maxlength="30"
-                    name="email" required type="text"><span 
class="input-group-text">gmail.com</span></div><div
-                class="form-text" id="id_email_helptext">Insert your 
email</div>
-        </div>
-    </div>
-    <div class="mb-3" id="div_id_password1"><label class="form-label 
requiredField" for="id_password1">password<span
-                class="asteriskField">*</span></label>
-        <div>
-            <div class="input-group"><input class="form-control textInput 
textinput" id="id_password1" maxlength="30"
-                    name="password1" required type="password"><span 
class="input-group-text">#</span></div>
-        </div>
-    </div>
-    <div class="mb-3" id="div_id_password2"><label class="form-label 
requiredField" for="id_password2">re-enter
-            password<span class="asteriskField">*</span></label>
-        <div >
-            <div class="input-group"><span 
class="input-group-text">$</span><input
-                    class="form-control textInput textinput" id="id_password2" 
maxlength="30" name="password2" required
-                    type="password"></div>
-        </div>
-    </div>
-</form>
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crispy-bootstrap5-2025.6/tests/results/test_switch_horizontal_lt52.html 
new/crispy-bootstrap5-2026.3/tests/results/test_switch_horizontal_lt52.html
--- old/crispy-bootstrap5-2025.6/tests/results/test_switch_horizontal_lt52.html 
2025-06-08 09:38:56.000000000 +0200
+++ new/crispy-bootstrap5-2026.3/tests/results/test_switch_horizontal_lt52.html 
1970-01-01 01:00:00.000000000 +0100
@@ -1,13 +0,0 @@
-<form class="form-horizontal" method="post">
-    <div id="div_id_is_company" class="mb-3 form-check form-switch row">
-        <div class="offset-lg-2 col-lg-8">
-            <input type="checkbox" name="is_company" class="checkboxinput 
form-check-input" role="checkbox" id="id_is_company" />
-            <label for="id_is_company" class="form-check-label">company</label>
-            <div id="id_is_company_helptext" class="form-text">is_company help 
text</div>
-        </div>
-    </div>
-    <div id="div_id_first_name" class="mb-3 row">
-        <label for="id_first_name" class="col-form-label col-lg-2 pt-0 
requiredField">first name<span class="asteriskField">*</span> </label>
-        <div class="col-lg-8"><input type="text" name="first_name" 
maxlength="5" class="textinput textInput inputtext form-control" required 
id="id_first_name" /></div>
-    </div>
-</form>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crispy-bootstrap5-2025.6/tests/results/test_switch_lt52.html 
new/crispy-bootstrap5-2026.3/tests/results/test_switch_lt52.html
--- old/crispy-bootstrap5-2025.6/tests/results/test_switch_lt52.html    
2025-06-08 09:38:56.000000000 +0200
+++ new/crispy-bootstrap5-2026.3/tests/results/test_switch_lt52.html    
1970-01-01 01:00:00.000000000 +0100
@@ -1,9 +0,0 @@
-<form method="post">
-    <div id="div_id_is_company" class="mb-3 form-check form-switch">
-        <div class="">
-            <input type="checkbox" name="is_company" class="checkboxinput 
form-check-input" role="checkbox" id="id_is_company" />
-            <label for="id_is_company" class="form-check-label">company</label>
-            <div id="id_is_company_helptext" class="form-text">is_company help 
text</div>
-        </div>
-    </div>
-</form>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crispy-bootstrap5-2025.6/tests/results/test_tabular_formset_layout_failing_lt50.html
 
new/crispy-bootstrap5-2026.3/tests/results/test_tabular_formset_layout_failing_lt50.html
--- 
old/crispy-bootstrap5-2025.6/tests/results/test_tabular_formset_layout_failing_lt50.html
    2025-06-08 09:38:56.000000000 +0200
+++ 
new/crispy-bootstrap5-2026.3/tests/results/test_tabular_formset_layout_failing_lt50.html
    1970-01-01 01:00:00.000000000 +0100
@@ -1,85 +0,0 @@
-<form method="post">
-    <div><input id="id_form-TOTAL_FORMS" name="form-TOTAL_FORMS" type="hidden" 
value="1"><input
-            id="id_form-INITIAL_FORMS" name="form-INITIAL_FORMS" type="hidden" 
value="0"><input
-            id="id_form-MIN_NUM_FORMS" name="form-MIN_NUM_FORMS" 
type="hidden"><input id="id_form-MAX_NUM_FORMS"
-            name="form-MAX_NUM_FORMS" type="hidden"></div>
-    <table class="table table-sm table-striped">
-        <thead>
-            <tr>
-                <th class="" for="id_form-0-is_company">company</th>
-                <th class="requiredField" for="id_form-0-email">email<span 
class="asteriskField">*</span>
-                </th>
-                <th class="requiredField" 
for="id_form-0-password1">password<span
-                        class="asteriskField">*</span></th>
-                <th class="requiredField" for="id_form-0-password2">re-enter 
password<span
-                        class="asteriskField">*</span></th>
-                <th class="requiredField" for="id_form-0-first_name">first 
name<span
-                        class="asteriskField">*</span></th>
-                <th class="requiredField" for="id_form-0-last_name">last 
name<span
-                        class="asteriskField">*</span></th>
-                <th class="requiredField" for="id_form-0-datetime_field">date 
time<span
-                        class="asteriskField">*</span></th>
-            </tr>
-        </thead>
-        <tbody>
-            <tr class="d-none empty-form">
-                <td class="mb-3" id="div_id_form-__prefix__-is_company"><input
-                        class="checkboxinput form-check-input" 
id="id_form-__prefix__-is_company"
-                        name="form-__prefix__-is_company" type="checkbox"></td>
-                <td class="mb-3" id="div_id_form-__prefix__-email"><input
-                        class="form-control inputtext textInput textinput" 
id="id_form-__prefix__-email" maxlength="30"
-                        name="form-__prefix__-email" type="text"><div 
class="form-text"
-                        id="id_form-__prefix__-email_helptext">Insert your 
email</div></td>
-                <td class="mb-3" id="div_id_form-__prefix__-password1"><input 
class="form-control textInput textinput"
-                        id="id_form-__prefix__-password1" maxlength="30" 
name="form-__prefix__-password1"
-                        type="password"></td>
-                <td class="mb-3" id="div_id_form-__prefix__-password2"><input 
class="form-control textInput textinput"
-                        id="id_form-__prefix__-password2" maxlength="30" 
name="form-__prefix__-password2"
-                        type="password"></td>
-                <td class="mb-3" id="div_id_form-__prefix__-first_name"><input
-                        class="form-control inputtext textInput textinput" 
id="id_form-__prefix__-first_name"
-                        maxlength="5" name="form-__prefix__-first_name" 
type="text"></td>
-                <td class="mb-3" id="div_id_form-__prefix__-last_name"><input
-                        class="form-control inputtext textInput textinput" 
id="id_form-__prefix__-last_name"
-                        maxlength="5" name="form-__prefix__-last_name" 
type="text"></td>
-                <td class="mb-3" 
id="div_id_form-__prefix__-datetime_field"><input class="dateinput form-control"
-                        id="id_form-__prefix__-datetime_field_0" 
name="form-__prefix__-datetime_field_0"
-                        type="text"><input class="form-control timeinput" 
id="id_form-__prefix__-datetime_field_1"
-                        name="form-__prefix__-datetime_field_1" 
type="text"></td>
-            </tr>
-            <div class="alert alert-block alert-danger">
-                <ul class="m-0">
-                    <li>Passwords dont match</li>
-                </ul>
-            </div>
-            <tr>
-                <td class="mb-3" id="div_id_form-0-is_company"><input 
class="checkboxinput form-check-input"
-                        id="id_form-0-is_company" name="form-0-is_company" 
type="checkbox"></td>
-                <td class="mb-3" id="div_id_form-0-email"><input
-                        class="form-control inputtext is-invalid textInput 
textinput" id="id_form-0-email"
-                        maxlength="30" name="form-0-email" type="text"><div 
id="id_form-0-email_error" class="invalid-feedback">
-                        <span id="error_1_id_form-0-email"><strong>This field 
is required.</strong></span></div>
-                        <div class="form-text" 
id="id_form-0-email_helptext">Insert your email</div></td>
-                <td class="mb-3" id="div_id_form-0-password1"><input 
class="form-control is-invalid textInput textinput"
-                        id="id_form-0-password1" maxlength="30" 
name="form-0-password1" type="password"><div id="id_form-0-password1_error" 
class="invalid-feedback" ><span
-                        id="error_1_id_form-0-password1"><strong>This field is 
required.</strong></span></div></td>
-                <td class="mb-3" id="div_id_form-0-password2"><input 
class="form-control is-invalid textInput textinput"
-                        id="id_form-0-password2" maxlength="30" 
name="form-0-password2" type="password"><div id="id_form-0-password2_error" 
class="invalid-feedback">
-                        <span id="error_1_id_form-0-password2"><strong>This 
field is required.</strong></span></div></td>
-                <td class="mb-3" id="div_id_form-0-first_name"><input
-                        class="form-control inputtext is-invalid textInput 
textinput" id="id_form-0-first_name"
-                        maxlength="5" name="form-0-first_name" 
type="text"><div id="id_form-0-first_name_error" class="invalid-feedback"><span
-                        id="error_1_id_form-0-first_name"><strong>This field 
is required.</strong></span></div></td>
-                <td class="mb-3" id="div_id_form-0-last_name"><input
-                        class="form-control inputtext is-invalid textInput 
textinput" id="id_form-0-last_name"
-                        maxlength="5" name="form-0-last_name" type="text"><div 
id="id_form-0-last_name_error" class="invalid-feedback">
-                    <span id="error_1_id_form-0-last_name"><strong>This field 
is required.</strong></span></div></td>
-                <td class="mb-3" id="div_id_form-0-datetime_field"><input 
class="dateinput form-control is-invalid"
-                        id="id_form-0-datetime_field_0" 
name="form-0-datetime_field_0" type="text"><input
-                        class="form-control is-invalid timeinput" 
id="id_form-0-datetime_field_1"
-                        name="form-0-datetime_field_1" type="text"><div 
id="id_form-0-datetime_field_error" class="invalid-feedback"><span
-                        id="error_1_id_form-0-datetime_field"><strong>This 
field is required.</strong></span></div></td>
-            </tr>
-        </tbody>
-    </table>
-</form>
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crispy-bootstrap5-2025.6/tests/results/test_tabular_formset_layout_failing_lt52.html
 
new/crispy-bootstrap5-2026.3/tests/results/test_tabular_formset_layout_failing_lt52.html
--- 
old/crispy-bootstrap5-2025.6/tests/results/test_tabular_formset_layout_failing_lt52.html
    2025-06-08 09:38:56.000000000 +0200
+++ 
new/crispy-bootstrap5-2026.3/tests/results/test_tabular_formset_layout_failing_lt52.html
    1970-01-01 01:00:00.000000000 +0100
@@ -1,87 +0,0 @@
-<form method="post">
-    <div><input id="id_form-TOTAL_FORMS" name="form-TOTAL_FORMS" type="hidden" 
value="1"><input
-            id="id_form-INITIAL_FORMS" name="form-INITIAL_FORMS" type="hidden" 
value="0"><input
-            id="id_form-MIN_NUM_FORMS" name="form-MIN_NUM_FORMS" 
type="hidden"><input id="id_form-MAX_NUM_FORMS"
-            name="form-MAX_NUM_FORMS" type="hidden"></div>
-    <table class="table table-sm table-striped">
-        <thead>
-            <tr>
-                <th class="" for="id_form-0-is_company">company</th>
-                <th class="requiredField" for="id_form-0-email">email<span 
class="asteriskField">*</span>
-                </th>
-                <th class="requiredField" 
for="id_form-0-password1">password<span
-                        class="asteriskField">*</span></th>
-                <th class="requiredField" for="id_form-0-password2">re-enter 
password<span
-                        class="asteriskField">*</span></th>
-                <th class="requiredField" for="id_form-0-first_name">first 
name<span
-                        class="asteriskField">*</span></th>
-                <th class="requiredField" for="id_form-0-last_name">last 
name<span
-                        class="asteriskField">*</span></th>
-                <th class="requiredField" for="id_form-0-datetime_field">date 
time<span
-                        class="asteriskField">*</span></th>
-            </tr>
-        </thead>
-        <tbody>
-            <tr class="d-none empty-form">
-                <td class="mb-3" id="div_id_form-__prefix__-is_company"><input
-                        class="checkboxinput form-check-input" 
id="id_form-__prefix__-is_company"
-                        name="form-__prefix__-is_company" type="checkbox"></td>
-                <td class="mb-3" id="div_id_form-__prefix__-email"><input
-                        class="form-control inputtext textInput textinput" 
id="id_form-__prefix__-email" maxlength="30"
-                        name="form-__prefix__-email" type="text" 
aria-describedby="id_form-__prefix__-email_helptext">
-                        <div class="form-text" 
id="id_form-__prefix__-email_helptext">Insert your email</div></td>
-                <td class="mb-3" id="div_id_form-__prefix__-password1"><input 
class="form-control textInput textinput"
-                        id="id_form-__prefix__-password1" maxlength="30" 
name="form-__prefix__-password1"
-                        type="password"></td>
-                <td class="mb-3" id="div_id_form-__prefix__-password2"><input 
class="form-control textInput textinput"
-                        id="id_form-__prefix__-password2" maxlength="30" 
name="form-__prefix__-password2"
-                        type="password"></td>
-                <td class="mb-3" id="div_id_form-__prefix__-first_name"><input
-                        class="form-control inputtext textInput textinput" 
id="id_form-__prefix__-first_name"
-                        maxlength="5" name="form-__prefix__-first_name" 
type="text"></td>
-                <td class="mb-3" id="div_id_form-__prefix__-last_name"><input
-                        class="form-control inputtext textInput textinput" 
id="id_form-__prefix__-last_name"
-                        maxlength="5" name="form-__prefix__-last_name" 
type="text"></td>
-                <td class="mb-3" 
id="div_id_form-__prefix__-datetime_field"><input class="dateinput form-control"
-                        id="id_form-__prefix__-datetime_field_0" 
name="form-__prefix__-datetime_field_0"
-                        type="text"><input class="form-control timeinput" 
id="id_form-__prefix__-datetime_field_1"
-                        name="form-__prefix__-datetime_field_1" 
type="text"></td>
-            </tr>
-            <div class="alert alert-block alert-danger">
-                <ul class="m-0">
-                    <li>Passwords dont match</li>
-                </ul>
-            </div>
-            <tr>
-                <td class="mb-3" id="div_id_form-0-is_company"><input 
class="checkboxinput form-check-input"
-                        id="id_form-0-is_company" name="form-0-is_company" 
type="checkbox"></td>
-                <td class="mb-3" id="div_id_form-0-email"><input 
aria-describedby="id_form-0-email_helptext"
-                        class="form-control inputtext is-invalid textInput 
textinput" id="id_form-0-email" aria-invalid="true"
-                        maxlength="30" name="form-0-email" type="text"><div 
id="id_form-0-email_error" class="invalid-feedback">
-                        <span id="error_1_id_form-0-email"><strong>This field 
is required.</strong></span></div><div
-                        class="form-text" id="id_form-0-email_helptext">Insert 
your email</div></td>
-                <td class="mb-3" id="div_id_form-0-password1"><input 
class="form-control is-invalid textInput textinput"
-                        id="id_form-0-password1" maxlength="30" 
name="form-0-password1" type="password" aria-invalid="true">
-                        <div id="id_form-0-password1_error" 
class="invalid-feedback"><span id="error_1_id_form-0-password1">
-                        <strong>This field is 
required.</strong></span></div></td>
-                <td class="mb-3" id="div_id_form-0-password2"><input 
class="form-control is-invalid textInput textinput"
-                        id="id_form-0-password2" maxlength="30" 
name="form-0-password2" type="password" aria-invalid="true"><div 
id="id_form-0-password2_error" class="invalid-feedback">
-                    <span id="error_1_id_form-0-password2"><strong>This field 
is required.</strong></span></div></td>
-                <td class="mb-3" id="div_id_form-0-first_name"><input
-                        class="form-control inputtext is-invalid textInput 
textinput" id="id_form-0-first_name"
-                        maxlength="5" name="form-0-first_name" type="text" 
aria-invalid="true"><div id="id_form-0-first_name_error" 
class="invalid-feedback" >
-                    <span id="error_1_id_form-0-first_name"><strong>This field 
is required.</strong></span></div></td>
-                <td class="mb-3" id="div_id_form-0-last_name"><input
-                        class="form-control inputtext is-invalid textInput 
textinput" id="id_form-0-last_name"
-                        maxlength="5" name="form-0-last_name" type="text" 
aria-invalid="true"><div id="id_form-0-last_name_error" 
class="invalid-feedback" >
-                        <span id="error_1_id_form-0-last_name"><strong>This 
field is required.</strong></span></div></td>
-                <td class="mb-3" id="div_id_form-0-datetime_field"><input 
class="dateinput form-control is-invalid"
-                        id="id_form-0-datetime_field_0" 
name="form-0-datetime_field_0" type="text" aria-invalid="true"><input
-                        class="form-control is-invalid timeinput" 
id="id_form-0-datetime_field_1"
-                        name="form-0-datetime_field_1" type="text" 
aria-invalid="true"><div id="id_form-0-datetime_field_error" 
class="invalid-feedback" >
-                        <span 
id="error_1_id_form-0-datetime_field"><strong>This field is required.</strong>
-                        </span></div></td>
-            </tr>
-        </tbody>
-    </table>
-</form>
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crispy-bootstrap5-2025.6/tests/results/test_tabular_formset_layout_lt50.html
 
new/crispy-bootstrap5-2026.3/tests/results/test_tabular_formset_layout_lt50.html
--- 
old/crispy-bootstrap5-2025.6/tests/results/test_tabular_formset_layout_lt50.html
    2025-06-08 09:38:56.000000000 +0200
+++ 
new/crispy-bootstrap5-2026.3/tests/results/test_tabular_formset_layout_lt50.html
    1970-01-01 01:00:00.000000000 +0100
@@ -1,103 +0,0 @@
-<form method="post">
-<div> <input type="hidden" name="form-TOTAL_FORMS" value="3" 
id="id_form-TOTAL_FORMS"> <input type="hidden"
-    name="form-INITIAL_FORMS" value="0" id="id_form-INITIAL_FORMS"> <input 
type="hidden" name="form-MIN_NUM_FORMS"
-    value="0" id="id_form-MIN_NUM_FORMS"> <input type="hidden" 
name="form-MAX_NUM_FORMS" value="1000"
-    id="id_form-MAX_NUM_FORMS"> </div>
-<table class="table table-striped table-sm">
-    <thead>
-    <tr>
-        <th for="id_form-0-is_company" class=""> company </th>
-        <th for="id_form-0-email" class="requiredField"> email<span 
class="asteriskField">*</span>
-        </th>
-        <th for="id_form-0-password1" class="requiredField"> password<span
-            class="asteriskField">*</span> </th>
-        <th for="id_form-0-password2" class="requiredField"> re-enter 
password<span
-            class="asteriskField">*</span> </th>
-        <th for="id_form-0-first_name" class="requiredField"> first name<span
-            class="asteriskField">*</span> </th>
-        <th for="id_form-0-last_name" class="requiredField"> last name<span
-            class="asteriskField">*</span> </th>
-        <th for="id_form-0-datetime_field" class="requiredField"> date 
time<span
-            class="asteriskField">*</span> </th>
-    </tr>
-    </thead>
-    <tbody>
-    <tr class="d-none empty-form">
-        <td id="div_id_form-__prefix__-is_company" class="mb-3"> <input 
type="checkbox"
-            name="form-__prefix__-is_company" class="checkboxinput 
form-check-input"
-            id="id_form-__prefix__-is_company"> </td>
-        <td id="div_id_form-__prefix__-email" class="mb-3"> <input type="text" 
name="form-__prefix__-email"
-            maxlength="30" class="textinput textInput inputtext form-control" 
id="id_form-__prefix__-email"> <div
-            id="id_form-__prefix__-email_helptext" class="form-text">Insert 
your email</div> </td>
-        <td id="div_id_form-__prefix__-password1" class="mb-3"> <input 
type="password"
-            name="form-__prefix__-password1" maxlength="30" class="textinput 
textInput form-control"
-            id="id_form-__prefix__-password1"> </td>
-        <td id="div_id_form-__prefix__-password2" class="mb-3"> <input 
type="password"
-            name="form-__prefix__-password2" maxlength="30" class="textinput 
textInput form-control"
-            id="id_form-__prefix__-password2"> </td>
-        <td id="div_id_form-__prefix__-first_name" class="mb-3"> <input 
type="text" name="form-__prefix__-first_name"
-            maxlength="5" class="textinput textInput inputtext form-control" 
id="id_form-__prefix__-first_name"> </td>
-        <td id="div_id_form-__prefix__-last_name" class="mb-3"> <input 
type="text" name="form-__prefix__-last_name"
-            maxlength="5" class="textinput textInput inputtext form-control" 
id="id_form-__prefix__-last_name"> </td>
-        <td id="div_id_form-__prefix__-datetime_field" class="mb-3"> <input 
type="text"
-            name="form-__prefix__-datetime_field_0" class="dateinput 
form-control"
-            id="id_form-__prefix__-datetime_field_0"><input type="text" 
name="form-__prefix__-datetime_field_1"
-            class="timeinput form-control" 
id="id_form-__prefix__-datetime_field_1"> </td>
-    </tr>
-    <tr>
-        <td id="div_id_form-0-is_company" class="mb-3"> <input type="checkbox" 
name="form-0-is_company"
-            class="checkboxinput form-check-input" id="id_form-0-is_company"> 
</td>
-        <td id="div_id_form-0-email" class="mb-3"> <input type="text" 
name="form-0-email" maxlength="30"
-            class="textinput textInput inputtext form-control" 
id="id_form-0-email"> <div id="id_form-0-email_helptext"
-            class="form-text">Insert your email</div> </td>
-        <td id="div_id_form-0-password1" class="mb-3"> <input type="password" 
name="form-0-password1" maxlength="30"
-            class="textinput textInput form-control" id="id_form-0-password1"> 
</td>
-        <td id="div_id_form-0-password2" class="mb-3"> <input type="password" 
name="form-0-password2" maxlength="30"
-            class="textinput textInput form-control" id="id_form-0-password2"> 
</td>
-        <td id="div_id_form-0-first_name" class="mb-3"> <input type="text" 
name="form-0-first_name" maxlength="5"
-            class="textinput textInput inputtext form-control" 
id="id_form-0-first_name"> </td>
-        <td id="div_id_form-0-last_name" class="mb-3"> <input type="text" 
name="form-0-last_name" maxlength="5"
-            class="textinput textInput inputtext form-control" 
id="id_form-0-last_name"> </td>
-        <td id="div_id_form-0-datetime_field" class="mb-3"> <input type="text" 
name="form-0-datetime_field_0"
-            class="dateinput form-control" 
id="id_form-0-datetime_field_0"><input type="text"
-            name="form-0-datetime_field_1" class="timeinput form-control" 
id="id_form-0-datetime_field_1"> </td>
-    </tr>
-    <tr>
-        <td id="div_id_form-1-is_company" class="mb-3"> <input type="checkbox" 
name="form-1-is_company"
-            class="checkboxinput form-check-input" id="id_form-1-is_company"> 
</td>
-        <td id="div_id_form-1-email" class="mb-3"> <input type="text" 
name="form-1-email" maxlength="30"
-            class="textinput textInput inputtext form-control" 
id="id_form-1-email"> <div id="id_form-1-email_helptext"
-            class="form-text">Insert your email</div> </td>
-        <td id="div_id_form-1-password1" class="mb-3"> <input type="password" 
name="form-1-password1" maxlength="30"
-            class="textinput textInput form-control" id="id_form-1-password1"> 
</td>
-        <td id="div_id_form-1-password2" class="mb-3"> <input type="password" 
name="form-1-password2" maxlength="30"
-            class="textinput textInput form-control" id="id_form-1-password2"> 
</td>
-        <td id="div_id_form-1-first_name" class="mb-3"> <input type="text" 
name="form-1-first_name" maxlength="5"
-            class="textinput textInput inputtext form-control" 
id="id_form-1-first_name"> </td>
-        <td id="div_id_form-1-last_name" class="mb-3"> <input type="text" 
name="form-1-last_name" maxlength="5"
-            class="textinput textInput inputtext form-control" 
id="id_form-1-last_name"> </td>
-        <td id="div_id_form-1-datetime_field" class="mb-3"> <input type="text" 
name="form-1-datetime_field_0"
-            class="dateinput form-control" 
id="id_form-1-datetime_field_0"><input type="text"
-            name="form-1-datetime_field_1" class="timeinput form-control" 
id="id_form-1-datetime_field_1"> </td>
-    </tr>
-    <tr>
-        <td id="div_id_form-2-is_company" class="mb-3"> <input type="checkbox" 
name="form-2-is_company"
-            class="checkboxinput form-check-input" id="id_form-2-is_company"> 
</td>
-        <td id="div_id_form-2-email" class="mb-3"> <input type="text" 
name="form-2-email" maxlength="30"
-            class="textinput textInput inputtext form-control" 
id="id_form-2-email"> <div id="id_form-2-email_helptext"
-            class="form-text">Insert your email</div> </td>
-        <td id="div_id_form-2-password1" class="mb-3"> <input type="password" 
name="form-2-password1" maxlength="30"
-            class="textinput textInput form-control" id="id_form-2-password1"> 
</td>
-        <td id="div_id_form-2-password2" class="mb-3"> <input type="password" 
name="form-2-password2" maxlength="30"
-            class="textinput textInput form-control" id="id_form-2-password2"> 
</td>
-        <td id="div_id_form-2-first_name" class="mb-3"> <input type="text" 
name="form-2-first_name" maxlength="5"
-            class="textinput textInput inputtext form-control" 
id="id_form-2-first_name"> </td>
-        <td id="div_id_form-2-last_name" class="mb-3"> <input type="text" 
name="form-2-last_name" maxlength="5"
-            class="textinput textInput inputtext form-control" 
id="id_form-2-last_name"> </td>
-        <td id="div_id_form-2-datetime_field" class="mb-3"> <input type="text" 
name="form-2-datetime_field_0"
-            class="dateinput form-control" 
id="id_form-2-datetime_field_0"><input type="text"
-            name="form-2-datetime_field_1" class="timeinput form-control" 
id="id_form-2-datetime_field_1"> </td>
-    </tr>
-    </tbody>
-</table>
-</form>
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/crispy-bootstrap5-2025.6/tests/test_form_helper.py 
new/crispy-bootstrap5-2026.3/tests/test_form_helper.py
--- old/crispy-bootstrap5-2025.6/tests/test_form_helper.py      2025-06-08 
09:38:56.000000000 +0200
+++ new/crispy-bootstrap5-2026.3/tests/test_form_helper.py      2026-03-01 
11:05:35.000000000 +0100
@@ -121,10 +121,7 @@
     # Ensure those errors were rendered
     assert "<li>Passwords dont match</li>" in html
     assert str(_("This field is required.")) in html
-    if django.VERSION < (5, 2):
-        assert html.count("error") == 8
-    else:
-        assert html.count("error") == 12
+    assert html.count("error") == 12
 
     # Now we render without errors
     form.helper.form_show_errors = False
@@ -134,10 +131,7 @@
     # Ensure errors were not rendered
     assert "<li>Passwords dont match</li>" not in html
     assert str(_("This field is required.")) not in html
-    if django.VERSION < (5, 2):
-        assert html.count("error") == 0
-    else:
-        assert html.count("error") == 4
+    assert html.count("error") == 4
 
 
 def test_html5_required():
@@ -494,17 +488,11 @@
 
     form.helper.form_show_errors = True
     html = render_crispy_form(form)
-    if django.VERSION < (5, 2):
-        assert html.count("error") == 6
-    else:
-        assert html.count("error") == 9
+    assert html.count("error") == 9
 
     form.helper.form_show_errors = False
     html = render_crispy_form(form)
-    if django.VERSION < (5, 2):
-        assert html.count("error") == 0
-    else:
-        assert html.count("error") == 3
+    assert html.count("error") == 3
 
 
 def test_error_text_inline():
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/crispy-bootstrap5-2025.6/tests/test_layout.py 
new/crispy-bootstrap5-2026.3/tests/test_layout.py
--- old/crispy-bootstrap5-2025.6/tests/test_layout.py   2025-06-08 
09:38:56.000000000 +0200
+++ new/crispy-bootstrap5-2026.3/tests/test_layout.py   2026-03-01 
11:05:35.000000000 +0100
@@ -323,11 +323,7 @@
             ),
         )
     )
-    if django.VERSION < (5, 0):
-        expected = "field_with_buttons_lt50.html"
-    else:
-        expected = "field_with_buttons.html"
-    assert parse_form(form) == parse_expected(expected)
+    assert parse_form(form) == parse_expected("field_with_buttons.html")
 
     form = SampleForm3({})
     form.helper = FormHelper()
@@ -340,13 +336,7 @@
             ),
         )
     )
-    if django.VERSION < (5, 0):
-        expected = "field_with_buttons_failing_lt50.html"
-    elif django.VERSION < (5, 2):
-        expected = "field_with_buttons_failing_lt52.html"
-    else:
-        expected = "field_with_buttons_failing.html"
-    assert parse_form(form) == parse_expected(expected)
+    assert parse_form(form) == 
parse_expected("field_with_buttons_failing.html")
 
 
 def test_field_with_buttons_select():
@@ -559,11 +549,7 @@
     form.helper.field_template = "bootstrap5/layout/inline_field.html"
     form.helper.layout = Layout("email", "password1", "last_name")
     form.helper.form_class = "row row-cols-lg-auto"
-    if django.VERSION < (5, 0):
-        expected = "test_bootstrap5_form_inline_lt50.html"
-    else:
-        expected = "test_bootstrap5_form_inline.html"
-    assert parse_form(form) == parse_expected(expected)
+    assert parse_form(form) == 
parse_expected("test_bootstrap5_form_inline.html")
 
 
 def test_select():
@@ -617,23 +603,12 @@
     form.helper = FormHelper()
     form.helper.layout = Layout("clearable_file")
 
-    if django.VERSION < (5, 0):
-        expected = "test_clearable_file_field_failing_lt50.html"
-    elif django.VERSION < (5, 2):
-        expected = "test_clearable_file_field_failing_lt52.html"
-    else:
-        expected = "test_clearable_file_field_failing.html"
+    expected = "test_clearable_file_field_failing.html"
     assert parse_form(form) == parse_expected(expected)
 
     form.helper.layout = Layout("file_field")
 
-    if django.VERSION < (5, 0):
-        expected = "test_file_field_failing_lt50.html"
-    elif django.VERSION < (5, 2):
-        expected = "test_file_field_failing_lt52.html"
-    else:
-        expected = "test_file_field_failing.html"
-    assert parse_form(form) == parse_expected(expected)
+    assert parse_form(form) == parse_expected("test_file_field_failing.html")
 
 
 def test_row():
@@ -662,11 +637,7 @@
     formset = SampleFormSet()
     formset.helper = FormHelper()
     formset.helper.template = "bootstrap5/table_inline_formset.html"
-    if django.VERSION < (5, 0):
-        expected = "test_tabular_formset_layout_lt50.html"
-    else:
-        expected = "test_tabular_formset_layout.html"
-    assert parse_form(formset) == parse_expected(expected)
+    assert parse_form(formset) == 
parse_expected("test_tabular_formset_layout.html")
 
     SampleFormSet = formset_factory(SampleForm, extra=3)
     data = {
@@ -676,13 +647,7 @@
     formset = SampleFormSet(data)
     formset.helper = FormHelper()
     formset.helper.template = "bootstrap5/table_inline_formset.html"
-    if django.VERSION < (5, 0):
-        expected = "test_tabular_formset_layout_failing_lt50.html"
-    elif django.VERSION < (5, 2):
-        expected = "test_tabular_formset_layout_failing_lt52.html"
-    else:
-        expected = "test_tabular_formset_layout_failing.html"
-    assert parse_form(formset) == parse_expected(expected)
+    assert parse_form(formset) == 
parse_expected("test_tabular_formset_layout_failing.html")
 
 
 def test_flat_attrs_safe():
@@ -701,8 +666,4 @@
     form = HelpTextForm()
     form.helper = FormHelper()
     form.helper.form_tag = False
-    if django.VERSION < (5, 0):
-        expected = "help_text_escape_lt50.html"
-    else:
-        expected = "help_text_escape.html"
-    assert parse_form(form) == parse_expected(expected)
+    assert parse_form(form) == parse_expected("help_text_escape.html")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/crispy-bootstrap5-2025.6/tests/test_layout_objects.py 
new/crispy-bootstrap5-2026.3/tests/test_layout_objects.py
--- old/crispy-bootstrap5-2025.6/tests/test_layout_objects.py   2025-06-08 
09:38:56.000000000 +0200
+++ new/crispy-bootstrap5-2026.3/tests/test_layout_objects.py   2026-03-01 
11:05:35.000000000 +0100
@@ -20,7 +20,7 @@
     TabHolder,
 )
 from crispy_forms.helper import FormHelper
-from crispy_forms.layout import HTML, Field, Layout, MultiWidgetField
+from crispy_forms.layout import HTML, Field, Layout, MultiField, 
MultiWidgetField
 from crispy_forms.utils import render_crispy_form
 from django import forms
 from django.template import Context, Template
@@ -222,11 +222,7 @@
             AppendedText("password1", "#"),
             PrependedText("password2", "$"),
         )
-        if django.VERSION < (5, 0):
-            expected = "test_prepended_appended_text_lt50.html"
-        else:
-            expected = "test_prepended_appended_text.html"
-        assert parse_form(test_form) == parse_expected(expected)
+        assert parse_form(test_form) == 
parse_expected("test_prepended_appended_text.html")
 
     def test_inline_radios(self):
         form = CheckboxesSampleForm()
@@ -244,25 +240,13 @@
         form = CheckboxesSampleForm({})
         form.helper = FormHelper()
         form.helper.layout = Layout(InlineRadios("inline_radios"))
-        if django.VERSION < (5, 0):
-            expected = "inline_radios_failing_lt50.html"
-        elif django.VERSION < (5, 2):
-            expected = "inline_radios_failing_lt52.html"
-        else:
-            expected = "inline_radios_failing.html"
-        assert parse_form(form) == parse_expected(expected)
+        assert parse_form(form) == parse_expected("inline_radios_failing.html")
 
     def test_inline_checkboxes_failing(self):
         form = CheckboxesSampleForm({})
         form.helper = FormHelper()
         form.helper.layout = InlineRadios("checkboxes")
-        if django.VERSION < (5, 0):
-            expected = "inline_checkboxes_failing_lt50.html"
-        elif django.VERSION < (5, 2):
-            expected = "inline_checkboxes_failing_lt52.html"
-        else:
-            expected = "inline_checkboxes_failing.html"
-        assert parse_form(form) == parse_expected(expected)
+        assert parse_form(form) == 
parse_expected("inline_checkboxes_failing.html")
 
     @override_settings(CRISPY_CLASS_CONVERTERS=CONVERTERS)
     def test_accordion_and_accordiongroup(self):
@@ -542,6 +526,12 @@
         assert html.count('type="hidden"') == 5
         assert html.count("<label") == 0
 
+    def test_multifield(self):
+        test_form = SampleForm()
+        test_form.helper = FormHelper()
+        test_form.helper.layout = Layout(MultiField("", "password1", 
"password2"))
+        assert parse_form(test_form) == parse_expected("test_multifield.html")
+
     def test_multiplecheckboxes(self):
         test_form = CheckboxesSampleForm()
         html = render_crispy_form(test_form)
@@ -596,56 +586,30 @@
             FloatingField("text_area"),
             FloatingField("select_input"),
         )
-        if django.VERSION < (5, 0):
-            expected = "test_floating_field_failing_lt50.html"
-        elif django.VERSION < (5, 2):
-            expected = "test_floating_field_failing_lt52.html"
-        else:
-            expected = "test_floating_field_failing.html"
-        assert parse_form(form) == parse_expected(expected)
+        assert parse_form(form) == 
parse_expected("test_floating_field_failing.html")
 
     def test_grouped_checkboxes_radios(self):
         form = GroupedChoiceForm()
         form.helper = FormHelper()
         form.helper.layout = Layout("checkbox_select_multiple")
-        if django.VERSION < (5, 2):
-            expected = "test_grouped_checkboxes_lt52.html"
-        else:
-            expected = "test_grouped_checkboxes.html"
-        assert parse_form(form) == parse_expected(expected)
+        assert parse_form(form) == 
parse_expected("test_grouped_checkboxes.html")
         form.helper.layout = Layout("radio")
         assert parse_form(form) == parse_expected("test_grouped_radios.html")
 
         form = GroupedChoiceForm({})
         form.helper = FormHelper()
         form.helper.layout = Layout("checkbox_select_multiple")
-        if django.VERSION < (5, 0):
-            expected = "test_grouped_checkboxes_failing_lt50.html"
-        elif django.VERSION < (5, 2):
-            expected = "test_grouped_checkboxes_failing_lt52.html"
-        else:
-            expected = "test_grouped_checkboxes_failing.html"
-        assert parse_form(form) == parse_expected(expected)
+        assert parse_form(form) == 
parse_expected("test_grouped_checkboxes_failing.html")
 
         form.helper.layout = Layout("radio")
-        if django.VERSION < (5, 0):
-            expected = "test_grouped_radios_failing_lt50.html"
-        elif django.VERSION < (5, 2):
-            expected = "test_grouped_radios_failing_lt52.html"
-        else:
-            expected = "test_grouped_radios_failing.html"
-        assert parse_form(form) == parse_expected(expected)
+        assert parse_form(form) == 
parse_expected("test_grouped_radios_failing.html")
 
     def test_switch(self):
         form = SampleForm()
         form["is_company"].help_text = "is_company help text"
         form.helper = FormHelper()
         form.helper.layout = Layout(Switch("is_company"))
-        if django.VERSION < (5, 2):
-            expected = "test_switch_lt52.html"
-        else:
-            expected = "test_switch.html"
-        assert parse_form(form) == parse_expected(expected)
+        assert parse_form(form) == parse_expected("test_switch.html")
 
     def test_switch_horizontal(self):
         form = SampleForm()
@@ -655,11 +619,7 @@
         form.helper.field_class = "col-lg-8"
         form.helper.form_class = "form-horizontal"
         form.helper.layout = Layout(Switch("is_company"), "first_name")
-        if django.VERSION < (5, 2):
-            expected = "test_switch_horizontal_lt52.html"
-        else:
-            expected = "test_switch_horizontal.html"
-        assert parse_form(form) == parse_expected(expected)
+        assert parse_form(form) == 
parse_expected("test_switch_horizontal.html")
 
     def test_modal(self):
         test_form = SampleForm()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/crispy-bootstrap5-2025.6/tests/test_tags.py 
new/crispy-bootstrap5-2026.3/tests/test_tags.py
--- old/crispy-bootstrap5-2025.6/tests/test_tags.py     2025-06-08 
09:38:56.000000000 +0200
+++ new/crispy-bootstrap5-2026.3/tests/test_tags.py     2026-03-01 
11:05:35.000000000 +0100
@@ -94,10 +94,7 @@
     c = Context({"formset": formset})
     html = template.render(c)
     assert "errorMsg" in html or "alert" in html
-    if django.VERSION < (3, 2):
-        assert "<li>Please submit 1 or fewer forms.</li>" in html
-    else:
-        assert "<li>Please submit at most 1 form.</li>" in html
+    assert "<li>Please submit at most 1 form.</li>" in html
     assert "<h3>" not in html
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/crispy-bootstrap5-2025.6/tox.ini 
new/crispy-bootstrap5-2026.3/tox.ini
--- old/crispy-bootstrap5-2025.6/tox.ini        2025-06-08 09:38:56.000000000 
+0200
+++ new/crispy-bootstrap5-2026.3/tox.ini        2026-03-01 11:05:35.000000000 
+0100
@@ -1,21 +1,18 @@
 [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},
+    {py310,py311}-django{52}-crispy{-release,-latest},
+    {py312,py313,py314}-django{52,60,-latest}-crispy{-release,-latest},
     lint
 
 [testenv]
 package = wheel
 wheel_build_env = .pkg
 deps =
-    django42: django>=4.2a1,<5.0
-    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
-extras = test
+dependency_groups = test
 commands = python -W error::DeprecationWarning -W 
error::PendingDeprecationWarning -m pytest {posargs}
 
 [testenv:lint]
@@ -24,10 +21,7 @@
     black crispy_bootstrap5 --check
     isort crispy_bootstrap5 --check --dif
     flake8 crispy_bootstrap5
-deps =
-    black
-    flake8
-    isort
+dependency_groups = lint
 
 [flake8]
 max-line-length = 88

Reply via email to