~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to doc/ru/tutorials/using_bazaar_with_launchpad.txt

  • Committer: John Arbash Meinel
  • Author(s): Mark Hammond
  • Date: 2008-09-09 17:02:21 UTC
  • mto: This revision was merged to the branch mainline in revision 3697.
  • Revision ID: john@arbash-meinel.com-20080909170221-svim3jw2mrz0amp3
An updated transparent icon for bzr.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
================================
2
 
Использование Bazaar с Launchpad
3
 
================================
4
 
 
5
 
.. contents::
6
 
        Содержание
7
 
.. sectnum::
8
 
 
9
 
Мотивация
10
 
=========
11
 
 
12
 
Сообщества отличаются от команд
13
 
-------------------------------
14
 
 
15
 
Количество человек в команде, необходимой для создания первой версии
16
 
какого-либо программного обеспечения, может различаться в разы - от одного
17
 
человека до нескольких тысяч. В зависимости от требований, сложность задач, как
18
 
технических, так и управленческих, может быть просто огромна. Как описано в
19
 
Руководстве пользователя Bazaar, выбор "правильных" процессов и использование
20
 
таких инструментов как Bazaar, может существенно помочь в поддержке
21
 
соответствующих рабочих циклов.
22
 
 
23
 
Но успех программного обеспечения требует больше чем просто хорошую команду -
24
 
здесь требуется здоровое и активное *сообщество*. Обычно эта группа намного
25
 
больше команды, поскольку включает всех заинтересованных в данном программном
26
 
обеспечении: команду разработки, пользователей, партнеров по подготовке
27
 
кадров, партнеров по поддержке, сторонних разработчиков и так далее.
28
 
 
29
 
Хорошие сообщества хорошо известны в мире открытого исходного кода. Но их
30
 
полезность намного выше этого: большинство успешных поставщиков коммерческого
31
 
программного обеспечения достаточно опытны в создании и управлении
32
 
сообществами, которые растут вокруг их флагманских продуктов.
33
 
 
34
 
Как и хорошие команды, хорошие сообщества не появляются просто так. Правильная
35
 
политика и руководящие принципы имеют основополагающее значение при развитии
36
 
правильного поведения и здорового отношения между участниками. Для более
37
 
подробного понимания этой темы можно обратится к основополагающей книге Карла
38
 
Фогеля (Karl Fogel): `Создание программного обеспечения с открытым кодом
39
 
(Producing Open Source Software) <http://www.producingoss.com/>`_.
40
 
 
41
 
 
42
 
Потребность в совместных средах разработки
43
 
------------------------------------------
44
 
 
45
 
Развитый набор инструментов также важен для отслеживания и управления
46
 
информацией и рабочими процессами в сообществе. Такие инструменты называются
47
 
совместными средами разработки (Collaborative Development Environments
48
 
(CDEs)). Обычно эти инструменты работают на базе Web'а и управляют такими
49
 
вещами как анонсы, задачи и ошибки, вопросы и ответы, ресурсы для скачивания,
50
 
документы и исходный код. Вот несколько примеров совместных сред разработки:
51
 
`Launchpad <https://launchpad.net>`_,
52
 
`SourceForge <http://sourceforge.net>`_,
53
 
`java.net <http://java.net>`_ и
54
 
`SAP Community Network <https://www.sdn.sap.com/irj/sdn>`_.
55
 
 
56
 
 
57
 
Помощь сообществам в работе с зависимыми от них сообществами
58
 
------------------------------------------------------------
59
 
 
60
 
Многие успешные продукты имеют большое число зависящих от них проектов.
61
 
Другими словами, с успехом проекта появляется новая задача: общение с другими
62
 
сообществами и понимание того как ваши изменения скажутся на них. Это наиболее
63
 
очевидно для таких проектов как:
64
 
 
65
 
* языков программирования, например, Python, PHP, Ruby, Java, Perl и др.
66
 
* компиляторов, например, gcc, JDK и др.
67
 
* библиотек, например, zlib, openssl и др.
68
 
