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
232 lines
8.4 KiB
Markdown
232 lines
8.4 KiB
Markdown
## [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](https://keepachangelog.com/en/1.0.0/),
|
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
|
## [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)
|