Commit Graph

1441 Commits

Author SHA1 Message Date
dependabot[bot] 8661101706 ci(deps): bump codecov/codecov-action from 4 to 5
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 4 to 5.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v4...v5)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-21 09:01:59 +00:00
Tomas Dvorak cbf646e25b Fix CI/CD pipeline and code quality issues
## Major Changes
- Fixed all TypeScript errors in web client for successful compilation
- Resolved 82+ Python lint errors across backend services
- Updated Flutter SDK compatibility for mobile app
- Fixed security workflow configuration

## Web Client Fixes
- Fixed import path in DragonflyDashboard.vue (dragonflyApi import)
- All TypeScript compilation now passes without errors

## Backend Lint Fixes
- Updated type annotations to modern Python syntax (dict instead of Dict, X | None instead of Optional[X])
- Replaced try-except-pass with contextlib.suppress(Exception)
- Removed unused imports (Dict, Optional, Any, Iterator, etc.)
- Fixed bare except clauses to use Exception
- Sorted and formatted imports with ruff
- Applied ruff format to 27 files

## Workflow Fixes
- Updated Flutter SDK constraint from ^3.10.4 to ^3.5.0 (compatible with Flutter 3.24.0)
- Changed pip-audit format from github to json in security.yml
- Added comprehensive CI workflows (readiness-gate.yml, security.yml)

## Infrastructure
- Added DragonflyDB caching system integration
- Enhanced Docker configuration with multi-stage builds
- Added pytest configuration and test infrastructure
- Improved production readiness with proper error handling

## Verification
- backend-lint job:  Succeeded
- web job:  Succeeded
- Ready for GitHub deployment

All CI/CD issues resolved. Codebase now passes all quality checks.
2026-03-21 10:01:14 +01:00
Tomas Dvorak 07d2f71de5 Restore all submodules except Android (detached as reference)
- Restore swingmusic-desktop submodule
- Restore swingmusic-webclient submodule
- Restore swingmusic_mobile submodule
- Keep Android detached as reference/android-original
- Update .gitmodules to exclude Android submodule
- All platforms now available locally except Android (reference only)
2026-03-18 20:16:19 +01:00
Tomas Dvorak 1fe00a5005 Detach Android submodule and preserve as reference
- Remove Android submodule from main repository
- Clone Android app to reference/android-original for reference
- Update README to reflect Android as reference-only
- Focus on Flutter mobile app as active development platform
- Clean up git configuration and submodule references
2026-03-18 20:10:59 +01:00
Tomas Dvorak 72358288cd Remove Android submodule and update to mobile-only structure 2026-03-18 20:02:53 +01:00
Tomas Dvorak 5152d9dfeb Add swingmusic_mobile as submodule 2026-03-18 19:44:39 +01:00
Tomas Dvorak 6ca75aedf3 Restore original swingmusic_mobile folder from 9f1623b 2026-03-18 19:43:40 +01:00
Tomas Dvorak e5c7c0ca16 Remove broken mobile app submodule - will create separate repository later 2026-03-18 19:41:20 +01:00
Tomas Dvorak 6ca958f471 Add placeholder mobile app submodule with README 2026-03-18 19:40:35 +01:00
Tomas Dvorak 1d964f5ba8 Fix mobile app submodule initialization and cleanup
- Removed incorrect swingmusic_mobile directory
- Properly initialized swingmusic_mobile submodule from swingmusic-mobile.git
- Clean submodule configuration for unified release workflow
2026-03-18 19:32:08 +01:00
Tomas Dvorak 9f1623bb34 Add swingmusic-mobile submodule to replace Android app
- Updated .gitmodules to include mobile app submodule
- Added swingmusic_mobile directory with Flutter app
- Mobile app will now be built in unified release workflow
2026-03-18 19:29:44 +01:00
Tomas Dvorak 109384c7a1 Update workflow to build mobile app instead of Android
- Updated default components from 'desktop,android,backend' to 'desktop,mobile,backend'
- Replaced Android build job with Flutter mobile build job
- Updated release notes to reference Flutter mobile app instead of Android
- Updated artifact download and installation instructions for mobile app
2026-03-18 19:27:08 +01:00
Tomas Dvorak 109af189a4 fix: Ensure all build jobs run on push events
- Fix build job conditions to run on push events
- Previously jobs were skipped because they only checked inputs
- Now all components build automatically on push to master

