Skip to content

feat(packaging): make portable zip truly portable out-of-the-box via .portable marker #1056

Closed

Description

@ZhuchkaTriplesix

Summary

Сделать так, чтобы скачанные Portable zip архивы (Windows и Linux) работали как полноценный Portable софт «из коробки» без необходимости вручную создавать папку QueryaData или прописывать переменные окружения.

Problem

  1. Сейчас в release.yml релизные zip-архивы просто пакуют выходную папку сборки Flutter.
  2. В коде AppDataRoot.resolvePortableRoot() портативный режим включается ТОЛЬКО если папка QueryaData уже физически существует, либо установлена переменная QUERYA_PORTABLE=1.
  3. Пользователь скачивает Querya-Desktop-windows.zip, распаковывает, запускает — и программа молча пишет всё в %APPDATA%\querya_desktop. При копировании папки на флешку пользователь теряет все подключения.
  4. Секреты (пароли БД) привязаны к OS Keyring (Windows Credential Manager / DPAPI) и не переносятся между разными ПК на флешке.

Solution

  1. Автоопределение Portable по маркеру:
    • В AppDataRoot проверять не только директорию QueryaData, но и наличие файла-маркера .portable или portable.txt рядом с исполняемым файлом. При наличии маркера автоматически создавать QueryaData/ при первом запуске.
    • В .github/workflows/release.yml вкладывать маркер .portable (или готовую папку QueryaData/) в zip-бандлы Windows и Linux.
  2. Информирование о паролях на флешке:
    • В панели настроек / статусе портативного режима показывать индикатор: «Portable Mode: Data stored in local folder. Passwords stored in host OS keyring».

Acceptance Criteria

  • Скачанный из GitHub Releases zip-архив сразу сохраняет базу данных рядом с exe.
  • Пользователь видит понятный статус портативного режима в About/Preferences.

Activity

  1. added
    enhancementNew feature or request
    stabilityTheme parser epic label: stability
    coreCore library logic and services
    P1High priority / Core capability
    on Oct 4, 2026
  2. added a commit that references this issue on Oct 5, 2026
  3. ZhuchkaTriplesix commented on Oct 5, 2026

    @ZhuchkaTriplesix
    MemberAuthor

    Resolved in PR #1069

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1High priority / Core capabilitycoreCore library logic and servicesenhancementNew feature or requeststabilityTheme parser epic label: stability

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions