~jelmer/ubuntu/natty/bzr/sru-2.3.4

« back to all changes in this revision

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

  • Committer: Bazaar Package Importer
  • Author(s): John Francesco Ferlito
  • Date: 2009-12-16 21:43:42 UTC
  • mfrom: (1.4.3 upstream)
  • Revision ID: james.westby@ubuntu.com-20091216214342-hm3wuhzt5rvb5bei
New upstream release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
===========================
 
2
LaunchpadでBazaarを使う
 
3
===========================
 
4
 
 
5
 
 
6
動機付け
 
7
==========
 
8
 
 
9
コミュニティはチームとは違う
 
10
----------------------------------
 
11
 
 
12
ソフトウェアの初回リリースをしなければならない人々のチームというのは、\
 
13
一人から数千人まで、その規模は多岐に渡ります。
 
14
その要求に応じて、技術的な課題、経営上の課題、その両方が非常に大きなもの\
 
15
になる可能性があります。
 
16
Bazaarユーザガイドで説明したように、"ふさわしい"プロセスを選択し、\
 
17
それに見合ったワークフローをサポートするBazaarのようなツールを使うことは、\
 
18
大きな手助けになるでしょう。
 
19
 
 
20
.. The team of people required to create the initial release
 
21
   of a piece of software may vary in size from one person
 
22
   to several thousand people. Depending on the requirements,
 
23
   the challenges involved, both technical and managerial,
 
24
   can be immense. As explained in the Bazaar User Guide, selecting
 
25
   "just right" processes and using tools like Bazaar to support
 
26
   matching workflows can greatly help.
 
27
 
 
28
しかし、ソフトウェアによる成功のためには、すばらしいチーム以上のものが\
 
29
必要です。 - それは、健全で活発な *コミュニティ* です。
 
30
このグループは、通常はチームよりもはるかに大きく、なぜならそのソフトウェアに\
 
31
関心のあるすべての人 - 開発チーム、ユーザ、トレーニングパートナー、\
 
32
サポートパートナー、サードパーティの開発者など - を含むからです。
 
33
 
 
34
.. Success with software though requires more than a great team - it
 
35
   requires a healthy, active *community*. This group is typically
 
36
   far larger than the team as it includes everyone interested in
 
37
   the software: the team, users, training partners, support partners,
 
38
   third-party developers and so on.
 
39
 
 
40
すばらしいコミュニティというものはオープンソースの世界では良く理解されています。
 
41
しかし、その適用はオープンソースの世界を越えて広がっています。: もっとも成功している\
 
42
商業ソフトウェアのベンダーは、そのフラッグシッププロダクトと共に成長するコミュニティ\
 
43
を作り上げ、運営することがたくみなのです。
 
44
 
 
45
.. Great communities are well understood in the open source world.
 
46
   Their applicability extends well beyond that though: most
 
47
   successful commercial software vendors are well skilled at
 
48
   building and managing the communities that grow up around
 
49
   their flagship products.
 
50
 
 
51
すばらしいチームと同じように、すばらしいコミュニティも偶然できるものではありません。
 
52
良いポリシーとガイドラインが、参加者同士の健全なコミュニケーションと正しい振る舞い\
 
53
を育てるために不可欠です。
 
54
この話題についてもっと深く知りたければ、Karl Fogelのすばらしい著書 - \
 
55
`Producing Open Source Software <http://www.producingoss.com/>`_ - を見てください。
 
56
 
 
57
.. Like great teams, great communities don't just happen.
 
58
   Good policies and guidelines are essential for
 
59
   fostering the right sort of behaviour and healthy
 
60
   relationships between participants. For a deeper look at
 
61
   this topic, see Karl Fogel's landmark book:
 
62
   `Producing Open Source Software <http://www.producingoss.com/>`_.
 
63
 
 
64
 
 
65
協調開発に必要なもの
 
66
---------------------------------------------------
 
67
 
 
68
コミュニティの情報とワークフローを追跡し、管理するためには、賢いツールセットが重要です。
 
69
そのようなツールを、協調開発環境(Collaborative Development Environments : CDEs)と呼びます。
 
70
一般的には、WEBベースでアナウンスや案件、バグを管理します。
 
71
`Launchpad <https://launchpad.net>`_ 、
 