Build jobs now run on:
 Push events (automatic) - all components
 Manual trigger (optional) - selected components

This ensures Linux, Windows, macOS, Android, and Backend all build!
2026-03-18 14:29:51 +01:00
Tomas Dvorak 9ee784dee0 test: final verification of unified release workflow
This should now successfully:
 Trigger on push to master
 Handle no existing tags (start from v0.0.0)
 Analyze all commits for semantic versioning
 Calculate v1.0.0 (first release with features)
 Build all platforms
 Create unified GitHub release

Expected result: SwingMusic v1.0.0 release with all packages!
2026-03-18 14:28:42 +01:00
Tomas Dvorak e7e5e42dbc fix: Handle first release when no Git tags exist
- Fix git log commands when no previous tags exist
- Handle v0.0.0 as starting point for first release
- Add proper error handling for missing tags
- Improve logging for debugging

Now unified-release.yml should work for the first release:
 No tags? Start from v0.0.0 and analyze all commits
 Has tags? Analyze commits since last tag
 Proper semantic versioning from the beginning
2026-03-18 14:28:29 +01:00
Tomas Dvorak c648f090e6 test: verify unified release workflow trigger
This should now trigger the unified-release.yml workflow:
 Trigger on master branch push
 Calculate semantic version
 Build all components
 Create unified release
2026-03-18 14:27:23 +01:00
Tomas Dvorak 22127418f1 fix: Resolve workflow trigger issues
- Add 'master' branch to trigger (was only 'main')
- Fix get-version job condition to run on push events
- Ensure workflow triggers properly on git push

Now unified-release.yml should trigger on push to master branch!
2026-03-18 14:27:12 +01:00
Tomas Dvorak 168c92e21c push 2026-03-18 14:26:05 +01:00
Tomas Dvorak 813b94c2d5 chore: Remove unnecessary component-tests.yml workflow
- Remove component-tests.yml (no longer needed)
- unified-release.yml handles all builds and releases
- Keep only essential workflows for clean setup

Active workflows:
 unified-release.yml (main push trigger)
🔇 desktop-ci.yml (manual only)
2026-03-18 14:25:45 +01:00
Tomas Dvorak 494b1a8a07 chore: Clean up workflows and trigger unified release
- Remove conflicting unified-build.yml workflow
- Disable desktop-ci.yml and component-tests.yml
- Keep only unified-release.yml active for all builds
- Test trigger commit to verify workflow execution

Now only unified-release.yml will run on push to main:
 Semantic versioning
 Cross-platform builds (Linux, Windows, macOS, Android, Backend)
 Unified GitHub release
 No workflow conflicts
2026-03-18 14:25:15 +01:00
Tomas Dvorak c5bb917ee6 test: trigger unified release workflow
This commit will test the new unified release system:
 Semantic versioning calculation
 Cross-platform builds (Linux, Windows, macOS, Android, Backend)
 Unified GitHub release creation
 All platforms on appropriate runners

Expected version: v1.0.0 (first release with features)
2026-03-18 14:24:47 +01:00
Tomas Dvorak 403bf01189 fix: Resolve macOS cross-compilation issues in unified release
- Disable old unified-build.yml workflow (was causing conflicts)
- Create new unified-release.yml with proper platform separation
- macOS builds now run on macOS runners (fixes cross-compilation)
- Linux and Windows builds use Ubuntu with cross-compilation
- Separate build jobs for each platform to prevent cancellation
- Rename workflow to indicate cross-platform support

