Fishwrap Release Notes
This document chronicles the notable changes across versions of the Fishwrap engine.
v1.0.0 (2025-12-11)
Summary
Initial major release of the refactored Fishwrap engine. This version introduces a clear architectural separation between the core engine, a standalone demo implementation, and product-specific instances (like The Daily Clamour). It includes a robust theming system, configurable pipelines, and improved documentation for developers and users.
Features
- Architectural Separation: Implemented a clean separation between the
fishwrap/fishwrapengine,demo/(reference implementation), anddaily_clamour/(product instance). - Configurable Engine: Introduced dynamic configuration loading via
FISHWRAP_CONFIGenvironment variable, allowing external Python files to customize pipeline settings. - Modular Theming System: Themes (
basic,vintage) are now externalized from the core rendering logic and loaded dynamically. - Static Asset Pipeline: Static assets (images, textures) are automatically copied from the active theme’s directory to the output directory during printing.
- Enhanced Demo (
demo/): A fully functional, unbranded demo newspaper, complete with diverse feeds, debug functionality, and a dedicatedREADME.md. - Granular Cleanup: Added
make clean-demoandmake clean-clamourtargets for specific artifact removal.
Enhancements
- Improved Documentation: Revamped Root, Engine, and Demo READMEs for clarity, user-friendliness, and architectural overview.
- Newsroom Metaphor: Root README architecture explanation now uses a more engaging newsroom metaphor.
- Responsive Styling: Refined mobile responsiveness for the “Vintage” theme (2-column layout on tablets).
- Polished Basic Theme: Added sticky sidebar, debug toggle, and a generic SVG logo to the “Basic” theme.
- Makefile Streamlining: Cleaned up Makefile with explicit
run-clamourandrun-vanillatargets.
Bug Fixes
- Corrected
Makefilesyntax error (run-fishwrapduplication). - Restored
MIN_SECTION_SCORESto_config.pyin the default config. - Fixed recursive config loading issue in
demo/config.py.
Architecture
- Clean Engine:
fishwrap/fishwrap/_config.pynow serves as an empty schema/loader, with all specific settings moved to instance configurations. - Isolated Data/Output:
demo/anddaily_clamour/now manage their own data (.json) and output (.html,.pdf) files. - Git Hygiene: Untracked generated files, added
.gitkeep, and cleaned up extraneous artifacts.