72
`SourceForge <http://sourceforge.net>`_ 、
 
73
`java.net <http://java.net>`_ 、
 
74
`SAP Community Network <https://www.sdn.sap.com/irj/sdn>`_ などに、CDEsの例があります。
 
75
 
 
76
.. An intelligent toolset is also important for tracking and managing
 
77
   community information and workflows. These tools are called
 
78
   Collaborative Development Environments (CDEs). These toolsets are
 
79
   typically web-based and manage things such as announcements,
 
80
   issues/bugs, questions and answers, downloads, documents and
 
81
   source code. Some examples of CDEs include
 
82
   `Launchpad <https://launchpad.net>`_,
 
83
   `SourceForge <http://sourceforge.net>`_,
 
84
   `java.net <http://java.net>`_ and
 
85
   `SAP Community Network <https://www.sdn.sap.com/irj/sdn>`_.
 
86
 
 
87
 
 
88
関係するコミュニティとの協調を助ける
 
89
-------------------------------------------------
 
90
 
 
91
多くの成功しているプロダクトは、その下流にそれを使うたくさんのプロダクトがあります。
 
92
言いかえると、他のコミュニティとやりとりをして、自分の変更が彼らにどんな影響を与えるかを\
 
93
理解することで、新しい挑戦が成功するのです。
 
94
これは、以下のようなプロダクトで特に明白です。:
 
95
 
 
96
* プログラム言語、たとえばPyhon、PHP、Ruby、Java、Perlなど
 
97
* コンパイラ、たとえばgcc、JDKなど
 
98
* ライブラリ、たとえばzlib、opensslなど
 
99
* フレームワーク、たとえばZope、Ruby on Rails、Springなど
 
100
 
 
101
.. XXX downstream dependenciesは、直訳だとわかりづらい気がするのでやや意訳
 
102
   In other wordからの一文の訳がよくわからない
 
103
 
 
104
.. Many successful products have a huge number of downstream dependencies.
 
105
   In other words, a new challenge arises with success: dealing with other
 
106
   communities and understanding how your changes will impact them. This is
 
107
   most obvious for projects like:
 
108
 
 
109
.. * software languages, e.g. Python, PHP, Ruby, Java, Perl, etc.
 
110
   * compilers, e.g. gcc, JDK, etc.
 
111
   * libraries, e.g. zlib, openssl, etc.
 
112
   * frameworks, e.g. Zope, Ruby on Rails, Spring, etc.
 
113
 
 
114
しかし、アドオン機能を持つメジャーなアプリケーション、たとえばFirefox、Thundervird、\
 
115
OpenOffice.org、Drupal、Wordpress、Joomlaなどにも、このことはあてはまります。
 
116
 
 
117
.. However it applies equally for popular applications on which add-ons are
 
118
   built, e.g. Firefox, Thunderbird, OpenOffice.org, Drupal, Wordpress, Joomla,
 
119
   etc.
 
120
 
 
121
コミュニティの境界をこえて案件や障害修正の追跡と管理をするための作業をサポートして\
 
122
くれるツールが必要です。
 
123
そのようなツールは、両極端にいるどちらのユーザも助けてくれます。:
 
124
 
 
125
* 自分のことばで問題を報告することができるユーザ。
 
126
  たとえば、「オペレーションシステムX上のアプリケーションYで、Zタイプのイメージの\
 
127
  レンダリングがおかしい」など
 
128
 
 
129
* 変更や障害修正が下流のプロダクトに与える影響をよりよく評価できる開発者。
 
130
  たとえば、「グラフィックライブラリのバグを修正することにより、これらの10個のOS上の\
 
131
  5つのアプリケーションに恩恵がある」など
 
132
 
 
133
.. Tools that assist communities work together to track and manage
 
134
   issues and fixes across community boundaries are required. These
 
135
   tools help people at both ends of the spectrum:
 
136
 
 
137
.. * users can report problems in their terms, e.g. rendering of image
 
138
     type X is broken in application Y on operating system Z
 
139
 
 
140
.. * developers can better appreciate the downstream impact of making a
 
141
     change or fix, e.g. fixing this bug in a graphics library will
 
142
     make the users of these 5 applications on these 10 operating
 
143
     systems happy.
 
144
 
 
145
その間にいる人々は、 *点線をつなぎ* 、上流と下流との間のコミュニケーションを担うという\
 
