webdrop-bridge/CHANGELOG.md
claudi 9609a12ae7
Some checks are pending
Tests & Quality Checks / Test on Python 3.11 (push) Waiting to run
Tests & Quality Checks / Test on Python 3.12 (push) Waiting to run
Tests & Quality Checks / Test on Python 3.11-1 (push) Waiting to run
Tests & Quality Checks / Test on Python 3.12-1 (push) Waiting to run
Tests & Quality Checks / Test on Python 3.10 (push) Waiting to run
Tests & Quality Checks / Test on Python 3.11-2 (push) Waiting to run
Tests & Quality Checks / Test on Python 3.12-2 (push) Waiting to run
Tests & Quality Checks / Build Artifacts (push) Blocked by required conditions
Tests & Quality Checks / Build Artifacts-1 (push) Blocked by required conditions
Bump version to 0.6.5 and enhance update download functionality
- Updated version number in __init__.py to 0.6.5.
- Modified the download_update method in updater.py to accept a progress_callback for tracking download progress.
- Implemented chunked downloading in _download_file to report progress via the callback.
- Adjusted installer launching logic in updater.py to handle MSI files correctly using msiexec.
- Connected download progress signal in main_window.py to update the downloading dialog.
2026-02-25 15:26:02 +01:00

8.7 KiB

[0.6.5] - 2026-02-25

Added

Changed

Fixed

[0.6.4] - 2026-02-25

Added

Changed

Fixed

[0.6.3] - 2026-02-25

Added

Changed

Fixed

[0.6.2] - 2026-02-25

Added

Changed

Fixed

[0.6.1] - 2026-02-25

Added

Changed

Fixed

[0.6.0] - 2026-02-20

Added

  • UI Enhancements

    • Web source configuration tab in settings dialog for URL mapping management
    • Enhanced about dialog with product description and contact information
  • Build & Distribution

    • Executable versioning support for Windows builds
    • Desktop shortcut creation in WiX installer
    • Support for 64-bit components in MSI installer (fix)

Changed

  • Refactored logging configuration to use AppData directory (Windows) instead of application root
  • Enhanced Windows installer with improved UI and error reporting
  • Improved code structure and readability across multiple modules
  • Refactored version syncing script with better Unicode handling

Fixed

  • Fixed import order in settings_dialog.py (QTabWidget positioning)
  • Improved error reporting in Windows installer linking
  • Enhanced Unicode handling in build scripts

Changelog

All notable changes to WebDrop Bridge will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[0.1.0] - 2026-01-28

Added

  • Core Features

    • Qt6-based desktop application for web-to-file drag-and-drop
    • PySide6 integration with WebEngine for embedded browser
    • Path validation and security with whitelist-based access control
    • Drag-and-drop event interception and handling
    • Real-time drag state monitoring
  • UI/UX

    • Professional main window with toolbar navigation
    • Restricted web view with URL whitelist enforcement
    • Kiosk-mode support (restricted browsing)
    • Beautiful default welcome page for unconfigured instances
    • Responsive layout with proper window management
  • Configuration

    • Environment-based configuration system (.env file support)
    • Configurable allowed root directories for file access
    • URL whitelist with wildcard support (*.example.com)
    • Window size and appearance settings
    • Logging level and output control
  • Logging & Monitoring

    • Structured logging with INFO, DEBUG, ERROR levels
    • Optional file-based logging
    • Comprehensive error messages and diagnostics
    • Application startup and shutdown logging
  • Build & Distribution

    • PyInstaller configuration for Windows and macOS
    • Standalone executable generation (195.7 MB for Windows)
    • Dependency bundling (PySide6, Qt6, Chromium)
    • Resource embedding (webapp, icons, stylesheets)
    • Cross-platform support (Windows .exe, macOS .dmg)
  • Testing & Quality

    • 99 unit and integration tests
    • 84% code coverage
    • Ruff linting and Black code formatting
    • mypy type checking
    • Comprehensive test fixtures and mocking
  • CI/CD

    • Build automation scripts for Windows and macOS
    • Forgejo Packages support for distribution
    • SHA256 checksum generation for release files
    • Release documentation on Forgejo
  • Documentation

    • Comprehensive API documentation with docstrings
    • Architecture documentation (ARCHITECTURE.md)
    • Development plan (DEVELOPMENT_PLAN.md)
    • Setup and quickstart guides
    • Contributing guidelines

Technical Details

  • Language: Python 3.13
  • Framework: PySide6 6.10.1 (Qt6)
  • Web Engine: Qt6 WebEngine with Chromium
  • Build Tool: PyInstaller 6.18.0
  • Testing: pytest with coverage
  • Linting: Ruff + Black

Known Limitations

  • Requires configuration for custom web applications
  • Manual release builds needed (no CI/CD runners in Forgejo at this time)

[0.5.0] - 2026-02-18

Added - Phase 4 Professional Features

