Новый курс дистрибутива Solus

Год для разработчиков дистрибутива Solus выдался, мягко говоря, не самый удачный. Случайная поломка надолго выбила их из колеи, и многие уже не верили, что дистрибутив выкарабкается из той ямы, в которую угодил в начале 2023-го. Но процесс, судя по всему, наконец-то сдвинулся с мёртвой точки: в команду вернулись старые разработчики, покинувшие проект ещё несколько лет назад, и теперь команда Solus, видимо, объединится с командой Serpent OS. Хотелось бы верить, что объединение это пройдёт гладко, а переход на следующую версию ОС не вызовет особых сложностей.

Новый курс Solus

Для команды Solus последние несколько месяцев были весьма сложными. После долгих обсуждений с бывшими и нынешними участниками проекта мы наметили новый долгосрочный курс. Первые результаты вы заметите совсем скоро. Мы уже развернули новую, более устойчивую инфраструктуру и изменили структуру управления проектом.

Что уже сделано?

Инфраструктура и текущее состояние

Раньше вся инфраструктура Solus располагалась в стенах Рочестерского технологического института (RIT). Физический доступ к серверу был лишь у одного члена команды. Когда 17 января 2023-го в работе оборудования возникли непредвиденные проблемы, сбой привёл к полному отключению почти всех онлайн-сервисов Solus. Решение возникших проблем затянулось на три месяца, что повлияло и на возможность своевременно обновлять софт. Форум проекта также был недоступен, хотя официальный сайт Solus возобновил работу ещё 27 февраля. На фоне столь длительного простоя мы потеряли часть пакетов на нашем git сервере, на котором хостился наш Phabricator.

Мы пытались перенести инфраструктуру проекта на серверы сторонних провайдеров, но усилия не увенчались успехом. Параллельно многие члены команды пытались отвечать на возникшие у сообщества вопросы, однако ответов на многие из них не было даже у нас.

Вскоре свою помощь предложил основатель Solus Айки Доэрти, ныне работающий над независимым дистрибутивом Serpent OS. Айки предложил разместить сайт Solus на сервере Serpent OS и использовать его для сборки ISO-образов. Активные участники команды Solus приняли предложение. Мы объединили усилия обеих команд и теперь пытаемся минимизировать потери.

В начале апреля мы пришли к консенсусу в отношении новой структуры проекта и планов на ближайшее и отдалённое будущее. Работа по восстановлению инфраструктуры, а главное – доверия со стороны сообщества уже началась.

Сейчас мы находимся в процессе «переезда» в облако. Хостинг в DigitalOcean и Hetzner снизит потребность в физическом доступе, а виртуальный доступ к серверу будет у нескольких членов команды Solus. Мы учли прежние ошибки и теперь внедряем в управление проектом инструменты DevOps и terraform. А для безопасного обмена учётными данными мы теперь используем Bitwarden Teams.

Благодаря этим изменениям участники проекта теперь могут проводить синхронизацию пакетов независимо друг от друга (раньше начать синхронизацию мог лишь один человек).


Новый курс

Снова отправляясь в путь, было бы неплохо оглянуться назад и учесть предыдущий опыт. У нас были успехи, но были и неудачи. Многие вещи мы делали неправильно. Некоторые наши идеи не сработали или не оправдали наших и ваших ожиданий.

Теперь наша первоочередная задача состоит в том, чтобы изменить наш взгляд на то, как должно выглядеть управление командой. Пора расширить круг ответственности и открыто говорить о том, что происходит с дистрибутивом. И с философской точки зрения мы возвращаемся к истокам, к тому, чем Solus был изначально. И тут важно обрисовать сильные стороны Solus в период его расцвета.

Изначальные идеи Solus

Изначально сообщество играло более важную роль в разработке дистрибутива. Solus – независимая операционная система, и какое-то время нам удавалось оставаться в авангарде разработок Linux для настольных ПК. Solus был удобной, быстрой и хорошо продуманной системой, технологичной, но в тоже время элегантной.

Инновационные серверные решения в сочетании с простыми и понятными простым пользователям инструментами обеспечили Solus ощутимое преимущество на фоне тогдашних его конкурентов.

Руководство проектом и организационная структура

Структура проекта никогда не подразумевала совместного управления доменами или организации в отдельные группы, которые могли бы независимо друг от друга работать над самостоятельными проектами. Всё сводилось к разделению на Core Team и Global Maintainers. Большую часть административной работы брала на себя основная команда, она же отвечала за общее направление развития системы, в то время как на плечи сопровождающих легла нелёгкая ноша обновления и поддержки множества пакетов и нескольких рабочих окружений. Полномочия мейнтейнеров были ограничены отдельными стеками, за рамки которых они при всём желании выйти не могли.