146
重要な役割を果たします。
 
147
多くの場合、彼らはエンドユーザのためにバグを修正したり、パッチをリリースしたり、上流の\
 
148
開発チームに修正内容を提示したりします。
 
149
それらすべてを持続可能な方法で常に追跡しつづけることは、簡単なことではありません。
 
150
 
 
151
.. People in the middle play the essential role of *joining the dots* and
 
152
   communicating up and down the line. In many cases, they may also fix the
 
153
   problem for end users, releasing a patch and pushing a suggested fix
 
154
   to the upstream development team. Keeping track of all that over time
 
155
   in a sustainable way is no easy task.
 
156
 
 
157
 
 
158
Launchpad: 開発をもっと効果的に、摩擦は少なく
 
159
-------------------------------------------------
 
160
 
 
161
`Ubuntu <http://www.ubuntu.com>`_ の開発に出資しているのと同じように、Canonicalは\
 
162
オープンソースコミュニティ向けの無料のサービスとしてLaunchpad(https:launchpad.net)も\
 
163
提供しています。
 
164
Launchpadは、以下の注目すべき理由から、もっともエキサイティングなCDEsのひとつです。:
 
165
 
 
166
* トラッキング対象のたくさんのもの同士の関係を具体化しています。
 
167
  たとえば、ソースコードのブランチをバグ修正に関連づけることができます。
 
168
 
 
169
* これまでの資産を管理するのと同じように、ロードマップ、マイルストーン、ブループリントの\
 
170
  機能によってこれからの開発の計画や追跡もできます。
 
171
 
 
172
* 翻訳ツールやパッケージングサービスを提供することで、翻訳者やテスターがコミュニティに参加し、\
 
173
  貢献するときの抵抗を少なくしています。
 
174
 
 
175
* 違うコミュニティ同士が、関連する案件やロードマップに対してともに作業するための結びつきを\
 
176
  提供します。
 
177
 
 
178
.. As well as sponsoring `Ubuntu <http://www.ubuntu.com>`_ and
 
179
   `Bazaar <http://bazaar-vcs.org>`_ development, Canonical
 
180
   provides Launchpad, https://launchpad.net, as a free service
 
181
   for the open source community. Launchpad is one of the most
 
182
   exciting CDEs around for several notable reasons:
 
183
 
 
184
.. * it models relationships between many of things tracked, e.g.
 
185
     source code branches can be associated with bug fixes
 
186
 
 
187
.. * as well are managing historical knowledge,
 
188
     it supports future development planning and tracking by providing
 
189
     features such as roadmaps, milestones and blueprints
 
190
 
 
191
.. * it provides translation tools and packaging services so that
 
192
     barriers are reduced for translators and testers wishing to
 
193
     join your community and help out
 
194
 
 
195
.. * it provides a nexus for different communities to work
 
196
     together on related issues and roadmaps.
 
197
 
 
198
言いかえると、Launchpadは、あなたのコミュニティの成長を助け、 *コミュニティ内* と\
 
199
*コミュニティ間* との両方でワークフローの摩擦を減らすようにデザインされています。
 
200
究極的には、機械的なタスクにつかう時間をなくし、興味ぶかい開発により多くの時間を\
 
201
さけるようにすることを意味しています。
 
202
 
 
203
.. In other words, Launchpad has been designed to help your
 
204
   community grow and to reduce the workflow friction both
 
205
   *within* your community and *between* communities. Ultimately,
 
206
   that means less time on mechanical tasks and more time for
 
207
   interesting development.
 
208
 
 
209
 
 
210
Bazaar: Launchpadのバージョン管理クライアント
 
211
---------------------------------------------
 
212
 
 
213
このチュートリアルは、BazaarとLaunchpadがどのようにして一緒に使うことができ、\
 
214
どれだけお互いを引き立てあうのかを考えます。
 
215
以下のことは覚えておいてください。:
 
216
 
 
217
1. BazaarはLaunchpadなしで使うこともできます。
 
218
2. LaunchpadはBazaarなしで使うこともできます。
 
219
 
 
220
それでも、別々に使うよりも一緒に使った方がよりパワフルになるよう設計されています。
 
221
 
 
222
.. This tutorial looks at how Bazaar and Launchpad can be used together
 