* каркасов, например, Zope, Ruby on Rails, Spring и др.
69
 
 
70
 
В равной степени это относится и к популярным приложениям для которых могут
71
 
создаваться дополнения, например, Firefox, Thunderbird, OpenOffice.org,
72
 
Drupal, Wordpress, Joomla и др.
73
 
 
74
 
Здесь необходимы инструменты, которые помогают сообществам работать вместе над
75
 
отслеживанием и управлением задачами и исправлениями между сообществами. Такие
76
 
инструменты помогают людям по обе стороны:
77
 
 
78
 
* пользователи могут сообщить о проблемах своими словами, например, построение
79
 
  изображения типа X не работает в приложении Y под операционной системой Z.
80
 
 
81
 
* разработчики могут лучше оценить реакцию на сделанное изменение или
82
 
  исправление, например, сделает ли исправление этой ошибки в графической
83
 
  библиотеки счастливее пользователей этих 5-и приложений под этими 10-ю
84
 
  операционными системами.
85
 
 
86
 
Посредники играют важную роль *соединяя точки* и создавая коммуникацию между
87
 
верхней и нижней точками линии. Во многих случаях, они могут так же исправить
88
 
проблему для конечного пользователя, выпустив заплатку и передав рекомендуемое
89
 
исправление основной команде разработчиков. Отслеживание всего этого в течении
90
 
продолжительного времени - задача не из легких.
91
 
 
92
 
Launchpad: Больше разработки, меньше трений
93
 
-------------------------------------------
94
 
 
95
 
Кроме спонсорства разработки `Ubuntu <http://www.ubuntu.com>`_ и `Bazaar
96
 
<http://bazaar.canonical.com>`_, Canonical так же предоставляет Launchpad,
97
 
https://launchpad.net, как бесплатный сервис для сообществ с открытым исходным
98
 
кодом. Launchpad является одной из самых интересных сред совместной разработки
99
 
по следующим причинам:
100
 
 
101
 
* он создает связь между многими отслеживаемыми сущностями, например, ветки
102
 
  исходного кода могут быть связаны с исправлением ошибок
103
 
 
104
 
* кроме управления накопленными знаниями, также предоставляется планирование и
105
 
  поддержка будущего разработки через такие возможности как отслеживание
106
 
  направления развития, контрольные точки и планы развития
107
 
 
108
 
* предоставляются инструменты для перевода и сборки пакетов, что снижает
109
 
  барьер для переводчиков и тестеров пожелавших присоединиться к вашему
110
 
  сообществу с помощью
111
 
 
112
 
* служит связующим звеном между различными сообществами для совместной работы
113
 
  над связанными задачами и направлениями развития.
114
 
 
115
 
Иными словами, Launchpad был разработан чтобы помочь росту вашего сообщества и
116
 
снизить трения при работе как *внутри* сообщества, так и *между* сообществами.
117
 
В конечном счете, это означает, что тратится меньше времени на рутинные задачи
118
 
и больше на интересные разработки.
119
 
 
120
 
 
121
 
Bazaar: клиент системы контроля версий для Launchpad
122
 
----------------------------------------------------
123
 
 
124
 
Это руководство рассматривает как Bazaar и Launchpad могут быть использованы
125
 
вместе и дополнять друг друга. Важно помнить о том, что:
126
 
 
127
 
1. Bazaar можно использовать без Launchpad
128
 
2. Launchpad можно использовать без Bazaar.
129
 
 
130
 
И все же, по замыслу, их сумма больше чем каждый из инструментов по
131
 
отдельности.
132
 
 
133
 
 
134
 
Поиск и просмотр веток с помощью Launchpad
135
 
==========================================
136
 
 
137
 
Поиск доступных веток
138
 
---------------------
139
 
 
140
 
Хотя использование распределённой системы контроля версий даёт много
141
 
преимуществ, в то же время исчезает всезнающий центральный сервер, который
142
 
знает обо всех доступных ветках. Действительно, в распределённой среде
143
 
интересующие ветки могут буквально существовать в сотнях мест во всему
144
 
Интернету (или внутри Интранета).
145
 
 
146
 
Launchpad заполняет этот пробел, предоставляя реестр веток.
147
 
 
148
 
 
149
 
Регистрация веток
150
 
-----------------
151
 
 
152
 
Ветки могут быть загружены на Launchpad или просто зарегистрированы как
153
 
доступные из внешних источников. Веткам так же можно назначать статусы, такие
154
 
как *Новая*, *В разработке*, *Готовая* или *Отмененная*.
155
 
 
156
 
Заметка: Внешние ветки могут даже располагаться в старых системах контроля
157
 
версий, таких как CVS и Subversion. Код из этих систем будет периодически
158
 
сканироваться и преобразовываться в ветки Bazaar. Конечно же, для максимальной
159
 
точности, предпочтительнее чтобы внешние ветки были в формате Bazaar.
160
 
 
161
 
 
162
 
Просмотр веток
163
 
--------------
164
 
 
165
 
Для веток можно просматривать их список, фильтровать и сортировать по
166
 
множеству атрибутов, включая Имя, Регистратора, Автора, Состояние, Возраст и
167
 
время последней фиксации. Также работает просмотр веток, что легко позволяет
168
 
увидеть следующее:
169
 
 
170
 
* откуда можно скачать ветку
171
 
* как залить изменения
172
 
* недавние фиксации и изменения, сделанные каждым разработчиком
173
 
* исходный код отдельных файлов для указанной ревизии.
174
 
 
175
 
 
176
 
Доступ к коду в Launchpad с помощью Bazaar
177
 
==========================================
178
 
 
179
 
Получение кода для проекта с открытым исходным кодом
180
 
----------------------------------------------------
181
 
 
182
 
Launchpad отслеживает тысячи проектов с открытым исходным кодом и вне
183
 
зависимости от того хранится этот код в Bazaar, CVS или Subversion
184
 
пользователи Bazaar легко могут получить этот код так::
185
 
 
186
 
        bzr branch lp:имя-проекта
187
 
 
188
 
где `имя-проекта` - это идентификатор проекта на Launchpad. Вот некоторые
189
 
примеры::
190
 
 
191
 
        bzr branch lp:inkscape
192
 
        bzr branch lp:amarok
193
 
        bzr branch lp:python
194
 
        bzr branch lp:rails
195
 
        bzr branch lp:java-gnome
196
 
 
197
 
После этого вы можете просматривать код локально с помощью вашего любимого
198
 
редактора или среды разработки и при желании изменять его.
199
 
 
200
 
Если для проекта зарегистрировано несколько выпусков (например, выпуск
201
 
разработки в выпуск поддержки), тогда свежий код для заданного выпуска можно
202
 
получить используя команду::
203
 
 
204
 
        bzr branch lp:имя-проекта/выпуск
205
 
 
206
 
Публикация ваших изменений
207
 
--------------------------
208
 
 
209
 
Исправив эту надоедливую ошибку или добавив новую крутую возможность, о
210
 
которой вы давно мечтали, пришло время удивить ваших друзей и сделать мир
211
 
лучше, сделав ваш код доступным для других. Как уже объяснялось раньше,
212
 
Launchpad это бесплатная служба для размещения веток Bazaar и поэтому вы
213
 
можете опубликовать свою ветку на нём, так чтобы другие смогли получить доступ
214
 
к вашему коду. Например, предположим что вы уже участник соответствующей
215
 
команды, авторизуйтесь на Launchpad таким образом::
216
 
 
217
 
        bzr launchpad-login пользователь
218
 
 
219
 
где `пользователь` - это ваш идентификатор пользователя Launchpad. После этого
220
 
вы можете залить ваши изменения на ветку команды вот так::
221
 
 
222
 
        bzr push lp:~имя-команды/имя-проекта/имя-ветки
223
 
 
224
 
Теперь другие могут скачать ваш код таким образом::
225
 
 
226
 
        bzr branch lp:~имя-команды/имя-проекта/имя-ветки
227
 
 
228
 
 
229
 
Личные ветки
230
 
------------
231
 
 
232
 
Даже если вы не член какой-либо команды Launchpad можно использовать для
233
 
публикации ваших изменений. В этом случае просто создайте личную ветку::
234
 
 
235
 
        bzr push lp:~пользователь/имя-проекта/имя-ветки
236
 
 
237
 
Другие затем могут скачать ваш код таким образом::
238
 
 
239
 
        bzr branch lp:~пользователь/имя-проекта/имя-ветки
240
 
 
241
 
Заметка: даже в случае публикации личной ветки будет вежливо уведомить
242
 
основных разработчиков о вашей ветке, чтобы они смогли взять ваши изменения,
243
 
если они подходят и для других пользователей и соответствуют стандартам
244
 
качества проекта.
245
 
 
246
 
 
247
 
Связывание веток в Launchpad
248
 
============================
249
 
 
250
 
Привязка ветки к сообщению об ошибке
251
 
------------------------------------
252
 
 
253
 
После регистрации ветки вы можете связать её с ошибкой, чтобы заинтересованные
254
 
в ее исправлении люди могли отслеживать изменения и скачать исправление, когда
255
 
оно станет доступно.
256
 
 
257
 
Чтобы сделать это выполните следующие шаги:
258
 
 
259
 
1. Перейдите к странице с нужной ошибкой.
260
 
 
261
 
2. Выберите `Add branch` (Добавить ветку) в разделе `Actions` (Действия).
262
 
 
263
 
3. Выберите ветку.
264
 
 
265
 
4. При желании вы можете изменить состояние (State) связи. По умолчанию
266
 
   состояние будет *Fix In Progress* (Работа над исправлением), но вы можете
267
 
   установить другое состояние, например *Fix Available* (Исправление
268
 
   доступно), если ветка уже содержит исправление.
269
 
 
270
 
При желании вы также можете добавить произвольный комментарий о связи между
271
 
ошибкой и веткой.
272
 
 
273
 
 
274
 
Изменение состояния ветки в Launchpad во время фиксации в Bazaar
275
 
----------------------------------------------------------------
276
 
 
277
 
Bazaar и Launchpad способны работать вместе, чтобы уменьшить ваши заботы по
278
 
управлению состоянием ветки. Когда вы выполняете фиксацию с помощью Bazaar,
279
 
используйте параметр --fixes::
280
 
 
281
 
        bzr commit --fixes lp:1234 -m "..."
282
 
 
283
 
где 1234 |--| это идентификатор ошибки. Эти данные изменят State (состояние
284
 
отношения ветки к ошибке) на *Fix Available* (Исправление доступно). Если одна
285
 
единственная фиксация исправляет несколько ошибок, то параметр --fixes может
286
 
быть указан несколько раз.
287
 
 
288
 
Самое интересное здесь заключается в том, что вам не обязательно иметь доступ
289
 
к Launchpad в момент фиксации. При использовании ``--fixes`` идентификатор
290
 
ошибки сохраняется в виде специальных метаданных, которые Launchpad увидит при
291
 
очередной публикации ваших изменений или когда ваша публичная ветка будет
292
 
просканирована в очередной раз.
293
 
 
294
 
Заметка: Launchpad не будет закрывать сообщение об ошибке только потому, что
295
 
существует ветка с исправлением. Для этого есть несколько причин. Во-первых,
296
 
обычно исправления из вашей ветки должны быть объединены с главной веткой
297
 
разработки, иначе большинство команд не будет считать ошибку исправленной.
298
 
Во-вторых, многие команды придерживаются отдельного процесса для подтверждения
299
 
исправлений ошибок, в добавление к утверждению разработчика об этом.
300
 
 
301
 
Как поясняется далее, функция отслеживания объединений веток на Launchpad в
302
 
настоящее время находится в стадии разработки. Как только эта функция будет
303
 
