Commit Graph

99 Commits

Author SHA1 Message Date
oop7 3d5dfd6d48 Add Inno Setup installers and build step
Add Inno Setup compilation to the Windows CI: the workflow now installs Inno Setup via choco, adjusts PATH, and runs iscc to compile two installers (standard and -ffmpeg) using /DMyAppVersion,/DMyAppExeName and /DSourceDir, placing outputs into repo/artifacts and failing the job on non-zero exit. Also add two new Inno Setup scripts in setup-scripts/: Setup-windows.iss and Setup-windows-ffmpeg.iss. The scripts include metadata, multi-language support, file/icon/registry/run entries, and Pascal code to create or update the user's ytsage_config.json language setting; the -ffmpeg script adds an optional task to append the app folder to the user's PATH.
2026-02-07 19:13:47 +02:00
oop7 b776b3efa9 Keep QtDBus and related plugins in macOS build
Add PySide6.QtDBus to the list of included PySide6 modules and stop removing DBus-related artifacts during the macOS packaging step. The changes remove deletions of the platforminputcontexts plugin and libqpdf/libqsvg/libqsvgicon files, and remove QtDBus from the list of Qt modules treated as bloat. This preserves D-Bus support and related SVG/PDF rendering plugins required at runtime.
2026-02-03 17:41:54 +02:00
oop7 030b37c505 Adjust PySide6 components and plugin cleanup
Add PySide6.QtDBus and PySide6.QtSvg to the list of required modules and remove PySide6.QtSvg from the secondary module list. Stop removing the svg plugin, platforminputcontexts and svg-related image/icon libraries during the cleanup pass (only libqpdf.so is still removed). These changes ensure QtSvg and D-Bus components are preserved in the Linux build and prevent stripping SVG-related functionality.
2026-02-03 17:19:44 +02:00
oop7 cfccbceb8e Adjust AppImage AppDir layout and AppRun script
Update the Linux CI AppImage build to copy the cx_Freeze output directly into AppDir root (so 'lib' sits next to the 'ytsage' binary) to avoid ModuleNotFoundError: encodings. Fix the .desktop Exec path, add .DirIcon, and replace the previous symlink with an AppRun script that sets LD_LIBRARY_PATH and execs the bundled binary.
2026-02-03 17:01:25 +02:00
oop7 ad63cdcca1 Build AppImage manually in CI workflow
Replace the cx_Freeze bdist_appimage step with an explicit manual AppImage build to avoid cx_Freeze rebuilding and untrimming artifacts. The workflow now downloads appimagetool, prepares an AppDir (AppDir/usr/bin), copies the trimmed build contents (preserving cx_Freeze relative paths), installs desktop/icon metadata, creates an AppRun symlink, and runs appimagetool with ARCH=x86_64 and --appimage-extract-and-run to avoid FUSE issues in CI. The rest of the job (e.g. RPM build) remains unchanged.
2026-02-03 16:44:51 +02:00
oop7 5d9054154c Manually create DMG and ZIP artifacts
Remove the separate bdist_dmg build step and instead package the generated .app in-place: create a .app.zip and build a UDZO .dmg using a temporary dmg_stage (copy .app, add Applications symlink, run hdiutil). Also remove the previous fallback that searched for prebuilt DMGs and change missing .app handling to error+exit. Artifacts are written to artifacts/YTSage-v${version}-${ARCH_SUFFIX}.{app.zip,dmg}.
2026-02-03 16:28:27 +02:00
oop7 ac11cbd7bb Simplify macOS .app lib trimming workflow
Replace complex multi-dir detection with a single find+while loop to identify library dirs and verify Python lib layout (asyncio/PySide6/ytsage). Consolidate cleanup steps: recursively remove PySide6 translations, normalize plugin path detection and remove specific plugin folders/files via find, and simplify removal of unwanted Qt modules using broader find patterns. Remove some verbose checks and add a final sanity listing of remaining lib contents. These changes make the trimming more robust to different .app layouts and reduce duplicate logic.
2026-02-03 16:14:59 +02:00
oop7 c11a4a0280 Enhance macOS build lib cleanup
Update the macOS build workflow to robustly locate and clean multiple library directories inside the .app bundle. Instead of a single lib path, the script now finds all 'lib' dirs containing PySide6 or ytsage and iterates over them. Cleanup expanded to handle alternate PySide6 paths (PySide6/Qt/translations, PySide6/Qt/plugins), more plugin/imageformat variants (.dylib/.so), additional Qt library name patterns (Qt6*, framework-style names) and Qt6DBus, and removal of common build tools/modules. Adds logging and a warning when no library dirs are found.
2026-02-03 15:58:23 +02:00
oop7 ce4a034224 Refactor Linux build trimming and cleanup
Consolidate and harden post-build cleanup by targeting the build's lib directory (lib_dir) instead of running broad finds across build_dir. Removes screenshots, PySide6 translations, specific Qt plugins and plugin files, and various Qt6 shared libraries (Web, Pdf, Qml, Quick, VirtualKeyboard, OpenGL) to reduce bundle size. Also removes common build tools/modules (setuptools, wheel, pkg_resources, _distutils_hack, curses, _pyrepl) and adds explicit logging and a warning if lib_dir is missing. Simplifies and centralizes cleanup logic for more predictable and efficient trimming of Linux artifacts.
2026-02-03 15:40:48 +02:00
oop7 536594a56e Improve macOS app bundle trimming script
Enhance the .github workflow that trims macOS .app bundles by robustly detecting the library directory (with fallbacks) and performing deeper cleanup. Removes screenshots, Qt translations, many Qt plugin folders, specific image/icon libs, bulk Qt6 libraries, and several Python build/tool modules; adapts for macOS dylib naming. Adds logging and a warning if the lib directory cannot be determined to avoid accidental deletes.
2026-02-03 15:32:38 +02:00
oop7 3ea5fedfa3 Remove Qt DLLs from PySide6 and suppress errors
Add -ErrorAction SilentlyContinue to Get-ChildItem calls and add a check for a lib\PySide6 folder to remove matching Qt DLLs there as well. This prevents failures when no files match the patterns and ensures duplicate Qt DLLs packaged under PySide6 are cleaned up. Applied to both DLL-cleanup sections of the Windows build workflow.
2026-02-03 15:20:09 +02:00
oop7 dab35a1a3a Prune PySide6 files in Windows build workflow
Refactor Windows build cleanup to use a dedicated $libDir and more aggressively prune unused PySide6/Qt files. Replaces direct $distDir references with $libDir for lib content and removes screenshots, PDBs, translations, many plugin folders, specific image/icon plugins (qpdf/qsvg/qsvgicon), platform input contexts, and common bulky Qt DLL patterns. Also removes several build tools/unused Python modules (setuptools, wheel, pkg_resources, _distutils_hack, curses, _pyrepl). Applied the same changes to both YTSage and YTSage-FFmpeg packaging steps to reduce bundle size and noise, and improved log messages for removed items.
2026-02-03 15:04:30 +02:00
oop7 cc3a00e1e0 Enhance Linux build packaging and cleanup
Adjust build-linux CI to produce smaller, self-contained AppImages: enable silent build output, add zip_include_packages so key libs (PySide6, shiboken6, requests, PIL, packaging) are packaged, and add extra excludes (pydoc, doctest, email). Use python -OO for optimized bytecode. Expand post-build trimming to remove screenshots, Qt translations, unused PySide6 plugins and other Qt artifacts (Qt6Web*, Qt6Pdf*) with informative logging. These changes reduce package size and avoid shipping unnecessary runtime components.
2026-02-03 14:46:37 +02:00
oop7 bf9e11d08f macOS build: trim .app bundle and packaging tweaks
Improve macOS CI packaging by trimming unnecessary files from the built .app and adjusting build options. Changes include:

