• v0.4.4 a3a91fe4ed

    bscott released this 2025-09-26 17:02:56 -04:00 | 25 commits to main since this release

    🚨 IMPORTANT: Backup Your Data Before Upgrading

    This release includes database schema changes. Please backup your data directory before upgrading:

    # Stop SubTrackr
    docker-compose down
    
    # Create backup
    cp -r ./data ./data-backup-$(date +%Y%m%d)
    
    # Then proceed with upgrade
    docker-compose pull
    docker-compose up -d
    

    What's being added to your database:

    • New exchange_rates table for currency conversion (optional feature)
    • New date_calculation_version column for improved date handling
    • All existing data remains unchanged and fully compatible

    🎯 What's New

    New Features

    • Advanced Currency Support: Added comprehensive currency conversion system with support for USD, EUR, GBP, JPY, RUB, SEK, PLN, and INR
    • Real-time Exchange Rates: Integration with Fixer.io API for up-to-date currency conversion (completely optional)
    • Currency Settings: New settings page to configure your preferred base currency
    • Enhanced Date Handling: Improved renewal date calculations with robust edge case handling
    • Migration System: Added versioned date calculation system for better reliability

    🐛 Bug Fixes

    • Renewal Date Calculation: Fixed issues where renewal dates weren't being calculated correctly for new subscriptions
    • Month-end Edge Cases: Improved handling of subscriptions starting on month-end dates (Jan 31, Jul 31, etc.)
    • Leap Year Support: Enhanced leap year date arithmetic for accurate billing cycles
    • API Response Format: Fixed API endpoints returning HTML instead of JSON in some cases

    🔧 Technical Improvements

    • Comprehensive Test Suite: Added extensive unit tests covering edge cases and currency functionality (55.6% coverage)
    • Database Migrations: Enhanced migration system for schema updates
    • Carbon Date Library: Integrated robust date arithmetic library for better date handling
    • Performance Optimizations: Improved database queries and caching for currency rates

    🔑 Currency Conversion is Optional

    SubTrackr works fully out-of-the-box with no external dependencies required. The Fixer.io API integration is completely optional:

    • Without API key: Full multi-currency support with manual selection
    • With API key: Automatic real-time currency conversion

    🙏 Thanks to Contributors

    Special thanks to @amitsingh-007 for contributing INR currency support in PR #45!

    📈 Stats

    • Test coverage increased to 55.6%
    • Added 90+ new test cases
    • Enhanced edge case handling for date calculations
    • Improved currency conversion accuracy

    Full Changelog: https://github.com/bscott/subtrackr/compare/v0.4.3...v0.4.4