diff options
Diffstat (limited to 'doc/ru/tutorials/using_bazaar_with_launchpad.txt')
-rw-r--r-- | doc/ru/tutorials/using_bazaar_with_launchpad.txt | 461 |
1 files changed, 461 insertions, 0 deletions
diff --git a/doc/ru/tutorials/using_bazaar_with_launchpad.txt b/doc/ru/tutorials/using_bazaar_with_launchpad.txt new file mode 100644 index 0000000..e9fa4cf --- /dev/null +++ b/doc/ru/tutorials/using_bazaar_with_launchpad.txt @@ -0,0 +1,461 @@ +================================ +Использование Bazaar с Launchpad +================================ + +.. contents:: + Содержание +.. sectnum:: + +Мотивация +========= + +Сообщества отличаются от команд +------------------------------- + +Количество человек в команде, необходимой для создания первой версии +какого-либо программного обеспечения, может различаться в разы - от одного +человека до нескольких тысяч. В зависимости от требований, сложность задач, как +технических, так и управленческих, может быть просто огромна. Как описано в +Руководстве пользователя Bazaar, выбор "правильных" процессов и использование +таких инструментов как Bazaar, может существенно помочь в поддержке +соответствующих рабочих циклов. + +Но успех программного обеспечения требует больше чем просто хорошую команду - +здесь требуется здоровое и активное *сообщество*. Обычно эта группа намного +больше команды, поскольку включает всех заинтересованных в данном программном +обеспечении: команду разработки, пользователей, партнеров по подготовке +кадров, партнеров по поддержке, сторонних разработчиков и так далее. + +Хорошие сообщества хорошо известны в мире открытого исходного кода. Но их +полезность намного выше этого: большинство успешных поставщиков коммерческого +программного обеспечения достаточно опытны в создании и управлении +сообществами, которые растут вокруг их флагманских продуктов. + +Как и хорошие команды, хорошие сообщества не появляются просто так. Правильная +политика и руководящие принципы имеют основополагающее значение при развитии +правильного поведения и здорового отношения между участниками. Для более +подробного понимания этой темы можно обратится к основополагающей книге Карла +Фогеля (Karl Fogel): `Создание программного обеспечения с открытым кодом +(Producing Open Source Software) <http://www.producingoss.com/>`_. + + +Потребность в совместных средах разработки +------------------------------------------ + +Развитый набор инструментов также важен для отслеживания и управления +информацией и рабочими процессами в сообществе. Такие инструменты называются +совместными средами разработки (Collaborative Development Environments +(CDEs)). Обычно эти инструменты работают на базе Web'а и управляют такими +вещами как анонсы, задачи и ошибки, вопросы и ответы, ресурсы для скачивания, +документы и исходный код. Вот несколько примеров совместных сред разработки: +`Launchpad <https://launchpad.net>`_, +`SourceForge <http://sourceforge.net>`_, +`java.net <http://java.net>`_ и +`SAP Community Network <https://www.sdn.sap.com/irj/sdn>`_. + + +Помощь сообществам в работе с зависимыми от них сообществами +------------------------------------------------------------ + +Многие успешные продукты имеют большое число зависящих от них проектов. +Другими словами, с успехом проекта появляется новая задача: общение с другими +сообществами и понимание того как ваши изменения скажутся на них. Это наиболее +очевидно для таких проектов как: + +* языков программирования, например, Python, PHP, Ruby, Java, Perl и др. +* компиляторов, например, gcc, JDK и др. +* библиотек, например, zlib, openssl и др. +* каркасов, например, Zope, Ruby on Rails, Spring и др. + +В равной степени это относится и к популярным приложениям для которых могут +создаваться дополнения, например, Firefox, Thunderbird, OpenOffice.org, +Drupal, Wordpress, Joomla и др. + +Здесь необходимы инструменты, которые помогают сообществам работать вместе над +отслеживанием и управлением задачами и исправлениями между сообществами. Такие +инструменты помогают людям по обе стороны: + +* пользователи могут сообщить о проблемах своими словами, например, построение + изображения типа X не работает в приложении Y под операционной системой Z. + +* разработчики могут лучше оценить реакцию на сделанное изменение или + исправление, например, сделает ли исправление этой ошибки в графической + библиотеки счастливее пользователей этих 5-и приложений под этими 10-ю + операционными системами. + +Посредники играют важную роль *соединяя точки* и создавая коммуникацию между +верхней и нижней точками линии. Во многих случаях, они могут так же исправить +проблему для конечного пользователя, выпустив заплатку и передав рекомендуемое +исправление основной команде разработчиков. Отслеживание всего этого в течении +продолжительного времени - задача не из легких. + +Launchpad: Больше разработки, меньше трений +------------------------------------------- + +Кроме спонсорства разработки `Ubuntu <http://www.ubuntu.com>`_ и `Bazaar +<http://bazaar.canonical.com>`_, Canonical так же предоставляет Launchpad, +https://launchpad.net, как бесплатный сервис для сообществ с открытым исходным +кодом. Launchpad является одной из самых интересных сред совместной разработки +по следующим причинам: + +* он создает связь между многими отслеживаемыми сущностями, например, ветки + исходного кода могут быть связаны с исправлением ошибок + +* кроме управления накопленными знаниями, также предоставляется планирование и + поддержка будущего разработки через такие возможности как отслеживание + направления развития, контрольные точки и планы развития + +* предоставляются инструменты для перевода и сборки пакетов, что снижает + барьер для переводчиков и тестеров пожелавших присоединиться к вашему + сообществу с помощью + +* служит связующим звеном между различными сообществами для совместной работы + над связанными задачами и направлениями развития. + +Иными словами, Launchpad был разработан чтобы помочь росту вашего сообщества и +снизить трения при работе как *внутри* сообщества, так и *между* сообществами. +В конечном счете, это означает, что тратится меньше времени на рутинные задачи +и больше на интересные разработки. + + +Bazaar: клиент системы контроля версий для Launchpad +---------------------------------------------------- + +Это руководство рассматривает как Bazaar и Launchpad могут быть использованы +вместе и дополнять друг друга. Важно помнить о том, что: + +1. Bazaar можно использовать без Launchpad +2. Launchpad можно использовать без Bazaar. + +И все же, по замыслу, их сумма больше чем каждый из инструментов по +отдельности. + + +Поиск и просмотр веток с помощью Launchpad +========================================== + +Поиск доступных веток +--------------------- + +Хотя использование распределённой системы контроля версий даёт много +преимуществ, в то же время исчезает всезнающий центральный сервер, который +знает обо всех доступных ветках. Действительно, в распределённой среде +интересующие ветки могут буквально существовать в сотнях мест во всему +Интернету (или внутри Интранета). + +Launchpad заполняет этот пробел, предоставляя реестр веток. + + +Регистрация веток +----------------- + +Ветки могут быть загружены на Launchpad или просто зарегистрированы как +доступные из внешних источников. Веткам так же можно назначать статусы, такие +как *Новая*, *В разработке*, *Готовая* или *Отмененная*. + +Заметка: Внешние ветки могут даже располагаться в старых системах контроля +версий, таких как CVS и Subversion. Код из этих систем будет периодически +сканироваться и преобразовываться в ветки Bazaar. Конечно же, для максимальной +точности, предпочтительнее чтобы внешние ветки были в формате Bazaar. + + +Просмотр веток +-------------- + +Для веток можно просматривать их список, фильтровать и сортировать по +множеству атрибутов, включая Имя, Регистратора, Автора, Состояние, Возраст и +время последней фиксации. Также работает просмотр веток, что легко позволяет +увидеть следующее: + +* откуда можно скачать ветку +* как залить изменения +* недавние фиксации и изменения, сделанные каждым разработчиком +* исходный код отдельных файлов для указанной ревизии. + + +Доступ к коду в Launchpad с помощью Bazaar +========================================== + +Получение кода для проекта с открытым исходным кодом +---------------------------------------------------- + +Launchpad отслеживает тысячи проектов с открытым исходным кодом и вне +зависимости от того хранится этот код в Bazaar, CVS или Subversion +пользователи Bazaar легко могут получить этот код так:: + + bzr branch lp:имя-проекта + +где `имя-проекта` - это идентификатор проекта на Launchpad. Вот некоторые +примеры:: + + bzr branch lp:inkscape + bzr branch lp:amarok + bzr branch lp:python + bzr branch lp:rails + bzr branch lp:java-gnome + +После этого вы можете просматривать код локально с помощью вашего любимого +редактора или среды разработки и при желании изменять его. + +Если для проекта зарегистрировано несколько выпусков (например, выпуск +разработки в выпуск поддержки), тогда свежий код для заданного выпуска можно +получить используя команду:: + + bzr branch lp:имя-проекта/выпуск + +Публикация ваших изменений +-------------------------- + +Исправив эту надоедливую ошибку или добавив новую крутую возможность, о +которой вы давно мечтали, пришло время удивить ваших друзей и сделать мир +лучше, сделав ваш код доступным для других. Как уже объяснялось раньше, +Launchpad это бесплатная служба для размещения веток Bazaar и поэтому вы +можете опубликовать свою ветку на нём, так чтобы другие смогли получить доступ +к вашему коду. Например, предположим что вы уже участник соответствующей +команды, авторизуйтесь на Launchpad таким образом:: + + bzr launchpad-login пользователь + +где `пользователь` - это ваш идентификатор пользователя Launchpad. После этого +вы можете залить ваши изменения на ветку команды вот так:: + + bzr push lp:~имя-команды/имя-проекта/имя-ветки + +Теперь другие могут скачать ваш код таким образом:: + + bzr branch lp:~имя-команды/имя-проекта/имя-ветки + + +Личные ветки +------------ + +Даже если вы не член какой-либо команды Launchpad можно использовать для +публикации ваших изменений. В этом случае просто создайте личную ветку:: + + bzr push lp:~пользователь/имя-проекта/имя-ветки + +Другие затем могут скачать ваш код таким образом:: + + bzr branch lp:~пользователь/имя-проекта/имя-ветки + +Заметка: даже в случае публикации личной ветки будет вежливо уведомить +основных разработчиков о вашей ветке, чтобы они смогли взять ваши изменения, +если они подходят и для других пользователей и соответствуют стандартам +качества проекта. + + +Связывание веток в Launchpad +============================ + +Привязка ветки к сообщению об ошибке +------------------------------------ + +После регистрации ветки вы можете связать её с ошибкой, чтобы заинтересованные +в ее исправлении люди могли отслеживать изменения и скачать исправление, когда +оно станет доступно. + +Чтобы сделать это выполните следующие шаги: + +1. Перейдите к странице с нужной ошибкой. + +2. Выберите `Add branch` (Добавить ветку) в разделе `Actions` (Действия). + +3. Выберите ветку. + +4. При желании вы можете изменить состояние (State) связи. По умолчанию + состояние будет *Fix In Progress* (Работа над исправлением), но вы можете + установить другое состояние, например *Fix Available* (Исправление + доступно), если ветка уже содержит исправление. + +При желании вы также можете добавить произвольный комментарий о связи между +ошибкой и веткой. + + +Изменение состояния ветки в Launchpad во время фиксации в Bazaar +---------------------------------------------------------------- + +Bazaar и Launchpad способны работать вместе, чтобы уменьшить ваши заботы по +управлению состоянием ветки. Когда вы выполняете фиксацию с помощью Bazaar, +используйте параметр --fixes:: + + bzr commit --fixes lp:1234 -m "..." + +где 1234 |--| это идентификатор ошибки. Эти данные изменят State (состояние +отношения ветки к ошибке) на *Fix Available* (Исправление доступно). Если одна +единственная фиксация исправляет несколько ошибок, то параметр --fixes может +быть указан несколько раз. + +Самое интересное здесь заключается в том, что вам не обязательно иметь доступ +к Launchpad в момент фиксации. При использовании ``--fixes`` идентификатор +ошибки сохраняется в виде специальных метаданных, которые Launchpad увидит при +очередной публикации ваших изменений или когда ваша публичная ветка будет +просканирована в очередной раз. + +Заметка: Launchpad не будет закрывать сообщение об ошибке только потому, что +существует ветка с исправлением. Для этого есть несколько причин. Во-первых, +обычно исправления из вашей ветки должны быть объединены с главной веткой +разработки, иначе большинство команд не будет считать ошибку исправленной. +Во-вторых, многие команды придерживаются отдельного процесса для подтверждения +исправлений ошибок, в добавление к утверждению разработчика об этом. + +Как поясняется далее, функция отслеживания объединений веток на Launchpad в +настоящее время находится в стадии разработки. Как только эта функция будет +готова более подходящим поведением станет автоматическое изменение состояния +ошибки на *Fix Committed* (исправление зафиксировано). + + +Связь ветки с планом +-------------------- + +После регистрации ветки вы можете связать её с планом, чтобы люди, +заинтересованные в этом плане могли отслеживать и тестировать новые +возможности по мере разработки. + +Чтобы это сделать, выполните следующие шаги: + +1. Перейдите к нужному плану (Blueprint). + +2. Выберите `Link branch` (Связать ветку) в разделе `Actions` (Действия). + +3. Выберите ветку. + +При желании вы также можете добавить произвольный комментарий об отношении +ветки к плану. + + +Управление релизами с помощью Launchpad +======================================= + +Интеграция изменений +-------------------- + +Когда разработка на ветке закончена и она опубликована, сообщества обычно +проходят через строгий процесс, прежде чем изменения будут интегрированы в +основной продукт и предоставлены конечным пользователям. Вот некоторые из +возможных шагов: + +* просмотр изменений другими участниками проекта + +* принятие решения, в какой релиз будут включены изменения, например, в + следующий релиз с исправлениями, или в следующее крупное обновление, или в + оба + +* прогон функциональных тестов для выявления ошибок + +* измерение производительности + +* включение в предварительные версии для тестирования конечными пользователями + +* обновление документации, например, заметок о выпуске + +* перевод пользовательского интерфейса и документации на разные языки. + +Этот раздел дает обзор возможностей Launchpad, которые помогают получить +высокое качество кода в конечном продукте. Хорошая интеграция с Bazaar +является основой для того, чтобы это прошло гладко. + +Примечание: в тех случаях, когда указано, некоторые из следующих возможностей +всё ещё находятся в стадии разработки. Если одна или несколько таких +возможностей вам интересны, рассмотрите возможность вступления в команду +бета-тестирования Launchpad по следующей ссылке: +https://help.launchpad.net/JoiningLaunchpadBetaTesters. В этом случае, вы +сможете получить предварительный доступ к возможностям и сможете дать отзыв +разработчиками до широкого внедрения. + + +Предложение по объединению веток +-------------------------------- + +После перехода к ветке в Launchpad, одно из доступных действий - *Propose for +merging* (Предложить объединение). Это действие позволяет вам указать, с какой +веткой этот код мог бы быть объединен. + +Отслеживание знаний о том, какие ветки предлагается объединить в главную, +помогает менеджерам выпусков держать на виду то, что ещё должно быть +завершено, либо может быть завершено, до даты выпуска. Используя эту +информацию, они могут убедиться, что ветки объединены после завершения их +необходимых обзоров. В простом случае, менеджер выпуска может объединить ветки +вручную. В более сложных ситуациях, объединение может быть сделано роботом +(таким, как `PQM`_) автоматически, когда ветки перейдут в правильное состояние +(например, *Review completed* (Обзор завершен)). + +.. _PQM: https://launchpad.net/pqm + + +Отслеживание обзора кода +------------------------ + +Некоторые функции в Launchpad все еще в стадии разработки, например +отслеживание состояний, обсуждений и результатов обзора кода. Ожидается, что +эти функции будут интегрированы с предложениями по объединению веток и +просмотром веток. + + +Архивы личных пакетов (PPAs) +---------------------------- + +PPAs помогают разработчикам и командам разработки выдать определенный выпуск +на руки пользователям для раннего тестирования и получения отзывов. Другими +словами, PPA позволяет разработчику создать сообщество тестеров, +заинтересованных в их изменениях. Тестирующее сообщество может установить +пакеты, запускать их в течение тестового периода, а затем аккуратно удалить их +из системы. + +Дальнейшую информацию можно найти по адресу +https://help.launchpad.net/PPAQuickStart + + +Переводы +-------- + +Модуль переводов в Launchpad сделан для того чтобы любой желающий мог легко +присоединиться к переводу приложений на известные ему языки. Переводчики +защищены от подробностей низкого уровня. + +Launchpad отслеживает переводы для каждой основной версии проекта по +отдельности, что позволяет переводчикам продолжать совершенствовать перевод +ваших стабильных релизов, пока другие могут начать работу над новыми версиями, +которые все ещё находятся в разработке. Скорость перевода увеличивается из-за +совместного использования ресурсов между проектами. Автоматические подсказки, +из библиотеки в 750 тысяч переведенных строк, а также сообщество из +19 тысяч зарегистрированных переводчиков может радикально сократить время, +необходимое для локализации вашего проекта на многие языки. + + +Итоги +===== + +Сообщества к которым мы присоединяемся, будь то в реальной жизни, или онлайн, +говорят многое о нас. Обратная сторона этого заключается в инструментах +которые вы выбираете для сообщества - в частности, CDE и инструмент контроля +версий. Это может иметь большое значение для тех кто пожелает присоединиться, +и насколько легко они смогут помочь. + +Сами по себе, Launchpad и Bazaar являются очень полезными инструментами. +Вместе они могут: + +* помочь вашему сообществу отслеживать основные ресурсы, такие как исходный + код и знания; +* помочь ему расти, снизив вступительный барьер; +* помочь ему во взаимодействии с зависимыми сообществами. + +В частности, Launchpad является сервисом хранения свободного кода для ваших +веток Bazaar. Ветки можно просматривать онлайн, их можно связать с ошибками и +планами. А их статус по отношению к ошибке может автоматически управляться +упоминанием об ошибке при сохранении в Bazaar. Дальнейшая интеграция находится +в стадии развития с целью оптимизации процесса от *большой идеи* до +*работающего кода в руках конечных пользователей*. + +Если у вас есть отзывы или пожелания о том, как лучше интегрировать Bazaar и +Launchpad, пожалуйста связывайтесь с нами через список рассылки +bazaar@lists.canonical.com. + +Хотя Launchpad разработан как бесплатный сервис для поддержки проектов с +открытыми исходными текстами, Canonical может сделать его доступным и для +разработчиков коммерческого программного обеспечения, в зависимости от их +требований. Мы с удовольствием выслушаем ваше мнение, если вы считаете, что +Launchpad был бы полезен для управления вашим сообществом, будь оно открытое +или нет. + + +.. |--| unicode:: U+2014 |