Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 3 additions & 6 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,15 @@

## Unreleased

- Test on Python 3.15 (release candidate) against Django 6.1 and `main`. The job is non-blocking and 3.15 is not yet advertised as supported.
- Fail the CI gate when any job fails, not only the test matrix. A failing docs or packaging build could previously be merged.

## 26.3 (2026-09-21)

- Fix `{% buttons layout="horizontal" %}` emitting Bootstrap 3 markup: the label carried `control-label` instead of `col-form-label`, and the wrapper had no `row` for the `col-*` classes to divide, so the button did not line up with the fields above it (#895).
- **Breaking:** Fix invalid HTML in `RadioSelectButtonGroup`. Every option label carried the widget's own `id`, so a group of N options rendered N+1 identical `id` attributes and no label was associated with its input. Labels now carry `for` pointing at their own input and no `id` (#309).
- Fix `{% buttons layout="horizontal" %}` emitting Bootstrap 3 markup: the label carried `control-label` instead of `col-form-label`, and the wrapper had no `row` for the `col-*` classes to divide, so the button did not line up with the fields above it (#895).
- Fix `form_check_class` being ignored for single checkboxes; it was only applied to `RadioSelect` and `CheckboxSelectMultiple` (#290).
- Fix `show_label` and `label_class` being ignored for the label next to a checkbox. `show_label=False` and `show_label='sr-only'` now add `sr-only`, `show_label='skip'` omits the label, and `label_class` extends `form-check-label` instead of being dropped (#127).
- Fix `size` not being applied to the input group wrapper when a field has an addon, so `input-group-sm` and `input-group-lg` were missing and the addon rendered at the wrong height (#128).
- Add a system check that warns about keys in the `BOOTSTRAP4` setting that the package does not read, such as `base_url`, dropped in 0.0.8 (`bootstrap4.W001`, #883). Silence it with `SILENCED_SYSTEM_CHECKS` if you keep extra keys deliberately.
- Remove the `<7.0` upper bound on the `Django` dependency.
- Test on Python 3.15 (release candidate) against Django 6.1 and `main`. The job is non-blocking and 3.15 is not yet advertised as supported.
- Fail the CI gate when any job fails, not only the test matrix. A failing docs or packaging build could previously be merged.
- Add `just release-check` to list `src/` changes against changelog entries before a release.
- Fix stale Bootstrap 3 class names in the `bootstrap_field` docs: `error_css_class` defaults to `is-invalid` and `bound_css_class` to `is-valid`, and the label gets `col-form-label` in horizontal layout, not `control-label`.
- Document why bound forms, including GET filter forms, render `is-valid` on every field, and how to switch that off (#276).
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ license-files = ["LICENSE", "AUTHORS"]
name = "django-bootstrap4"
readme = "README.md"
requires-python = ">=3.10"
version = "26.3"
version = "26.2"

[project.urls]
Changelog = "https://github.com/zostera/django-bootstrap4/blob/main/CHANGELOG.md"
Expand Down
Loading