Журнал LinuxFormat - перейти на главную

LXF149:Внутри Ubuntu

Материал из Linuxformat
Перейти к: навигация, поиск
Джоно Бэкон, менеджер сообщества Ubuntu, провел нас за кулисы.


Каждые шесть месяцев мы выпускаем новую версию Ubuntu, объединяющую усилия сотен разработчиков, переводчиков, тестеров и авторов документации, чтобы получились самые новые и свежие приложения, а также новые и пионерские технологии Ubuntu.

Сборка и выпуск новой операционной системы каждые шесть месяцев – это геморрой. Сущий геморрой. Тем не менее, с 2004 года, когда мы основали проект, мы стремились при создании Ubuntu брать самое лучшее от его участников, для гарантии, что каждый релиз настолько хорош, насколько это возможно.

В нашей статье рассказывается, как работает сей организованный хаос, чтобы дать представление о том, как Ubuntu собирается воедино.

Все работы умещены в строгий цикл релиза, проходящий ряд важных вех, которые всегда выставляются в открытый доступ (текущая расположена на https://wiki.ubuntu.com/ OneiricReleaseSchedule). Давайте сперва рассмотрим начало нового цикла.

Содержание

Закинем невод

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


Команды 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 Developer Summit. Работа кипит: разработчики сортируют ошибки и расставляют им приоритеты, исправляют их, загружают исправления в архив. Разрабатываются новые функции, их тоже формируют в пакеты и загружают.

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

Важным участком является новая разработка, которая войдет в проект Ayatana в Unity: индикаторы и другий инновационные функции рабочего стола. Эта работа разбита на две команды: команда Design [Дизайн] разрабатывает функции, востребованные пользователями, а команда Desktop [Рабочий стол] пишет реализующий их код.

Регулярные релизы

Когда релиз команды Desktop Experience [Опыт от рабочего стола] готов, код высылается ребятам из Ubuntu Desktop Engineering, которые создают пакеты и загружают их в архив, где каждый может запустить и протестировать новый код. В каждом релизе мы настаиваем на получении нового релиза от команды Desktop Experience как минимум раз в неделю (обычно по четвергам). Этот еженедельный срок очень полезен для стойкого прогресса.

За этот период мы выпускаем версии Ubuntu от разработчиков, которые отдаются на тестирование сообществу; оно регистрирует ошибки и помогает улучшениям. Альфа 1 выходит вскоре после начала нового цикла и включает новые пакеты Debian, вместе с инновациями. Альфа 2 выходит по мере появления важных новых функций. Альфа 3 обычно выходит за несколько месяцев до окончательной Альфа и сразу перед Заморозкой Функций [Feature Freeze].

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


Большая заморозка

Вскоре наступает Заморозка Пользовательского Интерфейса [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, другим – другой дистрибутив, но независимо от ваших взглядов, мало кого не впечатлит то, как много движущихся частей совместно работают над своим идеалом.

Персональные инструменты
купить
подписаться
Яндекс.Метрика