Fishwrap: Semantic Versioning Taxonomy
Fishwrap adheres to Semantic Versioning 2.0.0, using a MAJOR.MINOR.PATCH format (e.g., v1.2.3). This document defines what criteria trigger an increment in each part of the version number.
Format: vMAJOR.MINOR.PATCH
MAJOR Version: Breaking Changes & Significant Reworks
- When to increment:
- Incompatible API changes: If a core module’s (e.g.,
fetcher.py,editor.py,printer.py) public interface changes in a way that requires users to modify their code or configurations to continue using the engine. - Fundamental architectural shifts: A complete overhaul of how themes are loaded, how configuration is structured (e.g., abandoning
exec()forimportlibif it changes user interaction). - Major data model changes: If
articles_db.jsonschema changes in a non-backward-compatible way, requiring migration tools or data loss.
- Incompatible API changes: If a core module’s (e.g.,
- Reset: Increments
MAJORversion. ResetsMINORandPATCHto0.
MINOR Version: New Features & Non-Breaking Enhancements
- When to increment:
- New features: Adding a new module (e.g., a “Publisher” module), new policy types (e.g., a new
EDITORIAL_POLICIESrule type). - Backward-compatible API additions: Adding new functions or classes, or new optional parameters to existing functions, without breaking existing usage.
- Significant internal improvements: Major performance optimizations, extensive refactoring that doesn’t change external APIs but improves maintainability.
- New default theme: Shipping a new default theme (e.g., “Matrix Theme”) alongside “Basic”.
- New features: Adding a new module (e.g., a “Publisher” module), new policy types (e.g., a new
- Reset: Increments
MINORversion. ResetsPATCHto0.
PATCH Version: Backward-Compatible Bug Fixes & Minor Tweaks
- When to increment:
- Bug fixes: Correcting errors that cause crashes, incorrect behavior, or unexpected output.
- Minor improvements: Small performance tweaks, documentation corrections, build script fixes.
- Styling fixes: Adjustments to a default theme’s CSS that don’t introduce new features.
- Reset: Increments
PATCHversion. Does not resetMAJORorMINOR.
Pre-release and Build Metadata (Optional)
- Pre-release identifiers: Appended for unstable releases (e.g.,
v1.0.0-alpha.1,v1.0.0-beta,v1.0.0-rc.1). - Build metadata: Appended for specific build numbers or commit SHAs (e.g.,
v1.0.0+20251211.gitsha).