~bzr-pqm/bzr/bzr.dev

4634.99.1 by Naoki INADA
import doc-ja rev90
1
===========================
2
LaunchpadでBazaarを使う
3
===========================
4
5
6
動機付け
7
==========
8
9
コミュニティはチームとは違う
10
----------------------------------
11
12
ソフトウェアの初回リリースをしなければならない人々のチームというのは、\
13
一人から数千人まで、その規模は多岐に渡ります。
14
その要求に応じて、技術的な課題、経営上の課題、その両方が非常に大きなもの\
15
になる可能性があります。
16
Bazaarユーザガイドで説明したように、"ふさわしい"プロセスを選択し、\
17
それに見合ったワークフローをサポートするBazaarのようなツールを使うことは、\
18
大きな手助けになるでしょう。
19
20
しかし、ソフトウェアによる成功のためには、すばらしいチーム以上のものが\
21
必要です。 - それは、健全で活発な *コミュニティ* です。
22
このグループは、通常はチームよりもはるかに大きく、なぜならそのソフトウェアに\
23
関心のあるすべての人 - 開発チーム、ユーザ、トレーニングパートナー、\
24
サポートパートナー、サードパーティの開発者など - を含むからです。
25
5875.1.1 by INADA Naoki
Update Japanese docs.
26
すばらしいコミュニティというものはフリー(自由)ソフトウェア
27
コミュニティでは良く理解されています。
28
しかし、その適用はオープンソースの世界を越えて広がっています。
29
もっとも成功している商業ソフトウェアのベンダーは、
30
そのフラッグシッププロダクトと共に成長するコミュニティ\
4634.99.1 by Naoki INADA
import doc-ja rev90
31
を作り上げ、運営することがたくみなのです。
32
33
すばらしいチームと同じように、すばらしいコミュニティも偶然できるものではありません。
34
良いポリシーとガイドラインが、参加者同士の健全なコミュニケーションと正しい振る舞い\
35
を育てるために不可欠です。
36
この話題についてもっと深く知りたければ、Karl Fogelのすばらしい著書 - \
37
`Producing Open Source Software <http://www.producingoss.com/>`_ - を見てください。
38
39
40
協調開発に必要なもの
41
---------------------------------------------------
42
43
コミュニティの情報とワークフローを追跡し、管理するためには、賢いツールセットが重要です。
44
そのようなツールを、協調開発環境(Collaborative Development Environments : CDEs)と呼びます。
45
一般的には、WEBベースでアナウンスや案件、バグを管理します。
46
`Launchpad <https://launchpad.net>`_ 、
47
`SourceForge <http://sourceforge.net>`_ 、
48
`java.net <http://java.net>`_ 、
49
`SAP Community Network <https://www.sdn.sap.com/irj/sdn>`_ などに、CDEsの例があります。
50
51
関係するコミュニティとの協調を助ける
52
-------------------------------------------------
53
54
多くの成功しているプロダクトは、その下流にそれを使うたくさんのプロダクトがあります。
55
言いかえると、他のコミュニティとやりとりをして、自分の変更が彼らにどんな影響を与えるかを\
56
理解することで、新しい挑戦が成功するのです。
5875.1.1 by INADA Naoki
Update Japanese docs.
57
これは、以下のようなプロダクトでは特に明白です。:
4634.99.1 by Naoki INADA
import doc-ja rev90
58
59
* プログラム言語、たとえばPyhon、PHP、Ruby、Java、Perlなど
60
* コンパイラ、たとえばgcc、JDKなど
61
* ライブラリ、たとえばzlib、opensslなど
62
* フレームワーク、たとえばZope、Ruby on Rails、Springなど
63
64
.. XXX downstream dependenciesは、直訳だとわかりづらい気がするのでやや意訳
65
   In other wordからの一文の訳がよくわからない
66
67
.. Many successful products have a huge number of downstream dependencies.
68
   In other words, a new challenge arises with success: dealing with other
69
   communities and understanding how your changes will impact them. This is
70
   most obvious for projects like:
71
72
しかし、アドオン機能を持つメジャーなアプリケーション、たとえばFirefox、Thundervird、\
73
OpenOffice.org、Drupal、Wordpress、Joomlaなどにも、このことはあてはまります。
74
75
コミュニティの境界をこえて案件や障害修正の追跡と管理をするための作業をサポートして\
76
くれるツールが必要です。
77
そのようなツールは、両極端にいるどちらのユーザも助けてくれます。:
78
79
* 自分のことばで問題を報告することができるユーザ。
80
  たとえば、「オペレーションシステムX上のアプリケーションYで、Zタイプのイメージの\