223
   and how they complement each other. It is important to remember that:
 
224
 
 
225
.. 1. Bazaar can be used without Launchpad
 
226
.. 2. Launchpad can be used without Bazaar.
 
227
 
 
228
.. By design though, their sum is greater than the individual
 
229
   parts.
 
230
 
 
231
 
 
232
Finding and browsing branches using Launchpad
 
233
=============================================
 
234
 
 
235
Finding available branches
 
236
--------------------------
 
237
 
 
238
While there are many advantages in adopting distributed version
 
239
control, one of the things that disappears is the all-knowing
 
240
central server with knowledge about all available branches. Indeed
 
241
in a distributed environment, interesting branches can literally
 
242
exist in 100s of locations across the Internet (or within an
 
243
Intranet for that matter).
 
244
 
 
245
Launchpad fills this gap by providing a registry of branches.
 
246
 
 
247
 
 
248
Registering branches
 
249
--------------------
 
250
 
 
251
Branches can be uploaded to Launchpad or simply registered
 
252
as being available in an external location. Branches can also
 
253
be given a Status such as *New*, *Development*, *Mature* or
 
254
*Abandoned*.
 
255
 
 
256
Note: External branches can even be hosted in legacy version control
 
257
tools, i.e. CVS and Subversion. Code in these systems will be
 
258
scanned and converted to Bazaar branches on a periodic basis.
 
259
For maximum fidelity of course, it is preferable for external
 
260
branches to be hosted in Bazaar.
 
261
 
 
262
 
 
263
Browsing branches
 
264
-----------------
 
265
 
 
266
Branches can be listed, filtered and sorted by numerous
 
267
attributes including Name, Registrant, Author, Status, Age and
 
268
time of last commit. Browsing of branches is also provided making
 
269
it easy to see things such as:
 
270
 
 
271
* where the branch can be downloaded from
 
272
* how to upload changes
 
273
* recent commits and the changes made by each
 
274
* the source code of individual files for a given version.
 
275
 
 
276
 
 
277
Accessing code in Launchpad using Bazaar
 
278
========================================
 
279
 
 
280
Getting the code for an open source project
 
281
-------------------------------------------
 
282
 
 
283
As Launchpad keeps track of thousands of open source projects
 
284
and their latest code whether it be managed by Bazaar, CVS or Subversion,
 
285
Bazaar users can grab that code as easily as this::
 
286
 
 
287
  bzr branch lp:project-name
 
288
 
 
289
where `project-name` is the Launchpad project ID. Here are some examples::
 
290
 
 
291
  bzr branch lp:inkscape
 
292
  bzr branch lp:amarok
 
293
  bzr branch lp:python
 
294
  bzr branch lp:rails
 
295
  bzr branch lp:java-gnome
 
296
 
 
297
You can then browse the code locally using your favorite editor or IDE and
 
298
change the code if you wish.
 
299
 
 
300
If a project has multiple series registered (e.g. a development series and a
 
301
maintenance series), the latest code for a given series can be fetched using::
 
302
 
 
303
  bzr branch lp:project-name/series
 
304
 
 
305
Publishing your changes
 
306
-----------------------
 
307
 
 
308
Having fixed that annoying bug or added that cool feature you've always
 
309
wanted, it's time to impress your friends and make the world a better
 
310
place by making your code available to others. As explained earlier,
 
311
Launchpad is a free Bazaar code hosting service so you can push your
 
312
branch to it and others can access your code from there. For example,
 
313
assuming you are a member of the relevant team, login to launchpad like this::
 
314
 
 
315
  bzr launchpad-login userid
 
316
 
 
317
where `userid` is your Launchpad user ID.
 
318
You can then push your changes to a team branch like this::
 
319
 
 
320
  bzr push lp:~team-name/project-name/branch-name
 
321
 
 
322
Others can then download your code like this::
 
323
 
 
324
  bzr branch lp:~team-name/project-name/branch-name
 
325
 
 
326
 
 
327
Personal branches
 
328
-----------------
 
329
 
 
330
Even if you are not a member of a team, Launchpad can be used to publish
 
331
your changes. In this case, simply create a personal branch like this::
 
332
 
 
333
  bzr push lp:~userid/project-name/branch-name
 
334
 
 
335
Others can then download your code like this::
 
