Обнародование Canonical в последнее время ваши планы у вас есть на следующий основная версия инструментария Snapcraft, который используется для создания, распространения и обновления популярного формата пакетов Snap.
Следует отметить, что текущая кодовая база Snapcraft был объявлен унаследованным и будет применяться при необходимости использовать старые технологии.
В своем объявлении он упоминает, что от резких изменений которые планируется выполнить и из которых некоторые из них уже выполняются, не повлияют на текущую модель использования, поскольку проекты, связанные с Ubuntu Core 18 и 20, будут продолжать использовать старую монолитную модель Snapcraft.
Кроме того, они упоминают, что новую модульную модель Snapcraft планируется начать применять с ветки Ubuntu Core 22.
На самом деле все гораздо сложнее и со временем становится все сложнее. В течение последних шести лет команда Snapcraft работала над тем, чтобы сделать свой основной продукт модульным, эффективным и полезным для разработчиков Snap, расширяя его функциональность и добавляя новые возможности с течением времени. В некотором смысле, это полноценный продукт, который хорошо выполняет свою задачу. Но есть способы сделать все еще лучше. В этой статье рассматривается будущее Snapcraft.
Что касается причин, по которым он предназначен для замены старого Snapcraft, то это потому, чтоe хочет предложить новый, более компактный и модульный вариант что облегчит разработчикам создание пакетов Snap, добавив к этому, что они также хотят раз и навсегда избавиться от хлопот, связанных с созданием переносимых пакетов, которые работают во всех дистрибутивах.
В основе нового Snapcraft лежит механизм Craft Parts, упоминается, что помимо возможности сборки пакетов, он также сможет получать данные из разных источников, обрабатывать их по-разному и формировать иерархию каталогов в ФС, подходит для реализации пакетов.
Craft Parts предполагает использование в проекте портативных компонентов, которые можно скачать, собрать и установить самостоятельно.
Основная концепция вращается вокруг разделения Snapcraft на более мелкие, еще более модульные и многоразовые компоненты, которые можно использовать в различных продуктах. Общей основой для этих усилий является набор библиотек Craft, как мы уже обсуждали в блоге Craft Parts. Теория требует использования универсального генератора деталей, основанного на поставщиках ремесленных и ремесленных деталей, с добавленной функциональностью Snapcraft в качестве отдельного уровня. Вопрос только в том, какова скорость полета ласточки? Насколько сложно было бы спроектировать и реализовать это?
Прямо перед праздничным сезоном команда Snapcraft решила ответить именно на этот вопрос и изучить степень модульности своего подхода.
Выбор новой реализации или старый снапкрафт будет осуществляться через специальный встроенный механизм резервного копирования в процессе строительства. Поэтому существующие проекты смогут создавать Snap-пакеты без изменений и потребуют модификаций только при переносе пакетов на новую версию системной базы Ubuntu Core.
Что касается работы, которая уже была проделана, то очень кратко о ней:
- Текущая кодовая база Snapcraft теперь считается устаревшей.
- Основная точка входа для этого пакета запускается, когда требуется устаревшая резервная копия Snapcraft.
- Устаревший Snapcraft хранит данные конфигурации проекта в виде словаря.
- Это было изменено для использования пидантической модели. Кроме того, схему JSON необходимо хранить отдельно.
- Был создан простой прототип с использованием базы core22 (образ для разработки), в результате чего был получен устанавливаемый мгновенный пакет, содержащий тестовое приложение.
В конце концов если вам интересно узнать об этом больше О заметке вы можете проверить оригинальное объявление в по следующей ссылке.