81
  レンダリングがおかしい」など
82
83
* 変更や障害修正が下流のプロダクトに与える影響をよりよく評価できる開発者。
84
  たとえば、「グラフィックライブラリのバグを修正することにより、これらの10個のOS上の\
85
  5つのアプリケーションに恩恵がある」など
86
87
その間にいる人々は、 *点線をつなぎ* 、上流と下流との間のコミュニケーションを担うという\
88
重要な役割を果たします。
89
多くの場合、彼らはエンドユーザのためにバグを修正したり、パッチをリリースしたり、上流の\
90
開発チームに修正内容を提示したりします。
91
それらすべてを持続可能な方法で常に追跡しつづけることは、簡単なことではありません。
92
93
Launchpad: 開発をもっと効果的に、摩擦は少なく
94
-------------------------------------------------
95
5875.1.1 by INADA Naoki
Update Japanese docs.
96
Canonical は、 `Ubuntu <http://www.ubuntu.com>`_ や `Bazaar <http://bazaar.canonical.com>`_
97
の開発に出資しているのと同じように、
98
オープンソースコミュニティ向けの無料のサービスとして
99
Launchpad <https:launchpad.net> も提供しています。
100
Launchpadは、以下の注目すべき理由から、もっともエキサイティングな
101
CDEsのひとつです。
4634.99.1 by Naoki INADA
import doc-ja rev90
102
103
* トラッキング対象のたくさんのもの同士の関係を具体化しています。
104
  たとえば、ソースコードのブランチをバグ修正に関連づけることができます。
105
106
* これまでの資産を管理するのと同じように、ロードマップ、マイルストーン、ブループリントの\
107
  機能によってこれからの開発の計画や追跡もできます。
108
109
* 翻訳ツールやパッケージングサービスを提供することで、翻訳者やテスターがコミュニティに参加し、\
110
  貢献するときの抵抗を少なくしています。
111
112
* 違うコミュニティ同士が、関連する案件やロードマップに対してともに作業するための結びつきを\
113
  提供します。
114
115
言いかえると、Launchpadは、あなたのコミュニティの成長を助け、 *コミュニティ内* と\
116
*コミュニティ間* との両方でワークフローの摩擦を減らすようにデザインされています。
117
究極的には、機械的なタスクにつかう時間をなくし、興味ぶかい開発により多くの時間を\
118
さけるようにすることを意味しています。
119
120
Bazaar: Launchpadのバージョン管理クライアント
121
---------------------------------------------
122
123
このチュートリアルは、BazaarとLaunchpadがどのようにして一緒に使うことができ、\
124
どれだけお互いを引き立てあうのかを考えます。
125
以下のことは覚えておいてください。:
126
127
1. BazaarはLaunchpadなしで使うこともできます。
128
2. LaunchpadはBazaarなしで使うこともできます。
129
5875.1.1 by INADA Naoki
Update Japanese docs.
130
それでも、別々に使うよりも一緒に使った方がより大きな力を発揮するように設計されています。
131
132
133
Launchpadでのブランチの検索、閲覧
134
===================================
135
136
利用できるブランチの検索
4634.99.1 by Naoki INADA
import doc-ja rev90
137
--------------------------
138
5875.1.1 by INADA Naoki
Update Japanese docs.
139
分散型バージョン管理を導入することには多くの利点がありますが、できなくなってしまうこと\
140
のひとつとして、利用できるすべてのブランチについて知っている中央サーバがないという点が\
141
あります。
142
実際、分散環境では、関連するブランチは、インターネット中の文字どおり100もの場所に存在する\
143
可能性があります。(もしくは、イントラネットの中でも同様です。)
144
145
Launchpadは、ブランチのデータベースを提供することによって、このギャップをなくします。
146
147
ブランチの登録
4634.99.1 by Naoki INADA
import doc-ja rev90
148
--------------------
149
5875.1.1 by INADA Naoki
Update Japanese docs.
150
ブランチはLaunchPadにアップロードすることもできますし、別の場所にあるブランチを単に登録する\
151
こともできます。
152
また、ブランチには *New(新規)* 、 *Development(開発バージョン)* 、 *Mature(安定)* 、 *Abandoned(破棄)*
153
というステータスを付加することができます。
154
155
Note: 外部のブランチは、CVSやSubversionのような従来のバージョン管理ツールでホストされて\
156
いても構いません。
157
これらのシステム上のコードは定期的にスキャンされ、Bazaarのブランチに変換されます。
158
もちろん、最大限の正確さを求めるのであれば、外部のブランチをBazaarでホストすることが望ましいです。
159
160
ブランチの閲覧
4634.99.1 by Naoki INADA
import doc-ja rev90
161
-----------------
162
5875.1.1 by INADA Naoki
Update Japanese docs.
163
ブランチは、名前、登録者、作者、ステータス、世代、最終コミット時刻などの多くの属性によって\
164
リストアップやフィルタリング、並べ替えができます。
165
また、ブランチを閲覧することによって、以下のようなことが簡単に分かります。:
166
167
* ブランチがどこからダウンロードできるか
168
* 変更をアップロードする方法
169
* それぞれで行った最近のコミットと変更内容
170
* 指定したバージョンの個々のファイルのソースコード
171
172
173
Launchpad上のコードへのBazaarでのアクセス
174
=========================================
175
176
プロジェクトのコードの取得
177
----------------------------
178
179
Launchpad 上には多数のプロジェクトがあり、その最新のコードがBazaarで
180
管理されていても、CVSやSubversionで管理されていても、Bazaarを使って
181
以下のように簡単にコードを取得することができます。 ::
4634.99.1 by Naoki INADA
import doc-ja rev90
182
183
  bzr branch lp:project-name