336
 
 
337
  bzr branch lp:~userid/project-name/branch-name
 
338
 
 
339
Note: Even when publishing to a personal branch, it is polite to notify the
 
340
upstream developers about your branch so they can pull your changes from
 
341
it if they are generally applicable to all users and meet the project's
 
342
quality standards.
 
343
 
 
344
 
 
345
Linking branches using Launchpad
 
346
================================
 
347
 
 
348
Associating a branch with a bug
 
349
-------------------------------
 
350
 
 
351
After registering a branch, you can associate it to a bug so that
 
352
people interested in that bug can track and download the fix as
 
353
it becomes available.
 
354
 
 
355
To do this, the steps are:
 
356
 
 
357
1. Navigate to the bug in question.
 
358
 
 
359
2. Select `Add branch` under `Actions`.
 
360
 
 
361
3. Select the branch.
 
362
 
 
363
4. Optionally set the State of the relationship. This is
 
364
   *Fix In Progress* by default but you may wish to set it
 
365
   to another state such as *Fix Available* if the branch already
 
366
   addresses the issue.
 
367
 
 
368
If you wish, you can also provide some arbitrary comments about
 
369
the relationship between the bug and the branch.
 
370
 
 
371
 
 
372
Changing the state in Launchpad while committing in Bazaar
 
373
----------------------------------------------------------
 
374
 
 
375
Bazaar and Launchpad can work together to reduce some of
 
376
the status housekeeping for you. When you commit using Bazaar,
 
377
use the --fixes option like this::
 
378
 
 
379
  bzr commit --fixes lp:1234 -m "..."
 
380
 
 
381
where 1234 is the bug ID. This will changes the State of the
 
382
bug-branch relationship to *Fix Available*. If the one commit
 
383
fixes multiple issues, the --fixes option can be specified multiple
 
384
times.
 
385
 
 
386
One of the cool things about this feature is that Launchpad does
 
387
not need to be accessible when making the commit. The ``--fixes``
 
388
option works by storing metadata which Launchpad will detect next
 
389
time the branch is pushed to it or scanned once online again.
 
390
 
 
391
Note: Launchpad will not implicitly close a bug just because a
 
392
branch is available that fixes it. There are several reasons for this.
 
393
Firstly, the branch usually needs to be merged into the trunk
 
394
(main development branch) before most teams consider it fixed.
 
395
Secondly, many teams have a separate process for confirming
 
396
bugs are fixed over and above a developer saying so.
 
397
 
 
398
As explained later, merge control features are currently under
 
399
development in Launchpad and automatically changing the status of
 
400
bugs to *Fix Committed* will be more appropriate once those features
 
401
are in place.
 
402
 
 
403
 
 
404
Associating a branch with a blueprint
 
405
-------------------------------------
 
406
 
 
407
After registering a branch, you can associate it to a blueprint so that
 
408
people interested in that blueprint can track and test the feature as
 
409
it develops.
 
410
 
 
411
To do this, the steps are:
 
412
 
 
413
1. Navigate to the blueprint in question.
 
414
 
 
415
2. Select `Link branch` under `Actions`.
 
416
 
 
417
3. Select the branch.
 
418
 
 
419
If you wish, you can also provide some arbitrary comments about
 
420
the relationship between the blueprint and the branch.
 
421
 
 
422
 
 
423
Managing releases using Launchpad
 
424
=================================
 
425
 
 
426
Integrating changes
 
427
-------------------
 
428
 
 
429
Once a branch has been developed and published, communities
 
430
typically go through a rigorous process before those changes
 
431
are integrated into the core product and rolled out to end users.
 
432
Some of the steps involved may include:
 
433
 
 
434
* peer review of the changes
 
435
 
 
436
* deciding which releases to include the changes in, e.g. the
 
437
  next maintenance release, the next major release, or both
 
438
 
 
439
* running functional regression tests
 
440
 
 
441
* benchmarking to ensure performance remains acceptable
 
442
 
 
443
* packaging into early access releases for end user testing
 
444
 
 
445
* documentation updates, e.g. Release Notes for the targeted
 
446
  releases
 
447
 
 
448
* translation of the user interface and documentation into
 
449
  multiple languages.
 
450
 
 
451
This section briefly looks at some of the features in Launchpad that
 