готова более подходящим поведением станет автоматическое изменение состояния
304
 
ошибки на *Fix Committed* (исправление зафиксировано).
305
 
 
306
 
 
307
 
Связь ветки с планом
308
 
--------------------
309
 
 
310
 
После регистрации ветки вы можете связать её с планом, чтобы люди,
311
 
заинтересованные в этом плане могли отслеживать и тестировать новые
312
 
возможности по мере разработки.
313
 
 
314
 
Чтобы это сделать, выполните следующие шаги:
315
 
 
316
 
1. Перейдите к нужному плану (Blueprint).
317
 
 
318
 
2. Выберите `Link branch` (Связать ветку) в разделе `Actions` (Действия).
319
 
 
320
 
3. Выберите ветку.
321
 
 
322
 
При желании вы также можете добавить произвольный комментарий об отношении
323
 
ветки к плану.
324
 
 
325
 
 
326
 
Управление релизами с помощью Launchpad
327
 
=======================================
328
 
 
329
 
Интеграция изменений
330
 
--------------------
331
 
 
332
 
Когда разработка на ветке закончена и она опубликована, сообщества обычно
333
 
проходят через строгий процесс, прежде чем изменения будут интегрированы в
334
 
основной продукт и предоставлены конечным пользователям. Вот некоторые из
335
 
возможных шагов:
336
 
 
337
 
* просмотр изменений другими участниками проекта
338
 
 
339
 
* принятие решения, в какой релиз будут включены изменения, например, в
340
 
  следующий релиз с исправлениями, или в следующее крупное обновление, или в
341
 
  оба
342
 
 
343
 
* прогон функциональных тестов для выявления ошибок
344
 
 
345
 
* измерение производительности
346
 
 
347
 
* включение в предварительные версии для тестирования конечными пользователями
348
 
 
349
 
* обновление документации, например, заметок о выпуске
350
 
 
351
 
* перевод пользовательского интерфейса и документации на разные языки.
352
 
 
353
 
Этот раздел дает обзор возможностей Launchpad, которые помогают получить
354
 
высокое качество кода в конечном продукте. Хорошая интеграция с Bazaar
355
 
является основой для того, чтобы это прошло гладко.
356
 
 
357
 
Примечание: в тех случаях, когда указано, некоторые из следующих возможностей
358
 
всё ещё находятся в стадии разработки. Если одна или несколько таких
359
 
возможностей вам интересны, рассмотрите возможность вступления в команду
360
 
бета-тестирования Launchpad по следующей ссылке:
361
 
https://help.launchpad.net/JoiningLaunchpadBetaTesters. В этом случае, вы
362
 
сможете получить предварительный доступ к возможностям и сможете дать отзыв
363
 
разработчиками до широкого внедрения.
364
 
 
365
 
 
366
 
Предложение по объединению веток
367
 
--------------------------------
368
 
 
369
 
После перехода к ветке в Launchpad, одно из доступных действий - *Propose for
370
 
merging* (Предложить объединение). Это действие позволяет вам указать, с какой
371
 
веткой этот код мог бы быть объединен.
372
 
 
373
 
Отслеживание знаний о том, какие ветки предлагается объединить в главную,
374
 
помогает менеджерам выпусков держать на виду то, что ещё должно быть
375
 
завершено, либо может быть завершено, до даты выпуска. Используя эту
376
 
информацию, они могут убедиться, что ветки объединены после завершения их
377
 
необходимых обзоров. В простом случае, менеджер выпуска может объединить ветки
378
 
вручную. В более сложных ситуациях, объединение может быть сделано роботом
379
 
(таким, как `PQM`_) автоматически, когда ветки перейдут в правильное состояние
380
 
(например, *Review completed* (Обзор завершен)).
381
 
 
382
 
.. _PQM: https://launchpad.net/pqm
383
 
 
384
 
 
385
 
Отслеживание обзора кода
386
 
------------------------
387
 
 
388
 
Некоторые функции в Launchpad все еще в стадии разработки, например
389
 
