Скотт Джеймс Ремнант (Scott James Remnant), автор системы инициализации Upstart, недавно ушедший из Canonical в Google, но остающийся в управляющем совете разработчиков Ubuntu, опубликовал предложение по реструктуризации процесса подготовки релизов Ubuntu. Скотт считает, что выпуск релизов раз в месяц будет оптимальным компромиссом между rolling-релизами, отличающимися постоянным обновлением программ, и фиксированными выпусками, при которых проводится дополнительная стабилизация. Консервативным пользователям, для которых стабильность важнее нововведений, предлагается использовать LTS-выпуски с длительным сроком поддержки, методы подготовки которых останутся прежними.
Ключевая идея предлагаемых преобразований - переход от планового процесса разработки и интеграции новшеств, которые привязаны к 6-месячному циклу подготовки релизов, к методу непрерывной интеграции новшеств, при котором улучшения добавляются по мере их готовности, а месяц отводится только на финальную отладку и стабилизацию. Сокращение цикла подготовки релизов также позволит более оперативно поставлять пользователям новые версии программ и повысит скорость внедрения новшеств, которые будут разрабатываться независимо от процесса формирования релизов.
Для развития новшеств, параллельно с релизами предлагается поддерживать trunk-, beta- и alpha-ветки для осуществления стабилизации следующих выпусков. В первую неделю месяца на базе прошлой beta-ветки будет формироваться релиз, одновременно alpha-ветка будет переименовываться в "beta" и формироваться новая alpha-ветка с очередной порцией новшеств из ветки trunk. Т.е. одновременно будут доступны репозитории с релизом и двумя тестовыми ветками на разных стадиях тестирования. После того как новшество будет готово и рецензировано другими разработчиками, оно будет перемещаться в непубликуемую trunk-ветку, перекрывающую собой прошлую alpha-ветку. Перевод пакетов из Debian unstable предлагается проводить непрерывно.
По мнению Скотта, текущий 6-месячный цикл излишне хаотичен и отводит слишком мало времени на разработку - после заморозки добавление новшеств не допускается. На разработку новшеств при текущем цикле подготовки релизов выделяется 12-13 недель, если за это время улучшение не удалось довести до конца или оно признано управляющим советом не готовым для включения в состав текущего релиза, то пользователям придется ждать дополнительные 6 месяцев до следующего выпуска. Например, если значительное улучшение требует 12 месяцев разработки, то работу над ним приходится укладывать в трехмесячные этапы до заморозки кода. Т.е. на полную интеграцию уйдет два года (4 цикла подготовки релиза), а не год. При этом в трёх из четырёх выпусках будет, по сути, поставляться предварительный и незаконченный вариант нововведения.
Такие значительные нововведения как переход на Unity Desktop и новый Ubuntu Software Center, приходится разбивать на части, добавляя в дистрибутив постепенно. На начальных этапах интеграции приходится мириться с недоработками и отсутствием желаемых функций. Новый подход подразумевает параллельное доведение новшества до полной готовности и только после этого, интеграцию в дистрибутив. Во времена зарождения Ubuntu, основным мотивом использования 6-месячного цикла была необходимость синхронизации с выпускаемыми раз в пол года релизами проекта GNOME. После создания Unity былой зависимости от GNOME больше нет, поэтому жесткие временные рамки уже не так важны как раньше.
Более того, при текущем подходе разработка может затянуться ещё и из-за того, что в выпускаемые раз в два года LTS-выпуски стараются не интегрировать недоработанные новшества, внося подобные изменения только в промежуточные выпуски. Например, значительным и многоэтапным проектом является переход на использование дисплейного сервера Wayland, интеграция которого из-за необходимости обеспечения стабильности Ubuntu 12.04 LTS, начнётся не раньше Ubuntu 12.10.
Нужно что то перевезти? Вам в помощь грузоперевозки Казахстан!