Об этом проекте

Zinnia представляет собой графический интерфейс для работы с архивами 7-Zip, созданный с помощью Tauri и распространяемый для Windows, macOS и Linux. Согласно README, это настольный архиватор с нативным GUI вместо командной строки, где работа над упаковкой и установщиками направлена на то, чтобы операции с архивами были доступны непосредственно из операционной системы. Поддержка платформ, указанная в README: macOS 26 или новее (универсальная сборка для Intel и Apple silicon); Windows 10 версии 2004 (сборка 19041) или новее для x64 или ARM64; и Linux x64 на Ubuntu 24.04+, Debian 13+ или Fedora 43+ (или совместимом дистрибутиве с необходимым рантаймом WebKitGTK). Публичные релизы для Linux включают AppImage, DEB, RPM и Flatpak для x64, в то время как AppImage/DEB/RPM для ARM64 публикуются только при явной сборке для релиза, а Flatpak остается только для x64. Особое внимание уделено интеграции с операционной системой. Упакованные сборки регистрируют общие типы архивных файлов. В Windows сборки NSIS добавляют пользовательские глаголы проводника «Открыть с помощью Zinnia», «Извлечь с помощью Zinnia» и «Сжать с помощью Zinnia» в качестве классического резервного варианта, включая путь через «Показать дополнительные параметры». Подписанные сборки Windows NSIS дополнительно регистрируют современное контекстное меню Windows 11 через MSIX с разреженным идентификатором и zinnia_shell.dll, создавая подменю Zinnia и пункт «Извлечь» верхнего уровня для архивов; после успешной современной регистрации классические глаголы удаляются во избежание дублирования, оставаясь резервным вариантом при сбое регистрации пакета. В README отмечается, что Zinnia остается обычной пользовательской установкой NSIS Win32, а MSIX не является пакетом Store/AppX, а служит лишь для предоставления идентификатора пакета, чтобы проводник мог загрузить shell DLL. В Linux пакеты deb, rpm и Flatpak включают настольные действия «Открыть», «Извлечь» и «Сжать». В macOS пользователи могут выбрать Zinnia через стандартный поток «Открыть с помощью» / «Свойства» в Finder, а запуск архивов перенаправляется в окно быстрого извлечения. Упакованные сборки также предоставляют пункты контекстного меню Finder Sync и службы Finder для действий «Извлечь с помощью Zinnia» и «Сжать с помощью Zinnia»; Finder Sync отслеживает только Рабочий стол, Документы, Загрузки, Фильмы, Музыку, Изображения и смонтированные тома, поэтому для файлов в других местах рекомендуются службы Finder. Инструкции по разработке стандартны для проекта Tauri: npm install, npm run tauri:dev и cargo doc для src-tauri/Cargo.toml. Прямые команды Cargo работают без отдельного этапа подготовки, так как скрипт сборки Tauri обновляет игнорируемые бинарные файлы sidecar из отслеживаемых ресурсов перед запуском нативной сборки. Скрипты сборки именованы по платформам: build:win, build:mac:universal, затем build:mac:zip, build:linux (или build:linux:x64), build:linux:arm64 для нативных сред ARM64 и flatpak:bundle. Подпись релизов доступна через GPG-скрипт. В README также подробно описан процесс обновления и выпуска: апдейтер настроен в src-tauri/tauri.conf.json; CI запускает тесты и проверки на Linux, Windows и macOS, но никогда не собирает релизные бинарные файлы, не публикует релизы и не использует секреты для подписи. Подписанные релизы создаются осознанно: платформозависимые скрипты выпуска размещают манифесты апдейтера, артефакты, файлы контрольных сумм и отсоединенные подписи в черновике релиза GitHub для той же версии. Скрипты продолжения бета-тестирования автоматически синхронизируют бета-манифесты ВМ с последней стабильной лентой выпусков, даже если тег все еще является черновиком, так как бета-клиенты опрашивают живую ленту; для восстановления существует отдельный скрипт синхронизации. Предоставлены шаги проверки для черновиков и опубликованных релизов, включая проверку целевой матрицы, версии, подписей артефактов апдейтера и контрольных сумм. Включены рекомендации по работе с временными нетегированными идентификаторами черновиков GitHub, возобновлению существующей сессии подготовки релиза, привязанной к конкретному коммиту, lock-файлам, платформе, архитектуре и тулчейну, а также скрипты распространения версий, которые копируют версию пакета в нативные манифесты, URL-адреса загрузки журнала изменений и метаданные AppStream. README завершается предупреждением о недопустимости отправки тега релиза до появления всех артефактов платформ и проверки подписей и контрольных сумм их апдейтеров. Дополнительная документация проекта доступна в ARCHITECTURE.md, CONTRIBUTING.md и SECURITY.md, а также в заметках по оболочке Windows и контекстному меню QA в репозитории.