diff --git a/CHANGELOG.md b/CHANGELOG.md index 5aa4f02e..1f7cadc3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,15 +4,12 @@ - Fix a `template_name` set on a `RadioSelect`, `CheckboxSelectMultiple` or `ClearableFileInput` subclass being overwritten by this package's own widget template (#388). Widgets that still carry Django's default template are unaffected. - Accept a non-string URL value in `css_url`, `javascript_url` and `theme_url`, so a lazy `static()` value can be used directly instead of only inside the dict form (#616). Passing one raised `ValueError: dictionary update sequence element #0 has length 1; 2 is required`, because anything that was not a `str` was treated as a dict of attributes. The docs now cover serving Bootstrap from your own static files, which needs the URL resolved at render time so `ManifestStaticFilesStorage` can supply the hashed filename. -- 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.4 (2026-09-21) - +- Recognize `week`, `search` and `color` input-type widgets as form-control widgets, so `addon_before`/`addon_after` work on them, and warn instead of silently dropping addons on a widget that cannot have them (#743, #872). Floating labels stay unsupported for `color`, where Bootstrap sizes the swatch itself. - Add the documented `inline_field_class` setting to `BOOTSTRAP5_DEFAULTS`, where it was missing. Its effective default is unchanged. - Support `addon_before`/`addon_after` on fields with `layout="floating"` (#866). The `form-floating` element is now nested inside the `input-group`, as Bootstrap's floating-label input-group markup requires, instead of the two being alternatives. This removes the warning added in 26.3 (#833), which existed because the combination was unsupported. -- Recognize `week`, `search` and `color` input-type widgets as form-control widgets, so `addon_before`/`addon_after` work on them, and warn instead of silently dropping addons on a widget that cannot have them (#743, #872). Floating labels stay unsupported for `color`, where Bootstrap sizes the swatch itself. - Add a system check that warns about keys in the `BOOTSTRAP5` setting that the package does not read, such as a setting removed in an earlier release or one carried over from django-bootstrap3 or django-bootstrap4 (`django_bootstrap5.W001`, #867). Silence it with `SILENCED_SYSTEM_CHECKS` if you keep extra keys deliberately. +- 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. - Drop a duplicate `coverage[toml]` entry from the `test` dependency group and sort it alphabetically. - Add `just release-check` to list `src/` changes against changelog entries before a release. - Fix the release process in MAINTAINING.md: the version bump goes through a PR, not a direct push to protected `main`. diff --git a/pyproject.toml b/pyproject.toml index d7b0d9af..9fc027be 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -32,7 +32,7 @@ license-files = ["LICENSE", "AUTHORS"] name = "django-bootstrap5" readme = "README.md" requires-python = ">=3.10" -version = "26.4" +version = "26.3" [project.optional-dependencies] jinja = ["Jinja2>=3.0,<4"] diff --git a/uv.lock b/uv.lock index b0b0c284..7b3a0834 100644 --- a/uv.lock +++ b/uv.lock @@ -1,5 +1,5 @@ version = 1 -revision = 3 +revision = 5 requires-python = ">=3.10" resolution-markers = [ "python_full_version >= '3.12'", @@ -289,7 +289,7 @@ wheels = [ [[package]] name = "django-bootstrap5" -version = "26.4" +version = "26.3" source = { editable = "." } dependencies = [ { name = "django" },