LXF149:Внутри Ubuntu
|
|
|
- Джоно Бэкон, менеджер сообщества Ubuntu, провел нас за кулисы.
Canonical – большая компания, и в ней работают разные команды. За сборку Ubuntu отвечает команда Ubuntu Engineering. Ею руководит Рик Спенсер [Rick Spencer], технический директор Ubuntu. Она подразделяется на группы:
- Kernel — Ядро (Пит Грэнер [Pete Graner])
- Гарантирует, что оборудование будет «просто работать».
- Desktop — Рабочий стол (Джейсон Уорнер [Jason Warner])
- Заведует X.org, Unity, LibreOffice, Gnome, Firefox и многим другим.
- Foundation — Основы (Стив Лангасек [Steve Langasek])
- Работает над связью ядра и рабочего стола, например, над инструментарием.
- Server — Сервер (Робби Вильямсон [Robbie Williamson])
- Уделяет внимание облачным компонентам Ubuntu, разным типам рабочей нагрузки, Ensemble и так далее.
- Community — Сообщество (Джоно Бэкон [Jono Bacon])
- Работает над ростом сообщества Ubuntu, вырабатывает передовую практику и руководство и управляет масштабом, узкими местами и инициативами сообщества.
- Security — Безопасность (Джеми Стрэндбодж [Jamie Strandboge])
- Ищет проблемы безопасности в новой и старых версиях и выпускает исправления для пользователей Ubuntu.
Все эти подразделения в целом поддерживаются архитектором системы Эллисон Рэндал [Allison Randal] и менеджером релиза Кейт Стюарт [Kate Stewart].
Каждые шесть месяцев мы выпускаем новую версию Ubuntu, объединяющую усилия сотен разработчиков, переводчиков, тестеров и авторов документации, чтобы получились самые новые и свежие приложения, а также новые и пионерские технологии Ubuntu.
Сборка и выпуск новой операционной системы каждые шесть месяцев – это геморрой. Сущий геморрой. Тем не менее, с 2004 года, когда мы основали проект, мы стремились при создании Ubuntu брать самое лучшее от его участников, для гарантии, что каждый релиз настолько хорош, насколько это возможно.
В нашей статье рассказывается, как работает сей организованный хаос, чтобы дать представление о том, как Ubuntu собирается воедино.
Все работы умещены в строгий цикл релиза, проходящий ряд важных вех, которые всегда выставляются в открытый доступ (текущая расположена на https://wiki.ubuntu.com/ OneiricReleaseSchedule). Давайте сперва рассмотрим начало нового цикла.
Содержание |
Закинем невод
Прежде чем приступать к новому релизу, одновременно с легкой отделкой предыдущей версии, мы начинаем упражнение по сбору требований.
Для желающих вступить в сообщество Ubuntu есть два главных ресурса: IRC и почтовая рассылка.
- IRC
Сообщество Ubuntu интенсивно пользуется Internet Relay Chat (IRC) в сети Freenode, и вот некоторые из главных каналов, к которым следует присоединиться:
- #ubuntu-devel
- Главный канал разработчиков.
- #ubuntu-locoteams
- Группы пользователей Ubuntu.
- #ubuntu-classroom
- Еженедельные обучающие занятия и тренинги.
- #ubuntu-community-team
- Обсуждение роста сообщества.
- #ubuntu-server
- Обсуждение, касающееся сервера.
- #ubuntu-ensemble
- Развертывание облака, связанного с Ensemble, и технология его управлением.
- #ubuntu-doc
- Команда документации.
- #ubuntu-women
- Как сделать Ubuntu безопасным и дружелюбным.
- #ubuntu-news
- Что нового в сообществе.
- Почтовые рассылки
Списки почтовой рассылки – ключевая часть обсуждений и споров сообщества о новых идеях и функциях. Вот главные рассылки:
- ubuntu-devel
- Главная рассылка разработчиков (доступная признанным разработчикам).
- ubuntu-devel-discuss
- Открытая для всех рассылка о разработке.
- loco-contacts
- Обсуждение местных пользовательских групп Ubuntu.
- ubuntu-desktop
- Обсуждения рабочего стола.
- ubuntu-server
- Посвящена серверу и всему, что связано с облаками.
Полный список почтовых рассылок Ubuntu ищите на https://lists.ubuntu.com.
Команды Canonical обращаются к разным заинтересованным сторонам и к сообществу, чтобы узнать, на чем сосредоточиться в следующем релизе. Какие новые функции нужны в Ubuntu? Какие ошибки ждут исправления? Какие варианты использования поддерживать? В итоге появляется огромный список требований, и мы сортируем их по приоритетным областям. Заодно мы согласовываем структуру следующего Ubuntu Developer Summit [Слета разработчиков Ubuntu]. Это событие происходит за несколько недель до старта каждого нового цикла релизов. Мы посылаем на слет почти всех инженеров Ubuntu из Canonical и спонсируем ключевых членов сообщества, чтобы они тоже смогли принять участие. Событие является открытым, в нем участвуют многие представители бизнеса.
На Ubuntu Developer Summit у нас есть 14 курсов по различным темам, и мы планируем открытые дискуссии по различным областям.
Цель каждой дискуссии – обсудить тему, создать и задокументировать решения и назначенные действия в публичных черновиках.
Таковыми являются web-страницы, используемые нами для слежения за работой по функциям, в открытом и прозрачном формате. Интерфейс для будущего релиза Ubuntu вы увидите на http://status.ubuntu.com.
Первая задача нового цикла – утвердить инструментарий, то есть базовый набор средств разработчика, используемый для сборки приложений для нового релиза.
Это тяжелая, грязная низкоуровневая работа делается в самом начале. Затем мы синхронизируем с инструментарием архив Debian Unstable и пересобираем все пакеты Debian с этим инструментарием, и в нашем репозитории Ubuntu для разработчиков появляется Debian Unstable.
После синхронизации разработчики Ubuntu начинают применять к этим пакетам сотни заплат Ubuntu, которые превращают Debian Unstable в Ubuntu. В этом пункте мы имеем версию Ubuntu для разработчиков, которая выглядит как последний релиз, однако собрана с новыми пакетами Debian и в нашем инструментарии. Теперь начинается настоящая работа.
Для желающих быть в курсе всего, что происходит в мире Ubuntu, есть несколько важных сайтов:
- http://planet.ubuntu.com Постоянно обновляемый набор записей в блогах участников Ubuntu.
- http://cloud.ubuntu.com Ежедневные новости про Ubuntu в общих, частных и личных облаках.
- http://www.ubuntu-news.org Место, где искать регулярные новости и обновления от проекта Ubuntu.
- http://www.omgubuntu.co.uk Это не официальный сайт, но он предоставляет своевременные обновления событий мира Ubuntu.
И наконец, если вам хочется копнуть поглубже и разузнать о текущем прогрессе отдельных функций или целях, поставленных следующим релизом Ubuntu, направьте свой браузер на сайт http://status.ubuntu.com.
Злоба дня
На протяжении следующих месяцев сообщество разработчиков трудится над функциями и задачами, согласованными на Ubuntu Developer Summit. Работа кипит: разработчики сортируют ошибки и расставляют им приоритеты, исправляют их, загружают исправления в архив. Разрабатываются новые функции, их тоже формируют в пакеты и загружают.
Каждый день, проснувшись, разработчики Ubuntu обновляют свою систему, чтобы та вобрала самые последние пакеты, а затем начинают работать над своими задачами или ошибками. Как правило, этот процесс включает просмотр списка текущих ошибок и ошибок с наибольшим приоритетом, и их устранение, и одновременную работу над целевыми функциями в релизе. Такая работа над функциями часто включает выделение самых правильных из множества, или написание кода для новых функций и встраивание их в релиз.
Важным участком является новая разработка, которая войдет в проект Ayatana в Unity: индикаторы и другий инновационные функции рабочего стола. Эта работа разбита на две команды: команда Design [Дизайн] разрабатывает функции, востребованные пользователями, а команда Desktop [Рабочий стол] пишет реализующий их код.
Регулярные релизы
Когда релиз команды Desktop Experience [Опыт от рабочего стола] готов, код высылается ребятам из Ubuntu Desktop Engineering, которые создают пакеты и загружают их в архив, где каждый может запустить и протестировать новый код. В каждом релизе мы настаиваем на получении нового релиза от команды Desktop Experience как минимум раз в неделю (обычно по четвергам). Этот еженедельный срок очень полезен для стойкого прогресса.
За этот период мы выпускаем версии Ubuntu от разработчиков, которые отдаются на тестирование сообществу; оно регистрирует ошибки и помогает улучшениям. Альфа 1 выходит вскоре после начала нового цикла и включает новые пакеты Debian, вместе с инновациями. Альфа 2 выходит по мере появления важных новых функций. Альфа 3 обычно выходит за несколько месяцев до окончательной Альфа и сразу перед Заморозкой Функций [Feature Freeze].
При Заморозке мы запираем релиз, так что новые функции уже не вводятся, и все рабочее время разработчики оттачивают уже имеющиеся. Это водораздел между периодом впихивания новых и непроверенных функций и периодом наведения лоска на те, что уже есть.
Проект Ubuntu очень открытый и прозрачный, и нам всегда было важно, чтобы лидеры могли помогать в формировании проекта и придании ему направления, а также в способе управления. Вот как работает система руководства.
На вершине сидят Совет сообщества [Community Council] и Технический совет [Technical Board]. Совет сообщества обеспечивает принятие решений, разрешение споров вокруг процессов в сообществе и вопросы политики. Примеры – как люди становятся Членами Ubuntu, как функционируют другие советы, обсуждение и анализ жалоб.
Технический совет руководит технической политикой проекта, хотя то, какие приложения и функции внести в релиз, решаем не мы (это делают разработчики Ubuntu). Примеры осуществляемого нами руководства – контроль над спорными технологиями вроде Mono, изменения в инструментарии и другие базовые решения.
На самой вершине находится Марк Шаттлворт [Mark Shuttleworth] – у него есть право вето, нужное для выхода из патовых ситуаций. Но им он пользуется редко, ведь члены совета обычно способны сами прийти к решению.
Ниже этих двух главных органов находятся советы, ориентированные на узкие области, которые занимаются Форумами, IRC и Ubuntu LoCo Teams (местные группы Ubuntu). Также есть комитет, который оценивает новые программы, предложенные разработчиками.
Важно то, что все и каждый приглашаются присоединиться к этим комитетам, не ограниченным персоналом Canonical; фактически во всех комитетах есть не-члены Canonical. Мы верим, что это жизненно важно для работы открытого и прозрачного сообщества.
Большая заморозка
Вскоре наступает Заморозка Пользовательского Интерфейса [User Interface Freeze], фиксирующая визуальные изменения: вариации тем, Unity и других визуальных компонентов.
Мы стремимся соблюдать данную заморозку, но стараемся, чтобы к этой дате все было завершено, и иногда дату приходится чуть сдвигать. Так или иначе, Заморозка Пользовательского Интерфейса переводит команду на путь улучшения качества, и те, кто интересуется UI в Ubuntu, переключаются на исправление ошибок.
На этой стадии цикла мы готовы выдать первую бета-версию, и все силы брошены на тестирование, обзор ошибок, о которых нам сообщили, выдачу им приоритетов и исправление. Все технические менеджеры и участники сообщества вместе вырабатывают список приоритетных ошибок. Все ошибки никогда не исправить, но мы можем нацелить усилия на самые критические области, чтобы гарантировать максимально возможное удобство системы в работе.
Вскоре после релиза первой бета-версии замораживается ядро, чтобы снизить риск ухудшения поддержки оборудования, а также настает Заморозка Строк [String Freeze], когда уже не принимаются изменения в текстах системы, подлежащих переводу на разные языки. Когда настают все заморозки, мы выпускаем вторую, последнюю бета-версию и бьем в барабаны, воодушевляя пользователей к тестированию и призывая их регистрировать все замеченные ошибки. Мы продолжаем рассматривать эти отчеты и расставлять им приоритеты. Сейчас цель состоит в том, чтобы исправить как можно больше до наступления Финальной Заморозки [Final Freeze].
После дополнительной шлифовки мы выдаем новый релиз, и каждый член сообщества Ubuntu засыпает на все выходные. А через несколько дней все начинается снова…
Команда U
Пока мы касались только разработки Ubuntu, однако во время всего этого не перестает работать множество других команд. Команда Information Services [Информационные сервисы] обслуживает несколько серверов и строит фермы и прочее, а команда Engineering Managers [Технические менеджеры] обеспечивает руководство и принимает ежедневные решения в сообществе (см. врезку Руководство Ubuntu).
Другие важные команды –
- Web-команда
- Готовит к новому релизу сайт www.ubuntu.com, создает стенды для продукта, готовится к бета-версии и наводит профессиональный блеск и лоск на наши web-ресурсы.
- Команда коммуникаций
- Создает материалы для маркетинга и пресс-релизы для бета- и финальной версий, организует пресс-конференции и взаимодействует с новостными каналами по поводу интервью и новых функций.
- Команда дизайна
- Работает собственно над Ubuntu, готовя визуальные ресурсы для web-команды, обложки CD, брошюры и прочее.
- Команда поддержки
- Координирует места встреч, перемещения и ресурсы для разных рывков и забегов, проводимых во время цикла и для Ubuntu Developer Summit.
И, наконец, моя команда, команда Сообщества, организует во время цикла обучающие недели (сюда входят Открытая неделя Open Week, Неделя разработчиков Ubuntu, Неделя сообщества Ubuntu, Дни облаков Ubuntu и Неделя разработчиков приложений Ubuntu). Также мы устраиваем такие всемирные мероприятия, как Глобальное сборище [Global Jam] Ubuntu, банкеты по случаю выпуска и другие.
На горизонте
Чтобы у вас было представление о ситуации, посмотрим, что ожидается в релизе Ubuntu 11.10, запланированном на 13 октября. Эти планы обсуждались и согласовывались на Ubuntu Developer Summit в Будапеште еще в мае. Как и раньше, прогресс можно отследить на http://status.ubuntu.com. Вот главные функции:
- Unity подогнан и отделан
- Впервые окружение рабочего стола Unity возникло в Ubuntu 11.04. В 11.10 упор сделан на отделке и завершении, исправлении замеченных ошибок и улучшении некоторых областей интерфейса. Новые функции тоже будут, но в основном акцентируется качество.
- Ensemble
- Чрезвычайно привлекательный инструмент развертывания и управления облаком и масштабирования его служб – всего несколькими командами. Ubuntu Server 11.10 будет поставляться с Ensemble как с ключевым компонентом, и мы работаем над тем, чтобы формулы Ensemble стали более доступными популярным серверным приложениям.
- Thunderbird сменит Evolution
- Хотя окончательное решение будет сделано позже в цикле релиза, идет работа по замене программы почты и календаря Evolution на Mozilla Thunderbird. Сейчас идет работа по встраиванию в Thunderbird поддержки Unity и обеспечению полной интеграции программы.
- Qt
- Популярный инструментарий будет доступен в установке по умолчанию, тем самым широко открыв доступные приложения разработчикам Qt. Qt – сильный инструментарий, и его первоклассная поддержка сделает Ubuntu более мощной платформой для разработчика.
- Developer story
- Мы продолжаем оттачивать новый релиз Ubuntu Developer Platform, http://developer.ubuntu.com, чтобы отражать разные возможности по приложениям, открытым для разработчиков.
Работа стоит того
Хотя в каждый релиз заталкивается множество нового, выработанный командой подход организованного хаоса обеспечивает предсказуемые релизы дистрибутива. Фактически, с появления проекта Ubuntu в 2004 году была только одна задержка выхода релиза, и то она была запланирована, в связи с совмещением с выходом релиза с долгосрочной поддержкой (LTS).
Хотя это интенсивный процесс, он дает взамен большую отдачу, благодаря замечательным людям, которые вложили свои души и сердца в каждый релиз. Планирование, заморозка, вехи релизов и прочие важнейшие элементы без этих людей ничего бы не значили. Одним нравится Ubuntu, другим – другой дистрибутив, но независимо от ваших взглядов, мало кого не впечатлит то, как много движущихся частей совместно работают над своим идеалом.