feat: Add Forgejo CI/CD pipeline for automated builds and releases
- Create .forgejo/workflows/build.yml for automated Windows and macOS builds - Trigger on version tags (v1.0.0, v1.0.1, etc.) or manual dispatch - Windows job builds executable with PyInstaller - macOS job builds DMG package - Automatically generate SHA256 checksums for verification - Create release on Forgejo with all artifacts - Add FORGEJO_CI_CD_SETUP.md with complete setup guide - Add CHANGELOG.md for version tracking - Update DEVELOPMENT_PLAN.md with Phase 3.3 details This enables: - Centralized release hub on Forgejo - Automatic distribution of builds - Foundation for Phase 4.1 auto-update system - Checksum-based integrity verification
This commit is contained in:
parent
db0cef4797
commit
00b4c55612
4 changed files with 622 additions and 0 deletions
112
CHANGELOG.md
Normal file
112
CHANGELOG.md
Normal file
|
|
@ -0,0 +1,112 @@
|
|||
# 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).
|
||||
|
||||
## [1.0.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**
|
||||
- Forgejo Actions workflow for automated builds
|
||||
- Windows executable build on tag push
|
||||
- macOS DMG build on tag push
|
||||
- SHA256 checksum generation
|
||||
- Automatic release creation 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 .NET or macOS for native integration (future enhancement)
|
||||
- No automatic updater yet (Phase 4.1)
|
||||
- No multi-window support (Phase 4.2)
|
||||
- Requires configuration for custom web applications
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
### Planned for Phase 4
|
||||
- **Auto-Update System** with Forgejo integration
|
||||
- **Enhanced Logging** with monitoring dashboard
|
||||
- **Advanced Configuration** UI
|
||||
- **User Documentation** and tutorials
|
||||
- **Code Signing** for Windows MSI
|
||||
- **Apple Notarization** for macOS DMG
|
||||
|
||||
---
|
||||
|
||||
## 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/config.py` (APP_VERSION)
|
||||
2. Update CHANGELOG.md with new features/fixes
|
||||
3. Commit: `git commit -m "chore: Bump version to X.Y.Z"`
|
||||
4. Tag: `git tag -a vX.Y.Z -m "Release version X.Y.Z"`
|
||||
5. Push: `git push upstream vX.Y.Z`
|
||||
6. Forgejo Actions automatically builds and creates release
|
||||
|
||||
---
|
||||
|
||||
**Current Version**: 1.0.0 (Released 2026-01-28)
|
||||
**Next Version**: 1.1.0 (Planned with auto-update system)
|
||||
Loading…
Add table
Add a link
Reference in a new issue