452
help get good quality code into production. Strong integration with
 
453
Bazaar is core to making this happen smoothly.
 
454
 
 
455
Note: Where indicated, some of the features below are still under
 
456
development. If one or more of these features interest you, please
 
457
consider joining the Launchpad beta test team at this link:
 
458
https://help.launchpad.net/JoiningLaunchpadBetaTesters. You can
 
459
then get early access to features and provide feedback to the
 
460
developers before wider roll-out.
 
461
 
 
462
 
 
463
Branch merge proposals
 
464
----------------------
 
465
 
 
466
After navigating to a branch in Launchpad, one of the available actions
 
467
is *Propose for merging*. This lets you nominate which branch this code
 
468
ought to be merged into.
 
469
 
 
470
Tracking the knowledge about which branches are proposed to be merged
 
471
into a codeline helps Release Managers keep on top of what still needs
 
472
to be completed, or can be completed, before a ship date. Using this
 
473
information, they can ensure branches are merged after completing any
 
474
necessary reviews. In the simple case, the Release Manager may manually
 
475
merge branches. In more advanced cases, the merging could be automatically
 
476
done by a robot (like `PQM`_) when the branch reaches the right state
 
477
(e.g. *Review completed*).
 
478
 
 
479
.. _PQM: https://launchpad.net/pqm
 
480
 
 
481
 
 
482
Code review tracking
 
483
--------------------
 
484
 
 
485
A number of features are under development in Launchpad to track the
 
486
states, conversations and outcomes of code reviews. These features are
 
487
expected to be integrated with branch merge proposals and branch
 
488
browsing features.
 
489
 
 
490
 
 
491
Personal Package Archives (PPAs)
 
492
--------------------------------
 
493
 
 
494
PPAs help developers and development teams get custom builds into the
 
495
hands of users for early testing and feedback. In other words, a PPA
 
496
allows a developer to form a community of testers who are interested
 
497
in their changes. The testing community can install the packages,
 
498
run them for the test period and then remove them cleanly from their
 
499
system.
 
500
 
 
501
See https://help.launchpad.net/PPAQuickStart for further details.
 
502
 
 
503
 
 
504
Translations
 
505
------------
 
506
 
 
507
The Translations module in Launchpad is designed to make it easy for
 
508
anyone to get involved translating applications to languages they know.
 
509
Translators are shielded from the low level details.
 
510
 
 
511
Launchpad keeps track of the translations for each major version of a
 
512
project separately, allowing translators to continue to improve the
 
513
translations of your stable releases while others start work on newer
 
514
versions that are still in development. Translation speed in reduced
 
515
by sharing resources across projects. Automatic suggestions, from a
 
516
library of 750,000 translated strings, and a community of 19,000
 
517
registered translators can radically cut the time required to
 
518
localise your project into many languages.
 
519
 
 
520
 
 
521
Summary
 
522
=======
 
523
 
 
524
The communities we join, whether off-line or on-line, 
 
525
say a lot about the sort of people we are. The flip-side
 
526
to this is that the tools you choose for your community - particularly
 
527
the CDE and version control tool - can have a large impact on who
 
528
joins and how easily they can contribute.
 
529
 
 
530
In their own right, Launchpad and Bazaar are highly useful tools.
 
531
Together, they can:
 
532
 
 
533
* help your community track major assets such as source code and knowledge
 
534
* help it grow by reducing barriers to entry
 
535
* help it interact with related communities.
 
536
 
 
537
In particular, Launchpad is a free code hosting service for your Bazaar
 
538
branches, branches can be browsed online, branches can be linked to bugs
 
539
and blueprints, and the status of bug-branch relationships can be
 
540
automatically managed by mentioning the bug while committing in Bazaar.
 
541
Further integration is under development with the aim of streamlining
 
542
the process from *great idea* to *running code in the hands of end users*.
 
543
 
 
544
If you have any feedback on how you'd like to see Bazaar and Launchpad
 
545
further integrated, please contact us on the Bazaar mailing list,
 
546
bazaar@lists.canonical.com.
 
547
 
 
548
While designed as a free service to support open source projects,
 
549
Canonical may make Launchpad available to commercial software developers
 
550
depending on their requirements. We would be happy to hear from you
 
551
if you think Launchpad would be useful for managing your community,
 
552
open source or otherwise.