Что такое Sisyphus?

Материал из ALT Linux Wiki
Edit-cut.svg
Улучшение этой статьи обсуждается на метастранице

Введение

Sisyphus (Сизиф) — это разрабатываемый ALT Linux Team проект, целью которого является развитие репозитория свободного ПО для удобной разработки на его основе дистрибутивов и других решений.

Проект Sisyphus включает следующие компоненты:

  • собственно репозиторий ПО (rpm- и src.rpm-пакеты);
  • инструментарий для подготовки и тестирования программных пакетов (hasher, gear, git; sisyphus_check, qa-robot, repocop; etc);
  • инструментарий обеспечения целостности репозитория (apt);
  • инструментарий для разработки конечных решений и, в частности, дистрибутивов (mkimage, Alterator, Installer).

В настоящий момент Sisyphus доступен для архитектур x86, x86_64, aarch64, armh, RISC-V, MIPS, Эльбрус (e2kv3, e2kv4) и ведется работа по портированию на другие платформы.

Назначение Sisyphus

Sisyphus прежде всего предназначен для использования в качестве основы для разработки продуктов/решений для конечных пользователей:

  • разработка дистрибутивов общего назначения (например, ALT Server, ALT Workstation);
  • разработка специализированных дистрибутивов (OEM решения, ALT СП, ИВК Кольчуга и другие);
  • разработка дополнений к существующим дистрибутивам;
  • разработка решений для использования на виртуальных машинах (например, шаблоны OpenVZ, docker и т.д.).

Пожалуй, самым распространённым вариантом на сегодня является создание компанией «Базальт СПО» линейки дистрибутивов ALT .

Чем не является Sisyphus

Достаточно важно понимать, чем Sisyphus точно не является, чтобы по ошибке не создать себе больших проблем.

  • Sisyphus не является самостоятельным дистрибутивом. Несмотря на наличие регулярных сборок.
  • Sisyphus не является обновлениями для дистрибутивов. Для этого есть updates бранчи.
  • Sisyphus не является дополнением к дистрибутивам. Для этого есть backports бранчи.
  • Sisyphus не является стабильным решением для применения в mission critical задачах. Для этого есть дистрибутивы.

Кому и зачем нужен Sisyphus

Косвенные варианты пока не рассматриваем, но они тоже есть.

Разработчикам решений на базе Linux

Sisyphus можно использовать в качестве основы для создания собственных решений — репозиториев, дистрибутивов и т. д.

Используя Sisyphus, разработчик получает в своё распоряжение большую базу подготовленных и в достаточной мере протестированных пакетов и набор полезных инструментов (hasher, gear, mkimage, etc), существенно сокращающих время на создание готового решения.

Достаточно логичным вариантом оказывается участие таких разработчиков в ALT Linux Team, что позволяет более активно влиять на направление развития проекта Sisyphus и, как следствие, получающихся на его основе продуктов. Таким образом можно существенно сократить затраты (временные, финансовые, человеческие) на создание конечного решения.

Продвинутым пользователям

Если пользователь не входит в Team, то ему Sisyphus может быть полезен в следующих случаях:

  • Можно взять отдельные пакеты, которые отсутствуют или устарели в дистрибутиве. Только сперва рекомендуется хорошо подумать, потом проверить отсутствие в backports, а уж потом брать (и то обычно лучше src.rpm, каковой и бэкпортить сборкой в бинарном окружении целевого дистрибутива).
  • Можно почувствовать себя «в струе», на своей шкуре ощущая, как развивается свободный софт и какие новшества (включая грабли) светят в ближайших релизах :-)

Зачем участвовать в работе над Sisyphus

Участие в разработке Sisyphus дает возможность непосредственно влиять на вектор развития проекта и производных от него решений. Как следствие, возможность получить более качественный продукт и/или снизить затраты на разработку своих решений. Например, можно опубликовать сборку необходимого пакета и получить в ближайшем стабильном дистрибутиве этот пакет «из коробки».

Как разрабатывается Sisyphus

См. основную страницу и далее по разделам.

Основные инструменты для подготовки пакетов

Нормативные документы (полиси)

Чтобы обеспечить некоторую упорядоченность в развитии проекта, существует ряд нормативных документов, регламентирующих различные (чаще технологические) аспекты разработки.

