Skip to content

epic(packaging): portable + installable distribution channels #379

Description

@ZhuchkaTriplesix

Context

Today Release CI ships only relocatable Flutter-bundle zips (Querya-Desktop-{ver}-{linux,windows,macos}.zip). That is already a portable binary layout, but app data still lands in OS paths (getApplicationSupportDirectory, ~/.querya, libsecret/keyring).

The in-app updater already has forward-looking installers for AppImage / Windows setup EXE / macOS .app zip, but CI does not build those artifacts yet, and asset selection only matches *-{platform}.zip.

Users should choose on download:

Channel Meaning
Portable Zip (or portable-flagged build): run from folder/USB; optional data next to binary
Installable OS-integrated packages: AppImage, Windows setup, macOS app/DMG, plus distro packages (deb/rpm/Flatpak/…)

Children

Core dual-channel

Linux distro packages

Optional later

  • macOS DMG / real Sparkle appcast (code already accepts .app zip)
  • Snap (updater already defers to snap refresh when SNAP is set)

Acceptance (epic)

  • Each GitHub Release offers clear Portable and Installable downloads per supported OS
  • Updater updates with the same packaging family the running binary used
  • Portable mode can keep profile data beside the binary when opted in
  • At least one multi-distro Linux install path beyond raw zip (AppImage and/or Flatpak/deb/rpm)
  • SHA256SUMS.txt covers all published artifacts
  • Docs: download matrix + support paths for portable vs installed

Out of scope for this epic

References

  • .github/workflows/release.yml
  • lib/core/updater/installers/ (linux_appimage_installer.dart, windows_exe_installer.dart, macos_sparkle_installer.dart)
  • lib/core/updater/installers/update_install_context.dart (APPIMAGE / Snap / Flatpak detection)
  • docs/tags-and-releases.md, docs/theme-import.md (support paths)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

coreCore library logic and servicesenhancementNew feature or requestepicEpic / umbrella issue

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions