Готовый перевод Bazaar is a distributed version control system / Базар - распределенная система контроля версий: doc/en/tutorials/using_bazaar_with_launchpad.txt

===========================
Использование Базара с Launchpad
===========================

.. содержание::
.. номерсекц::

Мотивация
==========

Сообщества отличаются от команд
----------------------------------

Группа людей, необходимая для создания первоначальной версии
программного обеспечения, может различаться в разы - от одного человека до нескольких тысяч. В зависимости от требований, существующих проблем, как технических, так и управленческих, может быть просто огромна. Как поясняется в Руководстве пользователя Базара, выбор
"просто правильного" процесса и использование таких инструментов как Базар, для поддержки
соответствующего рабочего процесса, может существенно помочь.

Успех для программного обеспечения требует больше чем хорошую команду - ему нужно здоровое и активное сообщество. Обычно эта группа намного больше команды, потому что включает всех заинтересованных в данном программном обеспечении: команду, пользователей, партнеров для подготовки кадров, партнеров для поддержки, сторонних разработчиков и так далее.

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

Большие сообщества, как и большие команды, не появляются просто так. Хорошая политика и руководящие принципы имеют важное значение для развития правильного поведения и здорового отношения между участниками. Эта тема раскрыта глубже в исторической книге Карла Фогеля (Karl Fogel): Создание программного обеспечения с открытым кодом (Producing Open Source Software) /www.producingoss.com/>_.

Потребность в совместных средствах разработки

Развитые наборы инструментов также важны для отслеживания и управления информацией и процессами в сообществе. Такие инструменты называются совместными средствами разработки (CDE). Обычно эти инструменты работают на базе Web'а и управляют такими вещами как анонсы, задачи/ошибки, вопросы и ответы, ресурсы для скачивания, документы и исходный код. Несколько примеров совместных средств разработки:
Launchpad /launchpad.net>_,
SourceForge /sourceforge.net>_,
java.net /java.net>_ и
SAP Community Network /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 /www.ubuntu.com>_ и
Bazaar /bazaar-vcs.org>_, Canonical
так же предоставляет Launchpad, https://launchpad.net, как бесплатный сервис для сообществ с открытым исходным кодом. Launchpad является одним из самых
интересных средств совместной разработки по нескольким известными причинам:

* он создает связь между многими отслеживаемыми сущностями, например, ветки исходного кода могут быть связаны с исправлениями ошибок

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

* он предоставляет инструменты для перевода и службы упаковки, что снижает барьер для переводчиков и тестеров пожелавших присоединиться к вашему сообществу и помочь

* он выступает связующим звеном между различными сообществами для совместной работы над родственными задачами и планами.

Иными словами, Launchpad был разработан чтобы помочь расти вашему сообществу и снизить трения в работе *внутри* вашего сообщества и *между* сообществами. В конечном счете, это означает меньше времени на рутинные задачи и больше для интересной разработки.

Базар: клиент системы контроля версий для Launchpad
------------------------------

Это руководство фокусируется на том, как Базар и Launchpad могут быть использованы вместе
и насколько они дополняют друг друга. Важно помнить о том, что:

1. Базар можно использовать без Launchpad
2. Launchpad можно использовать без Базара.

И все же, по замыслу, их сумма больше чем по отдельности.

Поиск и просмотр веток с помощью Launchpad
=============================================

Поиск доступных веток
--------------------------

Хотя использование распределённой системы контроля версий даёт много преимуществ, исчезает всезнающий центральный сервер, знающий обо всех доступных ветках. Действительно, в распределённой среде интересные ветки могут буквально существовать в сотнях мест во всему Интернету (или внутри Интранета).

Launchpad восполняет этот недостаток, предоставляя реестр веток.

Регистрация веток
--------------------

Ветки могут быть загружена на Launchpad или легко зарегистрированы как доступные из других источников. Веткам так же можно назначит статус *Новая*, *В разработке*, *Готовая* или *Отмененная*.

Замечание: Внешние ветки могут даже располагаться в старых системах контроля версий, например CVS и Subversion. Код в этих системах переодически будет обработываться и преобразовываться в ветки Базара. Конечно же, для лучшего качества, предпочтительнее чтобы внешние ветки существовали в формате Базара.

Просмотр веток
-----------------

Втеки можно просматривать, фильтровать и сортировать по множеству атрибутов, включая Имя, Регистратора, Автора, Состояние, Возраст и время последнего коммита. Также работает просмотр веток, что легко позволяет увидеть:

* откуда ветку можно скачать
* как залить изменения
* недавние коммиты и изменения, сделанные в каждом из них
* исходники отдельных файлов указанной ревизии.

Доступ к коду в Launchpad с помощью Базара
========================================

Получение кода проекта с открытыми исходниками
-------------------------------------------

Launchpad отслеживает тысячи проектов с открытыми исходниками, использующими Базар, CVS или Subversion. Пользователи Базара легко могут получить к ним доступ так:

bzr branch lp:project-name

где project-name - это идентификатор проекта на 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:project-name/series

Публикация ваших изменений
-----------------------

Исправив неприятную ошибку или добавив новую полезную возможность, о которой вы давно мечтали, пришло время удивить ваших друзей и сделать мир лучше, сделав ваш код доступным для других. Как объяснялось раньше, Launchpad это бесплатная служба размещения файлов Базара. Поэтому вы можете опубликовать свою ветку на нём, так чтобы другие смогли получить доступ к вашему коду. Например, предположим что вы участник соотвествующей команды, авторизируйтесь на Launchpad вот так::

bzr launchpad-login userid

где userid - это ваш идентификатор пользователя Launchpad.
После этого вы можете залить ваши изменения в ветку команды вот так:

bzr push lp:~team-name/project-name/branch-name

Теперь другие могут скачать ваш код таким образом::

bzr branch lp:~team-name/project-name/branch-name

Личные ветки
-----------------

Даже если вы не член команды Launchpad можно использовать для публикации ваших изменений. В этом случае просто создайте личную ветку так:

bzr push lp:~userid/project-name/branch-name

Другие затем могут скачать ваш код так:

bzr branch lp:~userid/project-name/branch-name

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

Связывание веток с помощью Launchpad
================================

Связывание ветки с ошибкой
-------------------------------

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

Чтобы это сделать, выполните следующие шаги:

1. Перейдите к нужной ошибке.

2. Выберите Add branch (Добавить ветку) в разделе Actions (Действия).

3. Выберите ветку.

4. При желании измените Состояние отношения. По умолчанию это *Fix In Progress* (Исправляется), но вы можете задать другое состояние, например *Fix Available* (Исправление доступно), если ветка уже содержит исправление.

При желании вы также можете добавить произвольные комментарии об отношении ветки к ошибке.

Изменение состояние в Launchpad во время коммита в Базаре
----------------------------------------------------------

Базар и Launchpad могут сотрудничать для того, чтобы снять с вас некоторую часть забот по управлению состоянием. Когда вы выполняете коммит с помощью Базара, используйте параметр --fixes:

bzr commit --fixes lp:1234 -m "..."

где 1234 - это идентификатор ошибки. Это изменит Состояние отношения ветки к ошибке на *Fix Available* (Исправление доступно). Если один коммит исправляет несколько проблем, параметр --fixes может быть указан несколько раз.

Одна из приятный особенностей этой возможности заключается в том, что Launchpad не обязательно должен быть доступным чтобы выполнить коммит. Параметр --fixes формирует метаданные, которые Launchpad определит при следующей загрузке ветки или как только сервис будет доступен снова.

Замечание: Launchpad не закроет ошибку автоматически только потому что существует ветка исправляющая её. Для этого есть несколько причин. Во-первых, обычно ветка должна быть объединина с ведущей (главной веткой разработки) прежде чем большинство команды рассмотрит исправление. Во-вторых, многие команды придерживаются отдельного процесса для подтверждения исправлений ошибок, крото того что разработчик заявил об этом.

Как объяснялось ранее, возможности управления объединением на Launchpad все еще находятся в стадии разработки. Поэтому, автоматическое изменение состояние ошибки на *Fix Committed* (Исправление принято) будет более адекватным, как только эти возможности будут готовы.

Связь ветки с планом
-------------------------------------

После регистрации ветки вы можете связать её с планом, чтобы люди, заинтересованные в этом плане могли отслеживать и тестировать новые возможности по мере разработки.

Чтобы это сделать, выполните следующие шаги:

1. Перейдите к нужному плану.

2. Выберите Link branch (Связать ветку) в разделе Actions (Действия).

3. Выберите ветку.

При желании вы также можете добавить произвольные комментарии об отношении ветки к плану.

Управление релизами с помощью Launchpad
=================================

Интеграция изменений
-------------------

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

* просмотр изменений другими участниками проекта

* принятие решения, в какой релиз будут включены изменения, например, в следующий пакет с исправлениями, или в следующее крупное обновление, или в оба

* прогон функциональных тестов для выявления ошибок

* измерение производительности

* включение в предварительные версии для тестирования конечными пользователями

* обновление документации, например, в заметки о выпуске

* перевод пользовательского интерфейса и документации на разные языки.

Этот раздел дает обзор возможностей Launchpad, которые помогают получить высокое качество кода в конечном продукте. Хорошая интеграция с Базаром является основной, чтобы это прошло гладко.

Примечание: в тех случаях, когда указано, некоторые из следующих возможностей всё ещё находятся в стадии разработки. Если одна или несколько таких возможностей вам интересны, задумайтесь над вступлением в команду бета-тестирования 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 и Базар являются очень полезными инструментами. Вместе они могут:

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

В частности, Launchpad является сервисом хранения свободного кода для ваших веток Базара. Ветки можно просматривать онлайн, их можно связать с ошибками и набросками. А их статус по отношению к ошибке может автоматически управляться упоминанием об ошибке при сохранении в Базар. Дальнейшая интеграция находится в стадии развития с целью оптимизации процесса от *большой идееи* до *рабочего кода в руках конечных пользователей*.

Если у вас есть отзывы или пожелания о том, как лучше интегрировать Базар и Launchpad, пожалуйста связывайтесь с нами через список рассылки bazaar@lists.canonical.com.

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

Переведено на Нотабеноиде
http://notabenoid.org/book/164/1658

Переводчики: AlexIljin, master

Настройки

Готово:

100.00% КП = 1.0