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)

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