Changelog¶
All notable changes to this project will be documented in this file.
v0.5.0 (2026-04-02) Streaming Engine & Backup Directories
Added
Streaming Parser: Changed the internal engine to process files one by one. This shows progress immediately instead of waiting for the whole list.
Performance Tracking: The final summary now shows the total runtime in seconds.
Dynamic Backup Directories: Added the
--backup-diroption. You can use keywords like@auto@or@datetime@to create timestamped folders.Responsive Scroll Offsets: Updated the CSS to handle fixed headers. Links now scroll to the correct position on all screen sizes.
Fixed
Property Logic: Fixed the
@property.settersyntax to prevent “missing argument” errors in IDEs.Time Calculation: Now uses
total_seconds()to ensure correct time reports even for very long processes.Exception Documentation: Updated the hierarchy to list errors from specific to general in the documentation.
Changed
Core Error Model:
FtwProtocolErrornow inherits fromTypeErrorfor better system integration.
v0.4.0 (2026-03-26) Advanced Verbosity & Documentation Automation
Added
Granular Verbosity Control: Added support for verbosity levels 0–6 in
PatchStatistics, allowing users to toggle between silent operation and extreme debug-level detail.- Sphinx Documentation Suite:
Integrated
VerbosityTableDirectiveto automatically generate synchronized verbosity level tables from the source code.Added
:ftwoption:custom role for semantic linking and consistent styling of CLI parameters.Implemented
inject_option_anchorsto provide automated HTML anchors for all configuration options.
Build Safety: Introduced a
guard-mastercheck in theMakefileto prevent accidental direct pushes to protected branches.
Fixed
Windows Compatibility: Forced POSIX-style forward slashes in
PatchStatisticsoutput by strictly using.as_posix(), resolving string mismatch failures in doctests on Windows runners.Documentation Layout: Refined CSS for improved link visibility and better code block contrast in the HTML documentation.
Changed
Output Refactoring: Optimized the statistics engine to handle high-verbosity data collection without performance overhead in standard modes.
v0.3.2 (2026-03-20) Core Robustness & Statistics
Added
Patch Statistics: Introduced a metrics engine to track file operations (Created, Modified, Deleted) and line-level changes (added/deleted lines) during the patch process.
Fixed
Null-Path Resolution: Resolved a critical
FileNotFoundErrorby strictly using theis_null_pathproperty to identify source or target “nothingness” (e.g.,/dev/null).Staging Area Safety: Improved temporary file creation to prevent the engine from attempting to create OS-invalid paths during file creation or deletion.
Backup Logic: The backup mechanism now intelligently skips non-existent files when a patch creates a new file, preventing crashes in the pre-patch phase.
v0.3.1 (2026-03-08) Documentation Overhaul
Added
New Visual Identity: Migrated to the Nefertiti theme for a modern, responsive HTML documentation.
Dynamic EPUB Covers: Implemented automated generation of SVG covers that dynamically embed the current version from SCM.
- Typography Enhancements:
Integrated Fira Sans and Fira Code for better readability across all formats.
Added semantic roles for consistent styling of person names and configuration options.
Changed
Build Optimization: Improved EPUB build process by automatically filtering unnecessary font formats (WOFF2) to reduce file size.
Unified Versioning: Versions are now automatically synchronized between the core engine and documentation.
v0.3.0 (2026-01-11) Initial Public Release.
Added
Core Engine: Robust patching logic with full Unicode support.
Normalization: Added filters for non-leading whitespace and blank line variations.
Configuration: Support for
pyproject.toml[tool.ftwpatch] and custom.tomlconfig files.CLI: Command-line tool
ftwpatchwith dry-run and backup functionality.CI/CD: Automated testing and deployment infrastructure via GitHub Actions.
Documentation: Complete user manual and developer guide.
Fixed
Internal handling of mixed line endings during the patch process.