v0.24.0
Release Notes v0.24.0
Overview
This release introduces significant architectural improvements, extensive new testing capabilities, and enhanced visual document comparison features. This version represents a major step forward in the library's robustness and maintainability.
🔧 Major Architectural Changes
Library Refactoring for Improved Maintainability
- Complete library restructuring with new Page and Document class architecture
- Removed CompareImage.py (630 lines) in favor of integrated functionality
- Added DocumentRepresentation.py (781 lines) providing a clean document abstraction layer
- Enhanced VisualTest.py with 3,800+ lines of improved functionality
- New IgnoreAreaManager.py (129 lines) for better area management
🚀 New Features
Enhanced Image Recognition and Template Matching
- Improved partial image recognition via template matching algorithms
- Enhanced template detection in images for better accuracy
- Better handling of cropped images as templates in larger images
Advanced Movement Detection
- Improved movement detection algorithms with additional robustness checks
- Move distance reporting - actual move distance now included in output messages
- Failure detection for high move distances with configurable thresholds
- Enhanced tolerance handling with 1-pixel tolerance adjustments
Watermark Processing Enhancements
- Combined watermark checking - ability to process multiple watermarks in a folder before comparison
- Extended watermark test coverage for combined watermark scenarios
Barcode and Data Matrix Support
- New barcode recognition capabilities with return of difference scores
- Data matrix detection support
- Barcode-specific test suite with assertion engine integration
OCR and Text Recognition Improvements
- Enhanced OCR engine argument handling for compare_images and EAST detection
- CV2 EAST support integration for text detection
- Improved text recognition with confidence -1 handling and confidence 100 assignment
- TESSERACT_CONFIG support for custom OCR configurations
- Maximum resolution limits for OCR resizing operations
Image Processing Enhancements
- Block-based SSIM option for structural similarity measurement
- Blur effects support with PathLib integration
- Screenshot enhancements when image dimensions differ
- Improved handling of small image parts in block SSIM calculations
🧪 Comprehensive Testing Improvements
Massive Test Coverage Expansion
This release includes the most significant testing improvements in the library's history:
New Unit Test Files
- test_config.py (86 tests) - Complete configuration testing
- test_downloader_extended.py (205 tests) - Extended downloader functionality
- test_ignore_area_manager.py (229 tests) - Comprehensive area management testing
- test_printjob.py (75 tests) - Complete PrintJob class coverage
- test_printjobtests.py (400 tests) - Extensive print job testing
- test_visualtest_simple.py (352 tests) - Core visual test functionality
- test_visualtest_extended.py (621 tests) - Advanced visual test scenarios
- test_movetolerance.py (1,378 tests) - Comprehensive movement tolerance testing
- test_profiler.py (197 tests) - Performance profiling tests
Enhanced Existing Test Suites
- test_barcode.py - Enhanced barcode testing with new capabilities
- test_ocr.py - Extended OCR functionality testing
- test_visualtest.py - Updated core visual testing
- test_watermark.py - Enhanced watermark testing scenarios
- test_masks.py - Improved mask handling tests
New Acceptance Test Suites
- Barcode.robot (33 test cases) - Complete barcode functionality testing
- DocumentProcessing.robot (78 test cases) - End-to-end document processing
- Enhanced Compare.robot - Extended comparison testing
Test Data and Infrastructure
- New test images - small_A_moved.png, small_A_reference.png for movement testing
- Enhanced testdata - datamatrix.png, sample_barcodes.pdf, sample_1_page_watermark_changed.pdf
- Improved CI/CD - Renamed workflow from python-package.yml to ci.yml with enhanced configuration
🔨 Technical Improvements
Dependency Updates
- Python version support - Maintained support for Python 3.8.1+
- NumPy version matrix - Optimized for different Python versions (3.8-3.13+)
- PyMuPDF constraints - Updated to >=1.23.1, <1.25.0
- SciPy optimization - Version-specific constraints for better compatibility
Code Quality and Maintenance
- Black formatting applied across the codebase
- Improved error handling in multiple modules
- Enhanced logging and debug capabilities
- Better documentation with updated keyword docs
📊 Coverage Statistics
Based on the extensive test additions, the library now has significantly improved code coverage:
- PrintJob module: Increased from 0% to 100% coverage
- Configuration module: Achieved 100% coverage
- Downloader module: Improved from 76% to 92% coverage
- Core functionality: Substantial improvements across all major modules
🐛 Bug Fixes
- OCR engine argument handling - Fixed proper handling for compare_images and EAST detection
- Import fixes - Resolved urllib.parse and urllib.request import issues
- Text comparison logic - Fixed similar=False condition for text differences
📚 Documentation Updates
- Comprehensive keyword documentation refresh
- New HTML documentation for versions 0.24.0rc1 and 0.24.0rc9
- Updated docstrings throughout the codebase
- Enhanced README with current capabilities
This release represents one of the most significant updates to the robotframework-doctestlibrary, setting a strong foundation for future development and significantly improving the testing and reliability of visual document comparison workflows.