Перейти к основному содержимому

Stapler v0.1.0

· 4 мин. чтения

Выпущена версия Stapler v0.1.0 — первый релиз в серии v0.1.x. В этой версии переработана схема хранения репозиториев, добавлена поддержка подписанных коммитов и метаданных AppStream, а SFE-249 стал поведением по умолчанию.

Коротко (tl;dr)

  • Новая многоуровневая схема хранения репозиториев
  • Поддержка проверки GPG-подписей коммитов в репозитории
  • AppStream-метаданные теперь парсятся и доступны в stplr info и stplr search
  • Поля compatible_with и incompatible_with для управления совместимостью пакетов по дистрибутивам
  • stplr info --json для программного доступа к информации о пакете
  • SFE-249: новый распаковщик с поддержкой 40+ форматов — теперь поведение по умолчанию
  • Улучшено отображение в светлых темах терминала

Что нового

Новая схема хранения репозиториев

Конфигурация репозиториев теперь разделена на три слоя:

  • /usr/lib/stplr/repos.d/ — системные репозитории, поставляемые пакетами ОС (только чтение)
  • /etc/stplr/repos.d/ — пользовательские репозитории (управляются командами repo add, repo rm, repo import)
  • /etc/stplr/repo-overrides.d/ — переопределения пользователя (создаются командами set-disabled, set-url, set-ref)

Это позволяет пакетам ОС поставлять преднастроенные репозитории, которые пользователь может изменять (отключать, менять URL) без риска потерять настройки при обновлении пакета.

Новая команда stplr repo clear-overrides <имя> сбрасывает все переопределения репозитория к базовой конфигурации.

Если в /etc/stplr/stplr.toml ещё есть записи [[repo]], выполните миграцию:

stplr migrate

Подробнее в документации.

Поддержка подписанных коммитов в Stapler-репозиториях

Репозитории теперь могут требовать проверку GPG-подписей коммитов. Если подпись коммита невалидна или отсутствует — репозиторий не обновится, что значительно повышает безопасность.

Настраивается автором репозитория в stapler-repo.toml:

[repo]
require_signed_commits = true
trusted_keys = ["-----BEGIN PGP PUBLIC KEY BLOCK-----\n..."]

Если нужно отключить проверку подписей на стороне пользователя:

stplr repo set-require-signed <имя> false

Подробнее в документации.

Совместимость пакетов с дистрибутивами

В Staplerfile появились два новых поля:

  • compatible_with — список дистрибутивов, на которых пакет может быть установлен.
  • incompatible_with — список дистрибутивов, на которых пакет не может быть установлен.

Удобно для пакетов, которые заведомо не работают на определённых дистрибутивах — такие пакеты просто не появятся у пользователей с несовместимыми платформами.

Подробнее в документации.

Парсинг AppStream-метаданных

Ранее Stapler хранил только значение appstream_app_id, не читая сам metainfo-файл. Теперь при наличии <appstream_app_id>.metainfo.xml или <appstream_app_id>.appdata.xml в каталоге сборочного скрипта Stapler парсит его содержимое. Данные компонента (название, описание, скриншоты и др.) становятся доступны в выводе stplr info и фильтрах stplr search.

stplr info --json

Команда stplr info теперь поддерживает флаг --json (помимо --format) для получения информации о пакете в машиночитаемом формате:

stplr info stplr --json
stplr info foo bar --json

[SFE-249] Новый распаковщик теперь по умолчанию

Начиная с этой версии, SFE-249 — новый распаковщик для sources — стал поведением по умолчанию. Он поддерживает более 40 форматов, включая .rpm, .deb, .7z, .iso, .zst и многие другие.

Если вы уже включали эксперимент в Staplerfile, строку sfe_249_new_extractor=1 можно удалить.

Обновлённый интерфейс

Интерактивные формы переписаны на charmbracelet/huh. Обновлены цвета элементов — интерфейс теперь корректно отображается как на тёмных, так и на светлых темах терминала.


Схема версионирования

С версии v0.1.0 проект следует семантическому версионированию: новые возможности выходят в минорных релизах (0.x), исправления — в патчах (0.x.y). Стабильность API до 1.0.0 не гарантируется.

⚠️ Важные изменения

  • Конфигурационная опция pagerStyle удалена
  • Формат [[repo]] в stplr.toml устарел: репозитории теперь хранятся в отдельных файлах в /etc/stplr/repos.d/. Используйте stplr migrate для переноса
  • SFE-249 теперь включён по умолчанию — убедитесь, что ваши Staplerfile по-прежнему работают корректно