Platform matrix:
 Linux x64: Ubuntu runner (native)
 Windows x64: Ubuntu runner (cross-compile)
 macOS x64/ARM64: macOS runners (native)
 Android: Ubuntu runner (native)
 Backend: Ubuntu runner (native)

Fixes macOS build failures and prevents other builds from being canceled!
2026-03-18 14:22:34 +01:00
Tomas Dvorak f0b5dae276 chore: Update submodules with improved gitignore files 2026-03-18 14:18:51 +01:00
Tomas Dvorak 6a45d1e1b2 chore: Update gitignore files for all components
- Add comprehensive .gitignore for main repo
- Update swingmusic-desktop .gitignore for Rust/Node/Tauri
- Update swingmusic-android .gitignore for Android/Gradle builds
- Update swingmusic-webclient .gitignore for Node.js/Nuxt
- Add src/swingmusic/.gitignore for Python backend

Now ignoring:
🚫 Build artifacts (target/, build/, dist/, node_modules/)
🚫 Generated packages (*.apk, *.exe, *.dmg, *.deb, *.rpm)
🚫 IDE files (.idea/, .vscode/, *.swp)
🚫 OS files (.DS_Store, Thumbs.db)
🚫 Logs and temporary files
🚫 Cache directories
🚫 Environment and config files with secrets

Keeps repo clean while preserving source code only!
2026-03-18 14:18:14 +01:00
Tomas Dvorak a22e462079 feat: Add unified release system for all components
- Create unified release workflow for entire mono repo
- Analyze commits across all submodules for semantic versioning
- Build and release desktop (4 platforms), android, and backend together
- Single version number for all components based on combined changes
- Comprehensive release notes from all component changes
- Support for selective component releases
- Professional installation instructions for all platforms

Components included:
 Desktop: Linux x64, Windows x64, macOS x64/ARM64
 Android: APK release builds
 Backend: Python wheel and source packages

Now every push to main creates a unified release with proper semantic versioning!
2026-03-18 14:15:13 +01:00
Tomas Dvorak e3e90f7a48 chore: Update desktop submodule with semantic versioning 2026-03-18 14:11:54 +01:00
Tomas Dvorak 838276be2b chore: Update desktop submodule with automatic releases 2026-03-18 14:09:53 +01:00
Tomas Dvorak 64e2401bfa chore: Update desktop submodule with cross-platform builds 2026-03-18 14:08:26 +01:00
Tomas Dvorak cd252c2aa2 ci/cd 2026-03-18 13:25:52 +01:00
Tomas Dvorak c202f6b219 ci/cd 2026-03-18 13:25:38 +01:00
Tomas Dvorak 6ff864cb9e update 2026-03-18 12:22:46 +01:00
Tomas Dvorak f3cc6ff1f3 update 2026-03-18 12:22:30 +01:00
Tomas Dvorak 5dded7d327 ci/cd 2026-03-18 11:47:52 +01:00
Tomas Dvorak 521f3791a5 update ci/cd 2026-03-18 09:46:37 +01:00
Tomas Dvorak cefc56c41d update ci/cd 2026-03-18 09:46:16 +01:00
Tomas Dvorak 2f0c0882fc Update README with stylized format and improved styling 2026-03-17 22:40:08 +01:00
Tomas Dvorak 38f1981283 Move backend files to root level for cleaner GitHub display
- Move all backend files from swingmusic/ to root level
- Backend files now display directly on GitHub repository page
- Keep client applications as submodules (swingmusic-android, swingmusic-desktop, swingmusic-webclient)
- Update README to reflect new structure (no cd swingmusic needed)
- Cleaner, more professional GitHub repository layout

Files moved to root:
- src/ (main source code)
- pyproject.toml, requirements.txt, run.py
- swingmusic.spec, uv.lock, version.txt
- services/