184
5875.1.1 by INADA Naoki
Update Japanese docs.
185
`project-name` は、Launchpad上のプロジェクトIDです。以下にいくつか例を挙げます。::
4634.99.1 by Naoki INADA
import doc-ja rev90
186
187
  bzr branch lp:inkscape
188
  bzr branch lp:amarok
189
  bzr branch lp:python
190
  bzr branch lp:rails
191
  bzr branch lp:java-gnome
192
5875.1.1 by INADA Naoki
Update Japanese docs.
193
そのあと、好きなエディタやIDEを使って、コードを手元で参照したり、必要があれば編集したり\
194
することができます。
195
196
もし、プロジェクトに複数のシリーズ(例えば、開発用とメンテナンス用)が登録されている場合は、\
197
以下のコマンドで指定したシリーズの最新のコードを取得することができます。::
198
199
 bzr branch lp:project-name/series
200
201
変更内容の公開
4634.99.1 by Naoki INADA
import doc-ja rev90
202
-----------------------
203
5875.1.1 by INADA Naoki
Update Japanese docs.
204
イライラするバグを修正したり、ずっと欲しかったクールな機能を追加したりしたら、それを友達に\
205
アピールしたり、そのコードを他の人に公開して世の中をもっと良くするときです。
206
これまでに説明したとおり、LaunchpadはBazaarによる無料のコードホスティングサービスなので、自分の\
207
ブランチをプッシュして他の人がそこからコードにアクセスできるようにすることができます。
208
例えば、あなたが関連するチームのメンバーだとすると、以下のようにLaunchpadにログインします。::
4634.99.1 by Naoki INADA
import doc-ja rev90
209
210
  bzr launchpad-login userid
211
5875.1.1 by INADA Naoki
Update Japanese docs.
212
`userid` は、LaunchpadのユーザIDです。
213
そのあと、以下のように変更をチームのブランチにプッシュすることができます。::
4634.99.1 by Naoki INADA
import doc-ja rev90
214
215
  bzr push lp:~team-name/project-name/branch-name
216
5875.1.1 by INADA Naoki
Update Japanese docs.
217
他の人は、以下のようにそのコードをダウンロードすることができます。::
4634.99.1 by Naoki INADA
import doc-ja rev90
218
219
  bzr branch lp:~team-name/project-name/branch-name
220
221
5875.1.1 by INADA Naoki
Update Japanese docs.
222
自分用のブランチ
4634.99.1 by Naoki INADA
import doc-ja rev90
223
-----------------
224
5875.1.1 by INADA Naoki
Update Japanese docs.
225
あなたがチームのメンバーではなかったとしても、Launcpadであなたの変更内容を公開することができます。
226
この場合、以下のようにして単純に自分用のブランチを作成します。::
4634.99.1 by Naoki INADA
import doc-ja rev90
227
228
  bzr push lp:~userid/project-name/branch-name