отслеживание состояний, обсуждений и результатов обзора кода. Ожидается, что
390
 
эти функции будут интегрированы с предложениями по объединению веток и
391
 
просмотром веток.
392
 
 
393
 
 
394
 
Архивы личных пакетов (PPAs)
395
 
----------------------------
396
 
 
397
 
PPAs помогают разработчикам и командам разработки выдать определенный выпуск
398
 
на руки пользователям для раннего тестирования и получения отзывов. Другими
399
 
словами, PPA позволяет разработчику создать сообщество тестеров,
400
 
заинтересованных в их изменениях. Тестирующее сообщество может установить
401
 
пакеты, запускать их в течение тестового периода, а затем аккуратно удалить их
402
 
из системы.
403
 
 
404
 
Дальнейшую информацию можно найти по адресу
405
 
https://help.launchpad.net/PPAQuickStart
406
 
 
407
 
 
408
 
Переводы
409
 
--------
410
 
 
411
 
Модуль переводов в Launchpad сделан для того чтобы любой желающий мог легко
412
 
присоединиться к переводу приложений на известные ему языки. Переводчики
413
 
защищены от подробностей низкого уровня.
414
 
 
415
 
Launchpad отслеживает переводы для каждой основной версии проекта по
416
 
отдельности, что позволяет переводчикам продолжать совершенствовать перевод
417
 
ваших стабильных релизов, пока другие могут начать работу над новыми версиями,
418
 
которые все ещё находятся в разработке. Скорость перевода увеличивается из-за
419
 
совместного использования ресурсов между проектами. Автоматические подсказки,
420
 
из библиотеки в 750 тысяч переведенных строк, а также сообщество из
421
 
19 тысяч зарегистрированных переводчиков может радикально сократить время,
422
 
необходимое для локализации вашего проекта на многие языки.
423
 
 
424
 
 
425
 
Итоги
426
 
=====
427
 
 
428
 
Сообщества к которым мы присоединяемся, будь то в реальной жизни, или онлайн,
429
 
говорят многое о нас. Обратная сторона этого заключается в инструментах
430
 
которые вы выбираете для сообщества - в частности, CDE и инструмент контроля
431
 
версий. Это может иметь большое значение для тех кто пожелает присоединиться,
432
 
и насколько легко они смогут помочь.
433
 
 
434
 
Сами по себе, Launchpad и Bazaar являются очень полезными инструментами.
435
 
Вместе они могут:
436
 
 
437
 
* помочь вашему сообществу отслеживать основные ресурсы, такие как исходный
438
 
  код и знания;
439
 
* помочь ему расти, снизив вступительный барьер;
440
 
* помочь ему во взаимодействии с зависимыми сообществами.
441
 
 
442
 
В частности, Launchpad является сервисом хранения свободного кода для ваших
443
 
веток Bazaar. Ветки можно просматривать онлайн, их можно связать с ошибками и
444
 
планами. А их статус по отношению к ошибке может автоматически управляться
445
 
упоминанием об ошибке при сохранении в Bazaar. Дальнейшая интеграция находится
446
 
в стадии развития с целью оптимизации процесса от *большой идеи* до
447
 
*работающего кода в руках конечных пользователей*.
448
 
 
449
 
Если у вас есть отзывы или пожелания о том, как лучше интегрировать Bazaar и
450
 
Launchpad, пожалуйста связывайтесь с нами через список рассылки
451
 
bazaar@lists.canonical.com.
452
 
 
453
 
Хотя Launchpad разработан как бесплатный сервис для поддержки проектов с
454
 
открытыми исходными текстами, Canonical может сделать его доступным и для
455
 
разработчиков коммерческого программного обеспечения, в зависимости от их
456
 
требований. Мы с удовольствием выслушаем ваше мнение, если вы считаете, что
457
 
Launchpad был бы полезен для управления вашим сообществом, будь оно открытое
458
 
или нет.
459
 
 
460
 
 
461
 
.. |--| unicode:: U+2014