Skip to content

Fullbleed 2.6.0a5: rich component tables and authored showcases

Pre-release
Pre-release

Choose a tag to compare

@krflol krflol released this 18 Oct 07:17
· 142 commits to master since this release

Alpha 5 fixes overlapping content tags when rich components appear inside table cells and brings the stable inline-spacing correction to the component API. Paragraphs, emphasis, lists, figures and nested tables keep their content ownership within TH/TD cells.

Author documents with reusable Python components, typed table columns, root styles, named parts and static Bootstrap 5.0.0 components. Export documents or fragments with to_html(include_styles=True) or to_html(include_styles=False). The API remains experimental under fullbleed.ui.experimental.

python -m pip install --pre "fullbleed==2.6.0a5"
fullbleed new remote component-showcase my-documents --version 0.1.1
cd my-documents
python examples/design_showcase/preview.py

Three editable examples show the authoring paths:

  • Bootstrap starter: a first order document, a designed report and 27 static catalog specimens. The styling guide explains literal class_name rules, reusable defaults and named parts.
  • Northstar and Common Ground: matching HTML/CSS and component designs, shared data, styled/unstyled HTML, and an editing preview with PDF downloads. All four pages match in native and independent PDFium rendering. Invoice PDF bytes match; the report retains different SVG graphics-state scopes. Compare both sources and outputs.
  • Authored accessible guide: a two-page community guide with reusable program cards, a captioned schedule, image description and responsive HTML. Its program cells now contain Strong(...) components. The exact saved PDF passes veraPDF 1.30.3's PDF/UA-1 machine checks: 106 rules, 5,512 checks, zero failures and zero warnings. Read the guide and validation scope.

The 180 native and 208 component table checks pass across the tested rendering/export paths. Public alpha 4 fails 135 native and 156 component controls; the failed PDFs are retained. External checks on 76 PDFs reduce 380 diagnostic warnings to zero while preserving the existing profile failures. Compared table paint, text, headers and image alternatives remain unchanged.

Local qualification passes all 929 Python tests without skips, 1,421 native tests and 11 doctests. Final source CI passes on Windows and Linux. Python 3.15.0rc3 passes 928 tests per platform with one pre-existing skip because _xxsubinterpreters is unavailable; this does not establish 3.15 subinterpreter support.

The final independent corpus retains 1,620 passes, 24 failures and 18 disputed references, with a failed workflow conclusion. All 5,489 output files and all logged verdicts/scores match alpha 4. Against stable 2.5.31, only two one-pixel table edges change, now matching the reference.

The exact-tag release passed. All 15 public PyPI wheels and the source archive match the qualified artifacts, and a fresh public installation passes the installed-runtime, source-kit, table and line-height checks. The final source ZIPs run on Windows and Linux; all 110 saved kit PDFs match the reviewed outputs. Website deployment and real desktop/mobile browser downloads pass. Template version 0.1.1 works through the CLI's default registry, with eight local installs and 32 CI installs across Windows/Linux and Python 3.10/3.14. Ordinary pip installation still selects stable 2.5.31.

Saved outputs, negative controls and the original reports are available in the source qualification bundle, public package evidence, website and CLI delivery evidence, complete corpus artifact, release verification record and checksums.

Bootstrap components remain static in PDF and HTML, with no Bootstrap JavaScript. PDF/UA-2 caption-containment failures and oversized-row column-consistency failures remain; the oversized stress fixture also retains an orphaned caption page. The accessible guide's machine validation is specific to that PDF, and no human assistive-technology test is recorded. Dedicated PDF/VT validation remains unconfigured.

Previous downloads and template version 0.1.0 retain their original archives and runtime pins. This opt-in Python prerelease does not replace stable 2.5.31 or publish a Rust alpha crate.

The deployment's first attempt retained an existing Streamlit test's one-second ready-page timeout. Its captured page contains the expected button, and the identical source tree/browser versions passed before the merge. A single targeted retry passed with unchanged assertions and source; the original failure and retry evidence are included in the delivery archive.