229
5875.1.1 by INADA Naoki
Update Japanese docs.
230
他の人は、以下のようにそのコードをダウンロードすることができます。::
4634.99.1 by Naoki INADA
import doc-ja rev90
231
232
  bzr branch lp:~userid/project-name/branch-name
233
5875.1.1 by INADA Naoki
Update Japanese docs.
234
Note: 自分用のブランチに公開したときも、ちゃんと上流の開発者にあなたのブランチについて通知されるので、\
235
全てのユーザに一般的に適用できる内容で、かつプロジェクトの品質基準を満たしていれば、彼らはその変更を\
236
プルすることができます。
237
238
.. Package source branches
239
240
パッケージのソースブランチ
241
-----------------------------
242
243
`maintaining packages for Ubuntu using Bazaar` に書かれているとおり、
244
Launchpad から簡単にパッケージのソースブランチにアクセスできます。
245
現在の(デフォルトの)系列のパッケージのソースブランチは、次のようなコマンドで
246
ダウンロードできます。 ::
247
248
  bzr branch ubuntu:package
249
250
ここで、 *package* はアクセスしたい Ubuntu のパッケージ名です。
251
Ubuntu の特定の系列 (例: Maverick, Lucid) のパッケージブランチを
252
ダウンロードするには、次のコマンドを使います。 ::
253
254
  bzr branch ubuntu:maverick/package
255
256
Ubuntu の系列は単に最初の文字を使う形に省略することができます。
257
たとえば、上の例は次のようにも書けます。
258
259
  bzr branch ubuntu:m/package
260
261
いくつかの Debian の系列でも、 Launchpad からソースブランチをダウンロードする
262
ことができます。デフォルトの系列であれば次のようにダウンロードできます。 ::
263
264
  bzr branch debianlp:package
265
266
そして、特定の系列の場合は次のようになります。 ::
267
268
  bzr branch debianlp:lenny/package
269
270
``debianlp:`` スキーマは Launchpad にある Debian のソースブランチにしか
271
アクセスできないので注意してください。
272
273
.. _`maintaining packages for Ubuntu using Bazaar`: https://wiki.ubuntu.com/DistributedDevelopment
274
275
276
Lanchpadでのブランチの関連づけ
277
===============================
278
279
ブランチをバグと関連付ける
4634.99.1 by Naoki INADA
import doc-ja rev90
280
-------------------------------
281
5875.1.1 by INADA Naoki
Update Japanese docs.
282
ブランチを登録したあと、それにバグを関連づけることができます。
283
そうすることで、そのバグに関心をもつ人々がそのブランチを追いかけ、修正が公開されたらダウンロード\
284
することができます。
285
286
そのための手順は以下のとおりです。
287
288
1. Questionから、そのバグに移動します。
289
290
2. `Actions` から `Add branch` を選択します。
291
292
3. ブランチを選択します。
293
294
4. 必要に応じて、関連づけのステータスを設定します。
295
   *Fix In Progress(修正中)* がデフォルトですが、すでにブランチ内にで問題に対処しているのなら、\
296
   *Fix Available(修正済)* に設定することもできます。
297
298
もし望むのなら、バグとブランチとの関連づけに好きなコメントをつけることもできます。
299
300
BazaarでのコミットによるLaunchpadのステータスの変化
4634.99.1 by Naoki INADA
import doc-ja rev90
301
----------------------------------------------------------
302
5875.1.1 by INADA Naoki
Update Japanese docs.
303
BazzarとLaunchpadを一緒につかうことで、ステータスのメンテナンス作業をへらすことができます。
304
Bazaarでコミットしたときに、以下のように--fixesオプションを指定します。::
4634.99.1 by Naoki INADA
import doc-ja rev90
305
306
  bzr commit --fixes lp:1234 -m "..."
