From f832cd8c2b3700f4b5a411d683e268b3dd25ea66 Mon Sep 17 00:00:00 2001 From: Francis Secada Date: Sat, 1 Aug 2026 20:47:46 -0400 Subject: [PATCH 1/2] chore(release): 0.3.1 (#67) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `Notification` accepting body content is a fix a real consumer needs now, not at the next feature release. RankedJobs uses the body form at all 17 of its `` call sites, so every notification in that application has been rendering an empty box since April. Patch, not minor: no new components and no new required props. The JinjaX signature only loosens and the cotton wrapper only gains a default, so every existing `message=` call site renders byte-identically to 0.3.0. No migration. Both version declarations move together — the agreement test added in #63 fails the build otherwise. Verified before tagging: 2386 passed / 20 skipped (unit + integration), 236 passed / 33 skipped (E2E chromium, both js modes), prek clean with both djLint trees, and the release workflow's own wheel guard run locally against `uv build --wheel` — 237 shipped templates and assets, all present. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01NhqNRBg83czKfr8L6FF5xf --- CHANGELOG.md | 12 ++++++++++++ pyproject.toml | 2 +- src/cf_ui/_version.py | 2 +- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5eb9ad5..6426db5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,18 @@ ## [Unreleased] +## [0.3.1] — 2026-08-01 + +A patch for one bug, shipped on its own because a real consumer needs it. +`Notification` discarded body content in every theme and both engines, and +RankedJobs — the only repo declaring cf-ui — uses the body form at all 17 of +its call sites. Every notification in that application had been rendering an +empty box since April. + +Nothing else changed. The JinjaX signature only loosens and the cotton wrapper +only gains a default, so every existing `message=` call site renders +byte-identically to 0.3.0. No migration. + ### Fixed — `Notification` silently discarded its body content (#65) - **Every theme, both engines, rendered the scalar `message` prop and nothing diff --git a/pyproject.toml b/pyproject.toml index 86cc27a..81e3754 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "cf-ui" -version = "0.3.0" +version = "0.3.1" description = "CSS framework UI kit for component-framework — Bulma, Bootstrap, Foundation, Fomantic, DaisyUI" readme = "README.md" requires-python = ">=3.11" diff --git a/src/cf_ui/_version.py b/src/cf_ui/_version.py index 493f741..260c070 100644 --- a/src/cf_ui/_version.py +++ b/src/cf_ui/_version.py @@ -1 +1 @@ -__version__ = "0.3.0" +__version__ = "0.3.1" From 9aeb4d0774edae664c7b756b237dd718af36cca3 Mon Sep 17 00:00:00 2001 From: Francis Secada Date: Sat, 1 Aug 2026 20:51:13 -0400 Subject: [PATCH 2/2] docs(changelog): justify 0.3.1 by the defect, not by a downstream consumer MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The 0.3.1 preamble named the one repo currently declaring cf-ui and used its call-site count as the reason to ship. Wrong register for a published changelog: it is meaningless to every other reader, it implies this package's release cadence is set by one application rather than by its own defects, and it pulls a second repo into a permanent public artifact for no benefit. The bug justifies the release on its own terms, and the stronger argument was already sitting there unused — it fails *silently* in django-cotton, so a caller cannot detect it from their own code or logs, and it predates 0.1.1. That is what makes it worth a release of its own, not how many call sites one consumer has. The impact analysis keeps its home in #65, where triage belongs. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01NhqNRBg83czKfr8L6FF5xf --- CHANGELOG.md | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6426db5..66bd37d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,11 +4,15 @@ ## [0.3.1] — 2026-08-01 -A patch for one bug, shipped on its own because a real consumer needs it. -`Notification` discarded body content in every theme and both engines, and -RankedJobs — the only repo declaring cf-ui — uses the body form at all 17 of -its call sites. Every notification in that application had been rendering an -empty box since April. +A patch for one bug, shipped on its own because of how it fails. `Notification` +discarded body content in every theme and both engines, and in django-cotton it +did so **silently** — no error, no warning, and a call site that reads +correctly. Anyone using the natural container form has been getting an empty +box, and nothing in their own code or logs would say so. This predates 0.1.1, +so every release to date is affected. + +Upgrade if you pass children to `` or ``. +If every call site passes `message=`, nothing changes for you. Nothing else changed. The JinjaX signature only loosens and the cotton wrapper only gains a default, so every existing `message=` call site renders