Skip to content

v0.24.0

Choose a tag to compare

@manykarim manykarim released this 24 Jul 09:16
· 116 commits to main since this release

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.