Компания Canonical раскрыла планы по предстоящей значительной переработке инструментария Snapcraft, применяемого для формирования, распространения и обновления самодостаточных пакетов в формате Snap. Отмечается, что текущая кодовая база Snapcraft признана устаревшей (legacy) и будет применяться при необходимости использования старых технологий. Развиваемые радикальные изменения не повлияют на текущую модель использования - в проектах, связанных с Ubuntu Core 18 и 20, продолжит использоваться старый монолитный Snapcraft, а новый модульный Snapcraft начнёт применяться начиная с ветки Ubuntu Core 22.
На смену старому Snapcraft придёт новый более компактный и модульный вариант, который упростит создание snap-пакетов разработчиками и избавит от трудностей, связанных с созданием переносимых пакетов, пригодных для работы в разных дистрибутивах. Основой для нового Snapcraft выступает механизм Craft Parts, позволяющий при сборке пакетов получать данных из разных источников, обрабатывать их разными путями и формировать иерархию каталогов в ФС, пригодную для развёртывания пакетов. Craft Parts подразумевает использование в проекте переносимых компонентов, который могут быть независимо друг от друга загружены, собраны и установлены.
Выбор новой или старой реализации Snapcraft будет осуществляться через специальный fallback-механизм, интегрированный в сборочный процесс. Таким образом, существующие проекты смогут собирать snap-пакеты без изменений и потребуют модификации только при переводе пакетов на новую версию базой системы Ubuntu Core.
На смену старому Snapcraft придёт новый более компактный и модульный вариант, который упростит создание snap-пакетов разработчиками и избавит от трудностей, связанных с созданием переносимых пакетов, пригодных для работы в разных дистрибутивах. Основой для нового Snapcraft выступает механизм Craft Parts, позволяющий при сборке пакетов получать данных из разных источников, обрабатывать их разными путями и формировать иерархию каталогов в ФС, пригодную для развёртывания пакетов. Craft Parts подразумевает использование в проекте переносимых компонентов, который могут быть независимо друг от друга загружены, собраны и установлены.
Выбор новой или старой реализации Snapcraft будет осуществляться через специальный fallback-механизм, интегрированный в сборочный процесс. Таким образом, существующие проекты смогут собирать snap-пакеты без изменений и потребуют модификации только при переводе пакетов на новую версию базой системы Ubuntu Core.