Как присоединиться к разработке Sisyphus

Для присоединения к разработке Sisyphus достаточно пройти процедуру вступления в ALT Linux Team.

Процедура состоит из идентификации кандидата — регистрации GPG и ssh-ключей, и проверки уровня технической подготовки — тестового задания, обычно состоящего из сборки пакета по правилам Sisyphus.

Тестовое задание может варьироваться для разных кандидатов: желающих заниматься преимущественно поддержанием пакетов в репозитории, документированием, дизайном, тестированием и т. д.

Взаимосвязь Сизифа с другими сущностями

Так как Sisyphus является не сферическим конём в вакууме, а прежде всего инструментарием, то должны быть связи между ним, его потребителями и конечными продуктами/решениями.

Sisyphus и ALT Linux Team

Разработкой проекта Sisyphus занимается независимая команда ALT Linux Team. Sisyphus является главным продуктом, создаваемым командой.

Sisyphus и компания «Базальт СПО»‎

‎Разработка Sisyphus происходит при заметной поддержке (технической, организационной и т. д.) со стороны компании «Базальт СПО»‎. Собственно, большая часть сотрудников компании также является участниками ALT Linux Team и занимается разработкой Sisyphus.

Sisyphus и дистрибутивы ALT Linux

Компания «Базальт СПО», среди прочего, выпускает дистрибутивы операционной системы Linux, которые создаются на основе стабильных срезов репозитория Sisyphus.

Процесс превращения нестабильного Сизифа в стабильный дистрибутив приблизительно описывается такой схемой:

Постоянно меняющийся Sisyphus  ⇒ стабилизация Sisyphus  ⇒ создание стабильной ветки  ⇒ готовый дистрибутив (или линейка)

Решения других разработчиков

На базе Sisyphus построено некоторое количество публично доступных сторонних решений:

  • Дистрибутив для терминальных серверов ALT Linux Terminal;
  • Решение для IP-АТС — SeirosPBX;
  • Прошивка для маршрутизаторов — RAD Linux;
  • Наверняка есть и другие.

Лирические мнения

> Однако и на Sisyphus можно прекрасно работать, просто риск кривых обновлений
> гораздо выше. Если обновляться редко, то разницы по большому счёту нет.
Нет! Сизифа надо бояться, он все сломает. Это было официальное сообщение.

— aen@


Сизиф не надо бояться или только уважать. Нужно принять как факт то, что где-то существуют заводы, на которых плавят руду и льют металл, чтобы потом из него сделать необходимые детали и уже из них товары народного потребления. Нужно ли бояться заводов и работяг, каждый день рискующих сгореть в домне? Вряд ли. В цеху может кто-то и матерком покрыть, особенно если тот, кого кроют, не соблюдает технику безопасности. В процессе отлива могут быть и опасные этапы, когда лучше и не подходить близко. Так и здесь, только жизнь этих работяг и подходы «к станку» у всех на виду.

Если относиться к доступной всем внутренней жизни цеха с пониманием и твёрдо оценивать собственные возможности, то пользоваться Сизифом можно. Но между «можно» и «нужно» — бездна, которая должна быть заполнена собственной мыслительной деятельностью, с учётом собственной ситуации и потенциальных результатов.

Не надо только делать из нормального трудового процесса жупел или символ чего-либо.

— ab@


Перейти на Sisyphus стоит, если:

  • вы знаете, что вы делаете.
  • вы умеете исправлять то, что вы не знаете, что делает
  • вы программист
  • у вас есть достаточно времени, чтобы исправлять то, что вы не знаете, что делает
  • ваше желание участвовать в разработке настолько велико, что перевешивает все остальные пункты

— rider@

Миф о Сизифе

Sisyphus (Сизиф) — персонаж греческой мифологии. Миф о Сизифе, который непрерывно катил в гору камни, символизирует постоянный труд команды по усовершенствованию решений, заложенных в репозиторий. Миф можно найти в любой соответствующей книжке, а для начинающих рекомендуем А. Куна. «Миф о Сизифе» — философское эссе Альбера Камю.

— На миф о Сизифе ссылалось объявление проекта в 2000 году; ссылается и документация времён Пятой платформы; некоторые участники проекта, впрочем, возражали (считая это эссе Камю демагогией).