Result: GitHub shows backend files directly while maintaining organized structure
2026-03-17 22:37:49 +01:00
Tomas Dvorak 297315f5ba Configure submodules to track master branch
- Update .gitmodules to explicitly track master branch for all submodules
- Ensures submodules always point to latest master commits
- Removes specific commit hashes in favor of branch tracking
2026-03-17 22:37:11 +01:00
Tomas Dvorak 15aaeb3f6e Clean up repository - remove unnecessary files and folders
Removed:
- TODO.md (old todo list, can use GitHub Issues instead)
- tests/ (minimal test coverage, not actively maintained)
- docs/ (mostly empty documentation files)
- contributing/ (redundant with .github/contributing.md)
- appimage/ (AppImage-specific files, only needed for AppImage builds)

Kept essential files:
- .gitignore (required for Git)
- .gitmodules (required for submodules)
- LICENSE (legal requirement)
- README.md (project documentation)
- .github/ (workflows, templates, community files)
- Dockerfile (Docker support)

Repository now has clean, minimal structure with only necessary files.
2026-03-17 22:35:28 +01:00
Tomas Dvorak 4c04287800 Reorganize repository structure for better organization
- Move backend code to swingmusic/ folder
- Move client applications to root level (swingmusic-android, swingmusic-desktop, swingmusic-webclient)
- Remove intermediate backend/ and clients/ folders
- Update README with new folder structure and setup instructions
- Clean and organized repository layout
2026-03-17 22:34:34 +01:00
Tomas Dvorak 17e859dd2f Add client applications as submodules to main repository
- Keep main swingmusic backend code (src/, pyproject.toml, etc.)
- Add swingmusic-android as submodule
- Add swingmusic-desktop as submodule
- Add swingmusic-webclient as submodule
- Update README to reflect main backend + client apps structure
- Repository now contains complete Swing Music ecosystem in one place
2026-03-17 22:33:08 +01:00
Tomas Dvorak aad2f2d421 Add Spotify downloader and enhanced API features
- Add spotify_downloader service for track/album/playlist downloads
- Update Spotify API endpoints with enhanced functionality
- Fix pydub utils import issues
- Update GitHub workflows for improved CI/CD
2026-03-17 22:12:41 +01:00
Tomas Dvorak 272caf6bfe 🔧 Update GitHub Actions to latest versions
- Update actions/setup-node@v3 to @v4
- Update actions/setup-python@v2 to @v5
- Update actions/checkout@v3 to @v4
- Replace deprecated create-release/upload-release-asset with action-gh-release
- Eliminate deprecation warnings and improve reliability
2026-03-17 18:18:59 +01:00
Tomas Dvorak af366e3899 Rewrite README with clean, professional documentation
- Updated with comprehensive feature descriptions
- Added modern installation and setup instructions
- Included detailed project structure and architecture
- Added troubleshooting and development guidelines
- Standardized format across all repositories
- Removed unnecessary content and outdated information
2026-03-17 18:05:53 +01:00
Tomas Dvorak 4338dd1d9c Add comprehensive backend services and API enhancements
- Complete Spotify integration with downloader and settings
- Advanced UX features and audio quality management
- Enhanced search capabilities and mobile offline support
- Music catalog browser and recap features
- Universal downloader and upload functionality
- Update tracking system with database models and migrations
- Comprehensive service layer architecture
- Enhanced lyrics API and streaming capabilities
- Extended application builder and startup configuration
- New logging infrastructure and services directory
2026-03-17 17:56:20 +01:00
Mungai Njoroge 65a1268dab Add 'Martha Reeves and the Vandellas' to default artist split ignore list 2026-01-19 16:09:43 +03:00
Mungai Njoroge 52ce88d58d update default artist split ignore list 2026-01-19 16:06:39 +03:00
Mungai Njoroge 59c03ac99d add "Sonny & Cher" to default artist ignore list 2026-01-19 15:57:53 +03:00
wanji f5fe25323f disable macos 13 builds 2026-01-18 15:48:29 +03:00
wanji 9a915ca62a fix: directory traversal as reported by @d-virtuosa 2026-01-18 09:36:52 +03:00