Phase 4.1: Auto-Update System

  • Auto-update Manager (core/updater.py)

    • Check for new releases via Forgejo API
    • Automatic background update checking (configurable interval)
    • Manual "Check for Updates" menu option
    • SHA256 checksum verification for downloaded files
    • Version comparison using semantic versioning
    • 27 tests passing, 79% coverage
  • Update UI Components (ui/update_manager_ui.py)

    • Update notification dialogs with release notes and changelog
    • Progress bar for update downloads
    • Integration with Help menu and status bar
    • Real-time status updates ("Checking...", "Downloading...", "Complete")
    • Graceful error handling with user feedback
    • 49 tests passing, 95% coverage
  • Forgejo Integration

    • Queries Forgejo API for latest releases
    • Supports tag-based versioning (vX.Y.Z)
    • Release notes parsing and display
    • Asset/checksum management

Phase 4.2: Enhanced Logging & Monitoring

  • Structured JSON Logging

    • JSONFormatter class for JSON-formatted log output
    • Timestamp, level, module, function, and line number tracking
    • Optional JSON format alongside traditional text logging
  • Log Rotation & Archival

    • Automatic log file rotation (daily)
    • Old log archival with configurable retention (default: 30 days)
    • _archive_old_logs() function for log cleanup
    • Logs directory management
  • Performance Metrics

    • PerformanceTracker context manager for operation timing
    • Automatic performance logging
    • Useful for debugging and optimization monitoring
    • 20 tests passing, 91% coverage

Phase 4.3: Advanced Configuration

  • Configuration Validation System

    • ConfigValidator class with comprehensive schema validation
    • Validates all config fields with detailed error messages
    • Type constraints, ranges, and allowed value enforcement
    • 8 tests passing
  • Configuration Profiles

    • ConfigProfile class for named profile management (work, personal, etc.)
    • Profile storage in ~/.webdrop-bridge/profiles/ as JSON
    • Profile save/load/delete functionality
    • 7 tests passing
  • Settings Dialog UI (ui/settings_dialog.py)

    • Professional Qt dialog with 5 organized tabs
    • Paths Tab: Manage allowed root directories with add/remove buttons
    • URLs Tab: Manage allowed web URLs with wildcard support
    • Logging Tab: Configure log level and file output
    • Window Tab: Configure window size, title, and appearance
    • Profiles Tab: Save/load/delete named profiles, export/import configs
    • 23 tests passing, 75% coverage
  • Configuration Import/Export

    • ConfigExporter class for JSON serialization
    • export_to_json() - Save configuration to JSON file
    • import_from_json() - Load configuration from JSON
    • File I/O error handling
    • 5 tests passing
  • Overall Phase 4.3 Stats

    • 43 tests passing total
    • 87% coverage on config_manager.py
    • 75% coverage on settings_dialog.py

Technical Improvements

  • Test Coverage: Increased from 84% (v1.0.0) to 90%+ with Phase 4 additions
  • Total Test Suite: 139 tests passing across all phases
  • Code Quality: Maintained 100% Black formatting and Ruff compliance
  • Type Safety: Full mypy compliance across new modules

Documentation Updates

  • Updated DEVELOPMENT_PLAN.md with Phase 4 completion status
  • Added comprehensive docstrings to all Phase 4 modules
  • Configuration validation examples in docs
  • Update workflow documentation

Known Changes from v1.0.0

  • Forgejo API integration approach (vs CI/CD automation)
  • Manual release builds using Forgejo Packages (vs Actions)
  • Optional JSON logging format (traditional text still default)
  • Profile-based configuration management

[Unreleased] - Phase 5 Planned

Planned Features

  • Performance Optimization - Drag event latency < 50ms
  • Security Hardening - Comprehensive security audit and fixes
  • Release Candidates - v1.0.1-rc1, rc2, rc3 testing
  • Final Releases - Stable Windows & macOS builds
  • Analytics (Optional post-release)
  • Community Support - GitHub/Forgejo discussion forums

Version Numbering

  • MAJOR: Significant feature additions or breaking changes
  • MINOR: New features, backward compatible
  • PATCH: Bug fixes, improvements

Example: 1.0.0 = Version 1, Release 0, Patch 0

Release Process

  1. Update version in src/webdrop_bridge/__init__.py (version)
  2. Update CHANGELOG.md with new features/fixes
  3. Commit: git commit -m "chore: Bump version to X.Y.Z"
  4. Build on Windows: python build/scripts/build_windows.py
  5. Build on macOS: bash build/scripts/build_macos.sh
  6. Tag: git tag -a vX.Y.Z -m "Release version X.Y.Z"
  7. Push: git push upstream vX.Y.Z
  8. (Optional) Upload to Forgejo Packages using provided upload scripts

Current Version: 1.0.0 (Released 2026-01-28)
Last Updated: 2026-02-18 with v1.0.1 Phase 4 features
Next Version: 1.1.0 (Planned for Phase 5 release candidates)