307
5875.1.1 by INADA Naoki
Update Japanese docs.
308
この1234というのはバグIDです。こうすると、バグ-ブランチ間の関連づけのステータスが *Fix Available* \
309
に変わります。
310
一回のコミットで複数の問題を修正する場合には、--fixesオプションを複数回指定できます。
311
312
この機能のすばらしい点のひとつは、コミットするときにLaunchpadにアクセスできなくてもいいということです。
313
``--fixes`` オプションではメタデータを保存し、次にそのブランチがLaunchpadにプッシュされたときか、\
314
オンラインで再スキャンされたときに、Launchpadはそのメタデータを検出します。
315
316
Note: Launchpadは、ブランチでバグが修正されたからといって勝手にバグをクローズすることはありません。
317
これにはいくつかの理由があります。
318
一つ目の理由は、ほとんどのチームでは、たいていブランチをトランク(メインの開発ブランチ)にマージしないと\
319
バグが修正されたとはみなさないためです。
320
二つ目の理由は、多くのチームでは、バグが修正されたことを確認するためには、「開発者がそう言っている」と\
321
いうだけではなくそれ以外のプロセスがあるためです。
322
323
あとで説明しますが、マージ管理機能が現在Launchpadで開発されており、この機能がリリースされれば、バグの\
324
ステータスを *Fix Committed* に自動変更する機能がもっと適切なものになります。
325
326
327
ブランチをブループリントと関連づける
4634.99.1 by Naoki INADA
import doc-ja rev90
328
-------------------------------------
329
5875.1.1 by INADA Naoki
Update Japanese docs.
330
ブランチを登録したあと、それにブループリントを関連付けることができます。
331
そうすることで、そのブループリントに関心を持つ人々がそのブランチを追いかけ、開発中の新機能をテストする\
332
ことができます。
333
334
そのための手順は以下の通りです。
335
336
1. Questionから、そのブループリントに移動します。
337
338
2. `Actions` から `Link branch` を選択します。
339
340
3. ブランチを選択します。
341
342
もし望むのなら、ブループリントとブランチとの関連づけに好きなコメントをつけることもできます。
343
344
345
Launchpadをつかったリリースの管理
4634.99.1 by Naoki INADA
import doc-ja rev90
346
=================================
347
5875.1.1 by INADA Naoki
Update Japanese docs.
348
変更内容の統合
4634.99.1 by Naoki INADA
import doc-ja rev90
349
-------------------
350
5875.1.1 by INADA Naoki
Update Japanese docs.
351
ブランチが開発され、公開されたら、コミュニティでは一般的に、その変更内容をコアプロダクトに統合して\
352
エンドユーザにリリースする前に厳格なプロセスを通します。
353
その中には、以下のような手順が含まれるでしょう。:
354
355
* 仲間による変更内容のレビュー
356
357
* どのリリースにその変更を含めるかの決定。たとえば、次のメンテナンスリリース、次のメジャーリリース、\
358
  もしくはその両方。
