Авторские статьи

KeePassXC в snap.


Сотрудники Canonical периодически берут интервью у различных разработчиков, которые пакуют свои детища в snap пакеты. Что им понравилось больше всего в технологии самодостаточных пакетов snap? Что не понравилось? В этот раз интервью с одним из разработчиков KeePassXC (KeePass Cross-Platform Community Edition) Джонатаном Вайтом (Jonathan White).

Что такое KeePassXC?

KeePassXC (KeePass Cross-Platform Community Edition) - это созданный сообществом форк менеджера паролей KeePass, который включает в себя востребованные функции и исправления ошибок. KeePassXC - это активный проект с открытым исходным кодом, доступный во всех дистрибутивах Linux, на платформе Windows от XP до 10 и Mac OS X. Наша главная цель - включить все пожелания сообщества, балансируя между переносимостью, скоростью и простотой использования. Некоторые из функций, что уже реализовали:

  • интеграция с браузерами Google Chrome, Chromium, Vivaldi и Mozilla Firefox
  • аутентификация YubiKey
  • переработанный интерфейс

Как вы узнали про snap?

Прочёл в статье Ars Technica около года назад. С тех пор и окунулся в этот мир. В январе 2017 года получилось создать первую версию snap пакета нашего приложения.

Что привлекло в snap? Ради чего решили потратить время и силы?

Новый способ упаковки и размещение готового пакета в Ubuntu Store было бесплатно и выглядело привлекательно. Теперь нам не нужно ожидать длительного процесса рассмотрения и утверждения в официальный репозиторий, как в мире apt.

Как бы вы сравнили snap с другими процессами упаковки, которые использует проект? Насколько легко было интегрировать процесс сборки в snap формат в вашу существующую инфраструктуру?

Первоначальная сборка через файл snapcraft.yaml была немного грубой. В то время в документации не было представлено множество полнотекстовых примеров для различных шаблонов сборки, но понадобилось всего лишь парочку итераций, прежде чем мы получили рабочий snap и протестировали его локально. Самая лёгкая часть - публикация snap для всех, которая заняла пару минут.

С введением в строй build.snapcraft.io, интеграция с нашими процессами сборки значительно улучшилась. Мы можем публиковать snap при прохождении определённого этапа (milestone) или создавать промежуточные пакеты для разработчиков.

В настоящее время используете Snap Store, как способ распространять своё ПО? Как вы считаете, Snap Store меняет способ как пользователи ищут и устанавливают ваше ПО?

Да, мы используем Snap Store. Он стал важным инструментом, который позволил развернуть 18000 установок менее чем за 4 месяца! Snap Store гарантирует пользователям что они получат самую последнюю версию и она точно будет работать в их системе.

Какие каналы (edge/beta/candidate/stable) используете или планируете использовать?

Мы используем stable для релизов проекта и edge для ночных сборок.

Есть ли ещё ПО, которые вы разрабатываете и хотите представить в виде snap?

Не сейчас, но если когда-либо буду публиковать кроссплатформенный инструмент, то обязательно буду использовать snap и Store.

Как вы думаете, snap пакет KeePassXC улучшает жизнь пользователям? Вы получали отзывы?

Наши пользователи могут легко найти, скачать и начать использовать нашу программу за считанные секунды из Snap Store. Snap устраняет кошмар зависимостей различных Linux дистрибутивов. Пользователи легко найдут нас на GitHub и оформят отзыв о своём опыте использования. Большинство проблем были связаны с внешним видом, plugs и горячими клавишами.

Как бы вы улучшили snap?

Сначала я бы упростил навигацию по разделу разработчика в Store. В настоящее время он слегка запутан.

Что касается самих snap, то я хотел бы, чтобы они были похожи на контейнеры Docker с его динамическими слоями, которые можно комбинировать для достижения финального продукта. Например, наше приложение использует Qt5, который раздувает итоговый размер до 70 Мб. Вместо этого, Qt5 бинарники должны быть представлены в независимом snap пакете, который диамически загружается с нашим ПО. Это резко сократит итоговый размер, время сборки и т.д.

Комментарий от разработчика Canonical: Описанное уже реализовано как интерфейс content.

Нужно уменьшить количество plugs, которые требуют ручного соединения (connect). Было бы круто, если у пользователя был GUI для включения plugs с определёнными snap.

У нас была возможность попробовать создавать snap пакеты из нашего кода на GitHub с помощью build.snapcraft.io и, похоже, это идеальный ответ на то, чтобы не оставать от создания и развёртывания snap в Store. Единственный недостаток, который я обнаружил, заключался в том, что было невозможно ограничить сборку только ветками master и develop. В нашем активном проекте с кучей веток (branches) ~20 штук это приводило к сборке никому не нужного.

Комментарий от разработчика Canonical: Отличный фидбэк! build.snapcraft.io активно развивается и данную ситуацию обязательно рассмотрят и исправят.

Дополнительные материалы:
MySQL в snap пакете.
Интервью с разработчиком Krita.
Интервью с разработчиком Rocket.Chat.

Дата последней правки: 2018-08-16 21:12:55

RSS vasilisc.com   


Разделы

Главная
Новости
Ворох бумаг
Видео Linux
Игры в Linux
Безопасность
Статьи об Astra Linux
Статьи о FreeBSD
Статьи об Ubuntu
Статьи о Snappy
Статьи об Ubuntu Phone
Статьи о Kubuntu
Статьи о Xubuntu
Статьи о Lubuntu
Статьи об Open Source
Карта сайта