- Enable cx_Freeze silent build and run Python with -OO for bdist_mac.
- Add zip_include_packages to ensure key packages are bundled inside zip distributions.
- Exclude additional stdlib modules (pydoc, doctest, email) to reduce size.
- New workflow step to locate the generated .app and remove screenshots, Qt translations, unused PySide6 plugins and other Qt artifacts (Qt6Web*, Qt6Pdf*), with safer path detection and logging.
- Remove noisy post-build directory listings and simplify DMG handling/log messages; make .app and .dmg discovery more robust.

These changes aim to produce smaller, cleaner artifacts and more reliable CI packaging for macOS builds.
2026-02-03 14:41:19 +02:00
oop7 6c98d729ea Optimize Windows builds and trim dist files
Add build/time optimizations and post-build trimming for Windows CI. Enables silent cxfreeze output and adds zip_include_packages (PySide6, shiboken6, requests, PIL, packaging) so selected packages are included in the zip; excludes additional stdlib modules (pydoc, doctest, email) to reduce bundle size. Switches build invocation to python -OO for extra optimization and adds dedicated PowerShell steps (for both standard and FFmpeg builds) that remove screenshots, PDB debug files, unused Qt translations/plugins and extra Qt DLLs (Qt6Web*/Qt6Pdf*) to shrink artifacts and remove unnecessary files before packaging.
2026-02-03 14:17:46 +02:00
oop7 7bc4488635 Include PySide6.QtNetwork in build workflows
Moved PySide6.QtNetwork from the excludes to the includes list in build workflows for Linux, macOS, and Windows. This ensures the QtNetwork module is bundled during packaging.
2026-01-25 15:53:17 +02:00
oop7 387621cb24 Update icon path in build scripts
Changed the icon installation path from assets/branding/icons/icon.png to branding/icons/icon.png in Linux packaging steps to reflect updated directory structure.
2026-01-25 14:54:00 +02:00
oop7 38f08543d9 Fix build config for Linux workflow
Corrected script path to 'ytsage_entry.py', updated icon path, and fixed configuration for including system libraries and binary excludes in the build-linux.yml workflow.
2026-01-25 14:45:54 +02:00
oop7 9a1fb33996 Update macOS artifact naming in CI/CD docs
Clarified the naming convention for macOS build artifacts by specifying 'arm64' in the filenames for the zipped app bundle and disk image installer.
2026-01-25 14:11:11 +02:00
oop7 7efcfaa85b Update Windows build workflow for pyproject and asset paths
Switch pip cache and install to use pyproject.toml instead of requirements.txt. Update cx_Freeze setup to use a new entry point, adjust included packages and asset paths to reflect new project structure, and update icon path.
2026-01-25 14:05:44 +02:00
oop7 de7d7965f2 Update macOS build workflow for pyproject and new structure
Switches dependency installation from requirements.txt to pyproject.toml and updates pip cache key accordingly. Refactors cx_Freeze setup to use a new entry point, adjusts included files and paths to match the updated project structure, and updates icon file references.
2026-01-25 14:05:38 +02:00
oop7 a0df6b273f Update Linux build workflow for PEP 517 and cx_Freeze
Switch pip install to use PEP 517 (pyproject.toml) instead of requirements.txt and update cache key accordingly. Refactor cx_Freeze setup to use new asset paths, add entry point script, and adjust include_files for correct packaging structure.
2026-01-25 14:05:34 +02:00
oop7 99d3b6ae17 Update CI/CD README with Flatpak and macOS details
Added Flatpak bundle to the list of Linux artifacts and clarified that the macOS zipped application bundle is for arm64 architecture.
2026-01-25 14:02:08 +02:00
oop7 64560fabb2 Replace pyglet with QtMultimedia for audio playback
Removed pyglet dependency and migrated notification sound playback to use PySide6.QtMultimedia's QMediaPlayer and QAudioOutput. Updated workflow and requirements files to remove pyglet and ensure PySide6.QtMultimedia is included in build steps.
2026-01-24 16:25:52 +02:00
oop7 6a4264eeab Add contents write permission to release workflow
Updated the release-all GitHub Actions workflow to include 'contents: write' permission, enabling the workflow to perform actions that require write access to repository contents.
2026-01-17 22:04:23 +02:00
oop7 c7751edd91 Add DENO_APP_BIN_PATH env override and Flatpak support
Introduces support for overriding DENO_APP_BIN_PATH via environment variable, enabling compatibility with Flatpak packaging. Updates the build workflow to set the DENO_APP_BIN_PATH environment variable and ensures parent directories for custom binary paths are created if needed.
2026-01-07 18:11:06 +02:00
oop7 67d0919237 Add Flatpak-specific desktop file to build workflow
Introduces creation of a dedicated desktop file for Flatpak packaging in the build-linux workflow. Ensures the Exec and Icon fields conform to Flatpak requirements and updates the install step to use the new desktop file.
2026-01-07 17:40:07 +02:00
oop7 c9691c6a56 Update Flatpak runtime to version 6.10 in CI
Changed the Flatpak runtime and SDK version from 6.6 to 6.10 in the build-linux GitHub Actions workflow to ensure compatibility with the latest KDE platform.
2026-01-06 16:50:46 +02:00
oop7 0b5b5b3189 Add Flatpak build support and env override for yt-dlp path
Introduces a Flatpak packaging step to the Linux CI workflow and updates ytsage_constants.py to support overriding the yt-dlp binary path via the YTDLP_APP_BIN_PATH environment variable, which is critical for Flatpak compatibility. Also ensures the custom yt-dlp directory is created if the environment variable is set.
2026-01-06 16:13:21 +02:00
oop7 45ce4ba69c Update CI/CD README for manual workflow triggers
Revamps the CI/CD documentation to reflect the new manual workflow dispatch system, replacing tag-based triggers. Adds detailed instructions for running full or platform-specific builds, clarifies artifact naming, and updates configuration and process notes to match the current GitHub Actions setup.
2026-01-06 16:02:11 +02:00
oop7 16e61c5d6f Refactor release workflows and add release-all trigger
Refactored build workflows for Linux, macOS, and Windows to use workflow_dispatch and workflow_call with explicit version input, replacing tag-based triggers. Updated release steps to use the provided version input for tagging and naming. Added a new release-all workflow to trigger all platform builds with a single version input.
2026-01-06 15:52:58 +02:00
oop7 d8c754382f Set macOS build to run only on macos-latest
Removed the matrix strategy for multiple macOS runners and set the workflow to use only macos-latest. Simplifies the build process and reduces resource usage.
2025-12-11 13:24:37 +02:00
oop7 ba8011ce44 Update macOS build matrix to use macos-14-large
Replaces macos-15-large with macos-14-large in the GitHub Actions build matrix for improved compatibility or resource availability.
2025-12-11 12:18:20 +02:00
oop7 35c58bfcfa Update macOS build matrix to use macos-15-large
Replaces 'macos-15' with 'macos-15-large' in the GitHub Actions build matrix to utilize the larger runner for macOS 15 builds.
2025-12-11 12:15:30 +02:00
oop7 ce3fd4217d Update macOS build matrix in CI workflow
Replaces specific macOS versions with 'macos-latest' and 'macos-15' in the build matrix to ensure compatibility with newer macOS runners.
2025-12-11 11:28:39 +02:00
oop7 e3097f4501 Remove Qt6 plugins path handling from build script
Eliminates logic for locating and including Qt6 plugins in the build-linux workflow. This simplifies the build process and removes conditional inclusion of Qt6 plugin files.
2025-12-09 19:02:20 +02:00
oop7 e034e9bbcf Fix RPM build paths in Linux workflow
Updated the build-linux.yml workflow to use absolute paths for the desktop file and icon during RPM packaging, ensuring correct file installation regardless of the build directory structure.
2025-12-09 18:36:30 +02:00
oop7 9350982f8c Fix RPM build paths in Linux workflow
Updates the build-linux.yml workflow to use absolute paths for build directory and asset installation during RPM packaging. This ensures files are correctly located and copied, improving reliability of the build process.
2025-12-09 18:28:15 +02:00
oop7 1d958175f2 Improve RPM build process and Qt6 plugin handling
Refactors the cx_Freeze setup to dynamically include Qt6 plugins if available, ensuring proper QPA support. Replaces the previous RPM build step with a manual process using a custom spec file to bundle all dependencies and avoid auto-detected system requirements. Cleans up packaging metadata and improves file inclusion logic for more reliable Linux builds.
2025-12-09 18:19:59 +02:00
oop7 b8804210dc Remove ffplay.exe from Windows build workflow
Updated the build-windows.yml workflow to exclude ffplay.exe from verification and distribution steps, as only ffmpeg.exe and ffprobe.exe are required by the application.
2025-11-29 13:41:06 +02:00
oop7 c99b9b76ac Update CI/CD README for v4.9.5 release
Changed example version numbers in CI/CD documentation from v4.9.2 to v4.9.5 to reflect the latest release process.
2025-11-27 18:42:49 +02:00
oop7 0a66202f1d Update cx_Freeze base to 'gui' in Windows build
Changed the cx_Freeze Executable base from 'Win32GUI' to 'gui' in the Windows build workflow to align with updated cx_Freeze conventions.
2025-11-27 18:40:06 +02:00
oop7 91a0f3e4d7 Update CI workflows: actions versions and dependencies
Bump actions/checkout to v6 and softprops/action-gh-release to v2 in all build workflows. Remove yt-dlp from pip install steps for Linux, macOS, and Windows workflows to streamline dependency installation.
2025-11-27 17:41:39 +02:00
oop7 dfc59a6aa0 Add instructions for collecting log files in bug report template
Updated the bug report issue template to include step-by-step instructions for users to collect and attach log files from the appropriate directory on Windows, macOS, and Linux. This will help streamline the debugging process by ensuring relevant logs are provided.
2025-11-19 21:25:16 +02:00
oop7 ac7deddd1f Update bug report template environment section
Added fields for yt-dlp and Deno versions, updated example versions for YTSage and Python, and clarified instructions for finding environment details in the About dialog.
2025-11-15 16:49:44 +02:00
oop7 9f9bcf2d1e Update FFmpeg download URL in Windows build workflow
Changed the FFmpeg download link in the build-windows.yml workflow to use the official gyan.dev source instead of the GitHub release. This ensures the workflow uses the latest and most reliable FFmpeg builds.
2025-11-12 16:08:01 +02:00
oop7 eeb601cbbd Bump version to 4.9.2
Update version references from 4.9.1 to 4.9.2 in documentation, __init__.py, About dialog, and main application class to prepare for new release.
2025-10-31 19:02:36 +02:00
oop7 fe5638393a Bump version to 4.9.1
Update version references from 4.9.0 to 4.9.1 in documentation, __init__.py, AboutDialog, and main application window to prepare for new release.
2025-10-25 19:50:50 +03:00
oop7 f9c8b80bfe Update CI/CD README for v4.9.0 release instructions
Replaces references to v4.8.0 with v4.9.0 in the CI/CD workflow documentation to reflect the latest release process.
2025-10-25 15:53:29 +03:00
Your Name 6ada5d6c92 Update asset paths in build workflows
Refined the asset inclusion in Linux, macOS, and Windows build workflows to specify subdirectories for branding icons, Icon, and sound assets. This change ensures only the necessary asset folders are packaged, improving build consistency across platforms.
2025-10-06 16:28:59 +03:00