359
360
* 機能の回帰テストの実行
361
362
* パフォーマンスが基準を満たすかどうかを確認するためのベンチマーキング
363
364
* エンドユーザテストのための早期提供リリースの作成
365
366
* ドキュメントの更新。たとえば、そのリリースのためのリリースノートなど
367
368
* ユーザインターフェイスやドキュメントの他言語への翻訳
369
370
このセクションでは、プロダクトのコードの品質を高めるために役立つLaunchpadの機能のいくつかについて簡単に\
371
説明します。
372
Bazaarとの強力な一体化が、それをスムーズにするためのポイントです。
373
374
Note: 以下にあげる機能の中には、まだ開発中のものもあります。
375
もし、これらの機能に興味があるのなら、以下のリンクでLaunchpadベータテストチームへの参加を検討してください。:
376
https://help.launchpad.net/JoiningLaunchpadBetaTesters
377
そうすれば、各機能の早期提供版を手に入れて、広くリリースされる前に開発者にフィードバックを送ることができます。
378
379
380
ブランチのマージの提案
381
-----------------------
382
383
Launchpadでブランチに移動したあとに実行できるアクションのひとつに、 *Propose for merging(マージの提案)*
384
があります。
385
この機能では、どのブランチがこのコードを取り入れるべきかを指定します。
386
387
どのブランチがコードラインへのマージ提案中なのかという情報を追跡することは、リリース管理者が、\
388
リリース日までに何を完了させなければならないか、または何を完了させることができるかを常に把握するために役立ちます。
389
この情報をもとに、必要なレビューを実行してからブランチをマージすることを確実に行うことができます。
390
単純なケースでは、リリース管理者は手作業でブランチをマージします。
391
もっと高度なケースでは、ブランチがあるべきステータス(たとえば、 *Review completed(レビュー完了)*)になった\
392
ときにロボット(`PQM`_ のような)に自動的にマージさせることができます。
393
394
.. _PQM: https://launchpad.net/pqm
395
396
397
コードレビューの追跡
4634.99.1 by Naoki INADA
import doc-ja rev90
398
----------------------
399
5875.1.1 by INADA Naoki
Update Japanese docs.
400
コードレビューの状態や会話の内容、成果物を追跡するために、Launchpadでたくさんの機能が開発されています。
401
これらの機能は、ブランチのマージ提案やブランチ閲覧の機能に統合されると思われます。
402
403
404
パーソナルパッケージアーカイブ(PPA)
405
------------------------------------
406
407
PPAは、開発者や開発チームが、早期提供版でテストとフィードバックを行うユーザにカスタムビルドモジュールを渡す\
408
手助けをします。
409
言い方を変えると、PPAによって、開発者はその変更内容に関心を持つテスターのコミュニティを結成することが\
410
できるようになります。
411
テスティングコミュニティは、パッケージをインストールし、テスト期間中にそれを実行し、その後はシステムから\
412
きれいに削除することができます。
413
414
より詳細な情報は、 https://help.launchpad.net/PPAQuickStart を参照してください。
415
416
417
翻訳
4634.99.1 by Naoki INADA
import doc-ja rev90
418
------------
419
5875.1.1 by INADA Naoki
Update Japanese docs.
420
Launchpadの翻訳モジュールは、誰もがアプリケーションを自分が知る言語に簡単に翻訳できるように設計されています。
421
翻訳者は、深いレベルの詳細を知る必要はありません。
422
423
Launchpadは、プロジェクトの各メジャーバージョンに対する翻訳を別々に記録するので、だれかが新しい開発バージョンの\
424
作業を始めていても、安定版の翻訳の改良を続けることができます。
425
プロジェクトをまたがってリソースを共有することにより、翻訳のスピードを短縮しています。
426
75万件の翻訳済みのテキストのライブラリからの自動抽出機能と、1万9千人の翻訳者のコミュニティとが、プロジェクトを\
427
多くの言語に翻訳する時間を短縮してくれます。
428
429
.. XXX Translation speed in reduces by sharing resources across projects. > in は isの間違いだと思われる。
430
431
要約
4634.99.1 by Naoki INADA
import doc-ja rev90
432
=======
433
5875.1.1 by INADA Naoki
Update Japanese docs.
434
私たちが参加するコミュニティは、それがオフラインであれオンラインであれ、私たちがどのような種類の人間であるかを\
435
表すものです。
436
逆に言うと、あなたがコミュニティのために選ぶツール - 特に、CDEとバージョン管理ツール - は、誰がそのコミュニティ\
437
に参加するのかということ、また、その人たちがどれだけ簡単にコミュニティに貢献できるかということに大きな影響を与えます。
438
439
LaunchpadとBazaarは、単独でもとても役に立つツールです。
440
一緒に使えば、以下のことが可能になります。:
441
442
* コミュニティの、ソースコードやナレッジのような資産の追跡を助ける。
443
* コミュニティへの参加の妨げを軽減して、コミュニティの成長を促す。
444
* 関係するコミュニティとのやりとりを助ける。
445
446
具体的には、LaunchpadはあなたのBazaarブランチを管理する無料のコードホスティングサービスであり、ブランチをオンラインで\
447
閲覧でき、ブランチとバグやブループリントを関連づけることができ、Bazaarへのコミット時にバグについて記述することによって\
448
ブランチ-バグ間のステータスを自動的に変更することができます。
449
*すばらしいアイデア* を、 *エンドユーザの元で実行されるコード* にするまでのプロセスを合理化するための、より進んだ統合\
450
機能が現在開発中です。
451
452
もし、BazaarとLaunchpadがさらにどのように統合されてほしいかについて、何かフィードバックすることがあるのなら、\
453
Bazzarメーリングリストで私たちに連絡してください。
4634.99.1 by Naoki INADA
import doc-ja rev90
454
bazaar@lists.canonical.com.
455
5875.1.1 by INADA Naoki
Update Japanese docs.
456
Launchpadは自由ソフトウェアプロジェクトをサポートするための無料のサービスとしてデザインされていますが、Canonicalはこれを\
457
商業ソフトウェアの開発者にも、その要望次第で提供することができます。
458
オープンソースであってもなくても、Launchpadがあなたのコミュニティの運営に役立つと考えていただけるのならば幸いです。
459