И, если мы хотим, чтобы Solus и дальше эволюционировал, нам придётся полностью пересмотреть подход к структуре проекта и лидерству внутри команды.

Теперь мы считаем, что сумма целого всегда больше, чем его составные части. Нам бы хотелось, чтобы структура проекта стала более «горизонтальной» и чтобы у сообщества была возможность принять участие в разработке дистрибутива. Мы знаем, многие пользователи хотели помочь. Это ваш шанс внести свой вклад в развитие Solus и пройти этот путь вместе с нами.

Разумеется, со временем структура любого проекта должна меняться под влиянием внешних факторов, но пока нам кажется, что мы нашли оптимальное решение, благодаря которому сумеем наконец-то сдвинуться с мёртвой точки. Теперь в каждой команде будет не менее трёх человек, что существенно снизит человеческий фактор.

Технический руководящий комитет

Эта группа отвечает за общее видение развития дистрибутива и исследования. Её цель – помочь Solus оставаться актуальной системой в постоянно меняющемся мире новых технологий. Мы постараемся прислушиваться к мнению сообщества и других заинтересованных сторон.

На момент публикации в эту группу входят Айки Доэрти, Джошуа Стробл, Джоуи Ричес, Райли Броган и Рун Морлинг (ermo).

Инфраструктура и оперативная деятельность

Эта группа несёт ответственность за обслуживание инфраструктуры и её всестороннюю поддержку. Она же отвечает за закупку оборудования и внедрения новых методов разработки и хранения данных. Мы хотим, чтобы всё, что уже доступно, обновлялось и дальше, без «срока годности».

На момент публикации в эту группу входят Айки Доэрти, Джош Стробл, Джоуи Ричес, Рейли Броган, Рун Морлинг (ermo) и Филипп Трулсон.

Сообщество и коммуникации

Эта группа будет отвечать за взаимодействие с сообществом и другими линуксоидами. В их ведении опросы, публикации в блогах, тематические новости, интервью, управление социальными сетями и торговыми марками, запись подкастов и работа с форумом.

На момент публикации в группу входят Джош Стробл, Джоуи Ричес, Рейли Броган, Томас Стаудингер (Staudey), Трейси Кларк и Алжент Альбрахими.

Сопровождение стека

Эта группа занимается обслуживанием критически важных частей программного стека. Их обязанности варьируются от набора инструментов и ядер до популярных приложений и сред рабочего стола.

На момент публикации в эту группу входят вообще все активные участники проекта: Айки Доэрти, Джош Стробл, Джо Ричес, Рейли Броган, Алжент Альбрахими, Томас Стаудингер (Staudey) и Зай Бэкон.

Сопровождающие пакетов

Эта группа отвечает за поддержку и обновление пакетов, которые не входят в состав ПО, проставляемого вместе с операционной системой, но всё же важны для её нормального функционирования.

На момент публикации вступить в группу может любой желающий. Если хотите помочь, мы только рады. И так будет всегда!

Веб-разработка

Эта группа отвечает за поддержку и развитие веб-ресурсов проекта. На момент публикации в эту группу входят Джошуа Стробл и Айки Доэрти. И помощь нам бы не помешала. Если знаете Node.js, React, TypeScript, Docusaurus и Next.js, милости просим.


Прозрачность и коммуникации

Раньше прежде, чем использовать общедоступные каналы связи – Mastodon, Twitter, Reddit, форум и т. д., участником проекта приходилось координировать свои действия с одним человеком. В случае с Mastodon это привело к тому, что мы вообще перестали им пользоваться.

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

Сопровождающие стека, к примеру, смогут заранее предупредить о грядущих изменениях, а у пользователей будет возможность высказать свои впечатления о проделанной работе. Мы надеемся, это привлечёт новых участников.

Постараемся чаще писать что-то в блог. Со временем тут появятся тематические разделы, которые будут вести активные участники команды.

Для повседневного общения мы решили создать отдельное пространство в Matrix. Протокол Matrix существенно превосходит IRC: он удобнее и проще. Он поддерживает историю сообщений, работу с ботами, видеозвонки, которые можно использовать для проведения стримов и мероприятий, и т. д.


Solus 4.x

В краткосрочной перспективе основное внимание будет уделено выпуску новых ISO-образов с обновлёнными LTS и Current ядрами, новыми версиями рабочих окружений и т. д. Это позволит вам снова устанавливать Solus на новейшее оборудование.

Что касается функционала, сейчас мы сосредоточены на упрощении жизни разработчиков и упаковщиков. Дискуссии о текущих рабочих процессах и возможности их изменения пока продолжаются.

Поскольку в скором времени мы сосредоточимся на следующей версии Solus, в ближайшие недели мы намерены оценить текущие пользовательские инструменты и разработать индивидуальный план для каждого из них:

  • DoFlicky
  • интеграция Steam
  • установщик
  • центр приложений

Solus 5 и далее по курсу

Чтобы вернуть дистрибутиву лидирующие позиции и обеспечить невероятный опыт работы в экосистеме Linux, важно понять, какое место занимает его текущая версия.

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

Текущий формат пакетов с этими целями сочетается слабо, и, скорее всего, предстоит немало работы прежде, чем такой подход станет возможным. Однако для Solus есть и более простой путь – переход на Serpent OS.


Переход на Serpent OS

Serpent OS – независимая операционная система на базе Linux, полностью написанная с нуля. Проект легко масштабируется за счёт интеграции современных методов разработки.

Диспетчер пакетов moss имитирует уже привычный вам eopkg, добавляя в него щепотку кельтской магии. Serpent OS объединяет традиционный подход с новыми технологиями: автономные откаты изменений и атомарные обновления, неизменность системы и роллинг-релизные обновления.

Формат stone.yml из Serpent OS основан на package.yml из Solus, так что нынешние участники команды легко разберутся в новой для них системе.

Как разрабатывается Serpent OS?

За разработку Serpent OS отвечают бывшие участники команды Solus. Многих из них вы уже знаете. Исходный код открыт, и вы уже сейчас можете следить за процессом разработки.

Насколько далеко продвинулась разработка?

Пока это лишь прототип, с полностью функционирующей инфраструктурой и ISO-образами. Serpent OS не в том состоянии, чтобы рекомендовать её простым пользователям, да и в качестве основной системы её лучше пока не использовать. Но уже сейчас в некоторых аспектах дистрибутив опережает Solus:

  • ypkg3 и solbuild (система сборки) заменены на boulder
  • sol (формат, который должен был прийти на смену eopkg) заменён на moss
  • solhub (хаб разработки) заменён на summit и GitHub
  • Ferryd (менеджер репозиториев бинарных пакетов) заменён на vessel

Чем Serpent OS полезен для Solus и наоборот?

Основное внимание команды Serpent OS сосредоточено на создании масштабируемого набора средств разработки. И нам кажется, что эти наработки в будущем пригодятся и Solus, поскольку Solus стремится стать массовой операционной системой с тщательно протестированными обновлениями софта.

А повседневные потребности, связанные с разработкой Solus, в свою очередь помогут определить приоритеты развития Serpent OS и помогут протестировать новые инструменты в «боевых» условиях.

Solus V – гибкая, надёжная и производительная система

Пока делать какие-либо прогнозы слишком рано, но, скорее всего, мы изучим возможность возможность перевода Solus на базу Serpent OS. Это бы полностью решило множество старых проблем и открыло нам новые горизонты.

  • Благодаря инструментам Serpent OS мы наконец-то смогли бы реализовать поддержку пользовательских репозиториев, тем самым дав пользователям возможность самостоятельно поддерживать необходимый им софт.
  • Solus мог бы стать так называемой «неизменяемой системой»: сама система была бы доступна только для чтения, а пользовательский софт запускался бы в изолированных контейнерах, что существенно повысило бы стабильность и безопасность дистрибутива.
  • Дистрибутив можно будет перенести и на другие (отличные от x86_64) архитектуры: AArch64, RISC V и т. д.

И всё это вполне сочетается с нашей целью – создать надёжную, отказоустойчивую роллинг-релизную операционную систему, однажды установив которую, вы будете получать обновления без каких-либо ограничений по времени.


Заключение

Переезд на новые серверы завершён. Предварительное тестирование подходит к концу. Записи DNS уже обновляются. Совсем скоро инфраструктура Solus будет полностью восстановлена.

Нам предстоит долгий путь, уникальное путешествие как для пользователей, так и для разработчиков. Идеи, которые когда-то собрали нас в одну команду, наконец-то воплощаются в жизнь.

Мы рады приветствовать вас на борту нашего фрегата. Вместе мы откроем новые горизонты и вернём Solus былое величие.

Джошуа Стробл,
DevOps и коммуникации,
обновлённая команда Solus
18 апреля 2023

Comment