オープンソース プログラムを管理するためのツール
オープンソースの戦略的な活用への道は、オープンソースの作成、配布、利用に対する指導と管理のために慎重に計画され、組織化され、権限移譲されたオープンソース プログラム オフィスから始まります。しかし、それは単に、最初の一歩に過ぎません。オープンソース プログラム オフィスを軌道に乗せて、円滑な運用を進めるためには、適切なツールが必要です。同オフィスの活動に必要不可欠なツールは、エンジニアリング部門と法務部門から始まり、経営幹部、広報部門、マーケティング部門に至る広い部門で、目標や評価基準の達成度をトラッキングするために使用され、また、データの収集、プロジェクト達成状況のスナップショットの提供、さらには、会社内の日々のオープンソース使用状況の管理のために必要なあらゆるリソースを従業員に与えるために使用されます。
このガイドは、オープンソース プロジェクトのトラッキングと管理に使用する最も重要なツールに関する情報も含め、オープンソース ツールの収集を始める方法の詳細と手順を提供しています。これらのツールの多くは、Linux Foundationやこの分野のリーダーが作成し、オープンソース化したものなので、あなたのプロジェクトで自由に、簡単に使用することができるでしょう。また、複数のツールの情報を組み合わせて表示するダッシュボードの設定例も提示しています。
このガイドの貢献者
Chris Aniszczyk
COO
Cloud Native Computing Foundation
Jeff McAffer
Director of the Open Source Programs Office at Microsoft
セクション 1
オープンソース プログラムの管理のためになぜ特別なツールが必要になるのか
オープンソース プログラム オフィスが設立されたら、まず、同オフィスの開発チームがオープンソースのプロジェクト、コントリビューション、リリースを推進、管理、トラッキング、指導することができるようにするために、適切なソフトウェア ツールの収集を始めます。
- コラボレーションとコード開発の場の提供
- プロジェクトの健全性の管理
- コードのレビューとトラッキング、ライセンス コンプライアンスのチェックなど重要で何度も繰り返されるタスクの自動化
- プログラム オフィスとオープンソース戦略のROIが分かるようにするデータの作成
- プロジェクトの品質を監視、および問題が発生した場合にガードレールが設置されていることの確認
あなたがオープンソースを始めるとき、適切に的を絞ったツールを用意することで、開発者や他の従業員の仕事はより簡単になり、より良い成果が得られるようになります。それらのツールは企業のオープンソース プロジェクトにおいて、コラボレーションとコミュニケーションを成功させるための基礎になるでしょう。
「もし、あなたが100個以上のコード リポジトリ、または100人以上をマネージメントしなければならない立場にあれば、スプレッドシートを使用した手作業でそれらを管理することはできません。まだ、そのようにしている人はいます。 しかし、そのやり方は、いずれその場しのぎの面倒なものになっていきます。 そここそ、ツールが活躍する場です。それらのツールはあなたのマネージメントがより大きな規模になることを許してくれます。」
Jeff McAffer – Director of the Open Source Programs Office at Microsoft
「結局、あなたの仕事を自動化するツールが必要になります。そうでなければ、あなたは手作業のために、多くの時間を費やさなければならなくなります。」
Chris Aniszczyk – COO of the Cloud Native Computing Foundation and former head of open source programs at Twitter
セクション 2
ツールをどのように選択し、どのように使用するかの検討
企業がどのオープンソース ツールを必要としているかについての初期段階の議論の大部分は、企業のビジネス、製品、サービス、そして企業が顧客や従業員にどのように役立つのか、などによって異なったものになります。計画工程と戦略マップが、オープンソース プログラム オフィスによって作成されるとともに、会社の目標、プロセス、インフラストラクチャと調和のとれたツールが選択されます。
最終的に、必要なツールを知る唯一の方法は、オープンソースであなたの会社が何をしたいのかを理解することです。オープンソース プログラム オフィスの管理に必要なツールを選択するための基本的な手順を以下に示します。
- 開発者とコミュニティ メンバーから同意と選択の好みを得ることです。 これを得るためには、開発者やコミュニティ メンバーと詳細な議論が必要です。 彼らは、どのツールが彼らのために最善であったのか、最善でありそうかについて説明できます。 彼らの推薦や要求を真剣に受け止めてください。 あなたに目標を達成させようとしてくれている人に耳を傾けましょう。 彼らはすでにこれらのツールの多くをすでに使用している可能性が高く、彼らの経験は有益です。
- ビジネス上重要なアプリケーションが依存している、また、それに統合されている必須ソフトウェアを理解しなければなりません。これは、あなたのビジネスが依存しているオープンソース ソフトウェアを理解、把握することを意味します。それにより、セキュリティ問題の最新状況を常に把握でき、ソフトウェアの継続的利用を確実にすることができます。
- 既存のツールを調査し、そのまま使用するのか、ニーズに合わせて改造するのかを決めます。どのようなツールであってもゼロから開発してはいけません。 まずどんなものがあるか、どのようなものがオープンソース コミュニティで使用されているのかを調べて、彼らからツールに関するアドバイスやフィードバックを得てください。開発コミュニティにアクセスして、何がうまくいっているかを調べて、推奨、助言を求めてください。オープンソース カンファレンスで質問したり、BOFセッションで開発者仲間と話したりして、あなたがやりたかったことを既にやっている人から学びましょう。
ツールを選択したら、それを実装しなければなりませんが、そこにはいくつかのステップが必要になります。
- ツールをサポート、管理、使用するためのインフラストラクチャを社内に構築します。新たに設立したオープンソース プログラム オフィスは、それらのインフラストラクチャを構築、保守する人を指名します。ツールは、その役割、機能などで整理した社内オンライン ポータルを通してそこから提供されます。このツール ポータルでは、ツールをすべての開発者が使用できるようにすることもできますが、認証とアクセス許可を使用して、彼らの業務内容、要件に基づいてアクセスを特定のユーザーに制限することもできます。
- ツールを使用する従業員のためにトレーニング計画を作成します。ツールを入手するだけでは不十分です。開発者がツールの使い方を理解し、ツールの特性を習熟できるようにすることが必要です。トレーニング プログラムは、オンライン、教室、ランチタイム ミーティングなど、どこで実施するにしても、ツールの利用で成果を出すために重要です。どのような学習方法が彼らのために最も効果的か開発者に聞いて、学習方法を彼らに選択させてください。
- ツールが組織内のどこからでも目立つようにします。できれば、開発の進捗状況を把握するためにいつも使っている開発者ダッシュボードに統合し、開発者が簡単にツールを見つけて使用できるようにします。ここでも、社内のツール ポータルが業務に必要なツール群を体系化し、配布するのに役立ちます。
あなたが自ら選択したツールの実装を記憶に留めることが重要です。ツールの選択が次の決定に影響するかもしれないからです。 たとえば、習得が容易なツールが、より多くのトレーニングを必要とすることもありえます。
既存のツールを生かそう
組織のオープンソースの目標を達成するためにチームが必要としていることと、あなたの組織の権限範囲、インフラストラクチャでの制約を理解したら、次のステップは、今すぐに利用可能な既存のツールを調査し、学ぶことです。ほとんどのツールはオープンソース ツールなので、もしもそれらが、正確にあなたのニーズを満たしていない場合でも、開発チームがツール作成者に連絡して、機能を追加し、新しい用途向けにツールを拡張するためにコントリビューションが可能かどうかを確認できます。
皮肉なことに、多くのオープンソース プログラム オフィスは、他の人が開発したツールを再利用したり、オープンソース プログラムを管理するために必要なツールを他の企業と協業したりするとは限りません。彼らはそうしたいと思うこともありますが、Facebook社やMicrosoft社など多くの企業では、コラボレーションが実際に問題提起されるよりも前にツールセットが既に揃っており、それに投資を行ってきたため、他の企業のものを採用する意欲が低いようです。
そこにオープンソース プログラムを構築し始めたばかりの企業の大きな利点があります。彼らは、オープンソース プログラム オフィスを開設しオープンソースに飛び込んだばかりなので、そのような制約に悩まされる必要はありません。
代わりに、彼らは他の人の経験や成功を要領よく利用して、すなわち、近年オープンソースを主導している企業によって作成された実績のあるツールを使ってオープンソースのツールボックスを構築することができるからです。 Linux Foundationのオープンソース業界組織TODO Groupは、ツールを満載した「オープンソース プログラム オフィス インボックス」スターター パッケージを作成することに取り組んでいます。このパッケージにより、多くの企業は、ツールがまとまって組み込まれているツールキットを入手したうえでオープンソース活動を開始することができるようになります。 スターター パッケージはまだ提供ができていませんが、最終的には、このパッケージにより、初期作業を軽減しながら必要なツールを導入して設定することを容易にすることが期待されます。 このプロジェクトに取り組んでいるTODOグループのメンバーは、Adobe社、Capital One社、Comcast社、Facebook社、Google社、eBay社、IBM社、Microsoft社、Samsung社、Twitter社などです。
ダッシュボードの作成
適切なツールと共に、企業は、オープンソース プロジェクトと開発をリアルタイムで監督、トラッキングできるセントラル ダッシュボードも組み込む必要があります。多くの企業は、既存の開発作業やアプリケーション用のダッシュボードを持っており、既存のダッシュボードをオープンソースの作業と統合することができるかもしれません。そうでない場合は、オープンソース配置・展開の管理を強化するために新しいダッシュボードを作成または採用する必要があります。
Section 3
基本的なツールセットの構成要素
オープンソース プロジェクトの管理とレポートに利用できるツールは、極めて豊富ですが、過剰とも言えます。オープンソース プログラムを始めたばかりであれば、プログラムの立ち上げと実行に必要ないくつかの基本的なツールに焦点を当てて調査を始めるのが良いでしょう。
あなたの会社のオープンソース プログラムが成長し、これらのツールを使用してより多くの経験を積んだ後に、必要に応じてプロセスを自動化、合理化するための新しいツールを採用するのが良いでしょう。企業の文化、プロセスを補完、サポートするツールを選択することを忘れないでください。文化、プロセスを牽引するツールを選ぶのではありません。
あなたの体系的な調査に便利なように、以下の各セクションでは、ほとんどすべての企業のオープンソース プログラムが日常的に使用するツールを基本的なカテゴリに分類しています。
プロセスの自動化
プロセスを自動化するツールは、あなたの会社のオープンソース プログラムで使用する最も重要な部類に属します。これらのツールは幅広い機能を持っています。たとえば、開発者自身がコードを作成し、違法な場所からコピーしていないことを示す法的文書であるコントリビューター ライセンス契約 (CLAs) の手順を自動化するツールがあります。従来、この種の契約は、契約書を印刷し、それに署名してファックスで送信するといった手動ベースで行われてきました。しかし、今日の電子メールとインスタント コミュニケーションの世界では、その方法はありえません。代わりに、ボットが電子署名を要求し、それ以後、常に提出物をトラッキングし、処理することで、そのプロセスを自動化することができます。
他の自動化ツールは、プロジェクトに誰が貢献をしているのかを正確に知らせてくれ、企業のニーズを満たすためにプロジェクトが大きく拡大していく中で、プロジェクトの効率を下げている手続き上のオーバーヘッドを取り除くのを助けます。
Microsoft社によると、約11,000人のコントリビューターが参加し、約8,000個のリポジトリをGitHubで管理している同社のオープンソース プログラム オフィスは、2016年には、プロジェクトでオープンソースを使用したいというリクエストを約40,000件受け取りました。これらのリクエストだけでなく、作成されたコード、更新されたコードのバージョンを管理するために、同社はこの混乱を自動化で解決するツールを使い始めました。また、コードは潜在的に何百もの他のプロジェクトで使用されている可能性があるため、当該コードは細心の注意をもってトラックされなければなりません。セキュリティ上のバグが発生した場合、関連するすべてのソフトウェアへの影響を迅速に特定し、それを修正する必要があるからです。このような大規模な作業環境では、自動化が不可欠であり、手作業で行うことはまず不可能です。
重要なタスクの管理
考慮、採用すべきその他の重要なツールとしては、重要なタスクの管理を支援するものがあります。たとえば、プロジェクトの管理、プロジェクトの健全性のトラッキング、および、開発者、オープンソース コミュニティ、企業内の他の人々との明確で迅速なコミュニケーションの実現などです。
ソースコード管理
オープンソース プログラム オフィスを通して開発されている企業のソフトウェア プロジェクトのほとんどは、GitHubを集中ホスティングおよび開発プラットフォームに使用しています。
GitHubは、オンライン ソースコード管理サイトであり、オープンソースの開発者がコードを中央の「リポジトリ」またはストレージ スペースに管理して保管することができ、参加者は協調してコードを作成することができます。今日、GitHubは、約2,300万人の開発者を含む約6400万のオープンソース コーディング プロジェクトをホスティングしています。
GitHubユーザーは、コードの追加、提出されたコードのレビュー、変更の提案、フィードバックの送信と受信、さらには、GitHubのサービスを通してプロジェクト管理を行うこともできます。GitHubは、Linuxの作成者Linus Torvaldsによって開発されたオープンソース プロジェクトGit Version Control Systemを使用しており、ソースコードとオープンソース上で協調している人々を結びつける機構を提供しています。それぞれの「コントリビューター」は、自分が作業しているプロジェクト リポジトリのコピーを持ち、自分のコンピュータで変更してから、将来リリースへの組み込みを見込んでプロジェクトに再提出します。その「プル リクエスト (pull request)」(例)、あるいは、コード コントリビューションは、その後、プロジェクトのまとめ役によってレビューされ、議論され、変更され、承認または却下されます。
ライセンス コンプライアンス
コードの出所とライセンス要件をトラッキングするのに役立つコード スキャンとコンプライアンス ツールも重要です。 企業は、自社のインフラストラクチャ、製品、サービスに組み込まれているオープンソース コードのライセンス要件を満すよう管理していくことが重要です。
たとえば、あなたのアプリケーションには数千のオープンソース コンポーネントが含まれているかもしれません。企業を法的問題から守るためには、これらの詳細を知ることが不可欠です。リスクが高いと判断される状況では、ビジネスにどの程度リスクが影響するかの観点で、どのようなライセンスなのかについて、コードを詳しく点検、検証しなければなりません (本ガイド集の「オープンソース コードの使用と配布」を参照してください)。
「あなたはリスク特性(risk profile)を理解しなければなりません。結局、スキャンすることがリスク管理のすべてなのです。現実を直視しないで、あなたが大丈夫であることをただ信じて、願っているだけなのか。それとも、『もし私が訴えられれば、それは私のビジネスを破滅させることになるだろう。』と言えるのか。本当に安全であることが必要です。 だから、あなたはソフトウェアのパッケージを調べ、コードのすべての行をチェックして、そこに存在しているかもしれないリスクのすべてを見つけ出さなければなりません。」
Jeff McAffer – Director of the Open Source Programs Office at Microsoft
セクション 4
ソースコード管理のためのツール
先ほど説明したように、GitHubは、最近のほとんどのオープンソース プログラム オフィスで人気のあるソースコード管理システムです。しかし、GitHubだけでは、特に活動の規模が大きくなったときに、あなたのオープンソース プログラムのコード管理のニーズをすべて満たすことはできません。
オープンソースの世界で使用されているツールのいくつかは、GitHubに欠けている機能を追加することを目的としているものがあります。例えば、コードが合法的にライセンスされ、オープンソース プロジェクトで使用できることを保証する開発者証明書 (Developer Certificate of Origin: DCO) のチェックをサポートするものもあります。
GitHubにはコード レビューに関して、いくつかの不足もあります。そのため、疑問の余地のあるコードを作成したコントリビューターに自動的に返送し、レビューしたうえで必要な変更を加えるように要求するツールがあります。GitHubにはだれかにコード レビューを要求する機能はないので、これらのツールを使ってワークフローを改善することができます。
他のGitHub向けのツールとしては、組織全体に渡って詳細な情報を提供するのではなく、個別プロジェクト向けにGitHub実績指標の提供機能を拡張したものがあります。 複数のGitHubプロジェクトにまたがり、多くのオープンソース コード リポジトリを保有している企業が意味のある指標を得るには、それらを整理し、集約するための良いツールが必要です。Amazon社、Netflix社、Microsoft社などから幅広いツールがそれらのために提供されています。
GitHub活用を効率化し、支援するために、人気があり、かつ有用と思われるソースコード管理ツールをいくつか紹介します:
ソースコード スキャンとライセンス コンプライアンス
Antepedia Reporter(リンク先更新中) – Antepedia社の商用有償アプリケーションReporterは、オープンソース、パブリック、またはプライベートのコンポーネントのコード ベースを調べ、開発者、プロジェクト管理者、法律顧問などがライセンス コンプライアンス監査とIP権利管理を確認するためのレポートを作成する製品です。
Black Duck Hub – 商用のサービス ハブで、コードをスキャンして、コードが含むすべてのオープンソース コンポーネントを識別し、救済策の適用が必要な既知の脆弱性を自動的に検出します。新しい脆弱性がコード内に見つかった場合にも警告を送信してくれます。
Black Duck Protex – Protexは、既存のツールと統合され、オープンソース ソフトウェアを自動的にスキャン、識別し、目録を作成して、ライセンス コンプライアンスと企業ポリシー要件の遵守を支援するBlack Duck社が提供する商用有償のライセンス コンプライアンス管理ツールです。
Copyright review tools – この一連のコマンドライン ツール群は、最初の著作権ファイルの作成と、それに続くレビューおよび更新を容易にしてくれます。
dep-checker – Linux Foundationの依存性チェックツールdep-checkerはコード パッケージ間のリンク状況をすべてチェックしてくれます。
FlexNet Code Insight – 2016年にライセンス コンプライアンス ベンダーPalamidaを買収したFlexera社は、FlexNet Code Insightを提供し、オープンソースを活用する企業の開発者、法務チーム、セキュリティ スタッフの業務自動化を支援します。
FOSSA – コードの依存性トラッキング、ライセンス コンプライアンス スキャンをバックグラウンドで自動的に実行する商用ツールです。
FOSSology – Linux FoundationのプロジェクトFOSSologyは、コマンドラインで、ライセンス、著作権、輸出規制管理の必要事項をスキャンするためのオープンソース ライセンス準拠のソフトウェア ツールキットです。 コンプライアンス ワークフローを作成するためのデータベースとWebユーザー インターフェースも用意されています。
janitor.git – Code Janitorは、オープンソース ライセンスに対するコンプライアンスについてソースコードを評価するオープンソース ツールです。Linux Foundationから提供されるCode Janitorは他の製品と共に使用し、コードをチェックすることができます。
LicenseFinder – プロジェクトで使用されているコードのライセンスを検出し、そのライセンスをユーザーが定義したホワイトリストと比較し、結果を実用的なレポートとして提供します。
Protecode Enterprise Analyzer – この商用アプリケーションは、ディレクトリ内のすべてのコードを識別、分析し、コードの所有権を特定し、前もって定めた社内ポリシーに基づいて、オープンソース ライセンスのコンプライアンス状況を確認します。
scancode-toolkit – nexB社から提供されるScanCodeユーティリティ スイートは、コードで使用されているオープンソースおよびサードパーティのコンポーネントを検索、検出し、目録を作成するためにコードのライセンス、著作権および依存関係をスキャンします。
SPDX – Software Package Data Exchange (SPDX) の仕様は、ソフトウェア パッケージに含まれるコンポーネント、ライセンス、および著作権を記述するために使用される標準フォーマットを規定するものです。SPDX標準は、開発者と企業の間でライセンス情報を共有する方法を標準化することにより、フリーおよびオープンソース ソフトウェア ライセンスのコンプライアンスを支援します。SPDXの仕様はLinux Foundationが主催するSPDXワークグループによって開発されました。同グループは、SPDXドキュメントのユーザーを支援するオープンソースのツールを提供しています。
WhiteSource – オープンソース コンポーネントをリアルタイムで管理できるように、数十のオープンソース リポジトリを自動的、継続的にスキャンし、ライセンス情報、セキュリティ情報、コード品質、および分析レポートを提供します。
バグ トラッキング
Bugzilla – 検索履歴を記憶する高度なクエリ ツール、統合された電子メール機能、包括的なアクセス許可システムを備えたサーバーベースのソフトウェア。Bugzillaは、バグ トラッキング システムとしてMozillaで使用されています。
GitHub Issues – GitHubで使用されているフィードバックとバグ トラッカーを統合したシステムです。GitHub Issuesは、GitHubのプロジェクト ホスティングの一環で利用可能です。
GitLab – このバグ トラキッング ツールは、イシュー トラッキング、コード レビュー、Gitリポジトリ管理、配信技術であるアクティビティ ストリーム、Wikiなどを統合したツールで、単一のUIで操作でき、オープンソース プロジェクトを支援します。
JIRA – Atlassian社のJIRAは、カスタム フィルター、開発者ツールの統合、カスタマイズ可能なワークフロー、およびJIRAを他のアプリケーションと統合することができる豊富なAPIを提供しています。
アーカイブとリリース管理
Artifactory – JFrog社のArtifactoryは、いかなるコード言語で作成されたソフトウェア パッケージでもサポート可能なリポジトリ マネージャーです。すべての主要なDevOps、および、継続的インテグレーション・継続的デリバリー (CI/CD) ツールと統合できます。
Bintray – JFrog社のアーカイブ ツールで、コード リリースのアーカイブを公開することにより、古くて大きなファイルのためのストレージを維持・管理できるようにします。
Docker Hub – ユーザーがコード リポジトリにリンクし、Dockerのイメージを構築し、テストができるクラウド ベースのレジストリ サービスです。 また、手動で、プッシュしたイメージやDocker Cloudへのリンクも格納できるので、ユーザーはイメージをプロジェクト ホストに展開できます。Docker Hubは、コンテナ イメージの検出、配布および変更管理、コラボレーション、ワークフローの自動化のすべてを一元化した開発パイプラインの中心となるツールです。
github-release – GitHubの機能の一部で、ユーザーはGitHub上のプロジェクトのリリースをパッケージ化したり、編集したりできるので、他のコミュニティ メンバーがそれらを利用できるようになります。
セクション 5
プロジェクトの健全性をトラッキングするツール
成長、成熟しているオープンソース プロジェクトの全体的な健全性を監視し、トラッキングすることは、企業のオープンソース プログラムの中心となる重要作業です。 これを遂行するには、個々のオープンソース プロジェクトがどのように実施されているのか、コミュニティからどのように受け止められているのかについて、レポートしてくれるツールが必要です。数十、数百、時には数千のプロジェクトを同時に扱えなければなりません。このツールはまた、オープンソースのポートフォリオ全体に渡って、プロジェクト パフォーマンス全般について、有用で、行動に繋がる実用的な情報をレポート出力してくれなければなりません。
閲覧した人の数、プロジェクト開始当初からの参加コントリビューター数などのような重要でない、価値のない指標に着目してはいけません。ここで重要なのは、データから重要かつ有用な洞察を得ることです。
最も優れたプロジェクトの健全性トラッキング ツールは、コントリビューターとともにプロジェクト チームの活動を支え、参画と多様性を促進してくれているコミュニティに対し、プロジェクト チームが上手く対応するのに役立つものでなければなりません。つまり、ツールは、コミュニティ メンバーが投稿した質問やフィードバックにメンテナーが迅速に対応するのを支援します。そうすることでコミュニティ メンバーは熱心に関与し続け、退屈になったり、他のプロジェクトに移ったりすることはありません。
オープンソース コミュニティには、大きなコントリビューター グループを持つものもあれば、小さく、ニッチなコミュニティ メンバーのグループから構成されているものもあります。プロジェクトの健全性管理ツールは、あらゆる規模のプロジェクトに対応できる必要があります。
「ツールやシステムは既に存在しているので、企業のオープンソース プログラム オフィスは自分でツールやテクノロジを作成する必要はないとすぐに気づくでしょう。彼らはオープンソース プログラムを管理するために使用できる既存のオープンソース ツールを見つけて使用できるはずです。」
Jeff McAffer – Director of the Open Source Programs Office at Microsoft
最も一般的で、有用なプロジェクトの統計情報ツールとプロジェクトの健全性を管理するツールは次のとおりです。
CatWatch– CatWatchはZalando社が提供するオープンソースのメトリクス ダッシュボードで、あなたのチームのGitHubアカウントに対応したGitHub統計情報を取得し、GitHubデータを処理し、データベースに保存します。このデータは、オープンソース プロジェクトのポピュラリティ、最も活動的なコントリビューターおよびその他の興味深い統計情報をレポートしてくれます。
Gander – Ganderは、さまざまなオープンソース プロジェクトについて、有用なメトリクスを一目で分かるように表示するダッシュボードです。 Ganderは、オープンソース プログラム オフィスの運営責任者や複数のオープンソース プロジェクトの管理責任者向けに、PayPal社によって作成されたものです。
GHCrawler – Microsoft社によって作成されたGHCrawlerは、GitHubがホストするプロジェクトをインターネット上で調査(クロール)し、そのコンテンツを自動的にトラッキング、取得、保存するGitHub APIで実装された調査ツールです。GHCrawlerは、多数の組織、データ リポジトリをトラッキングしようとする人向けのツールです。
Gittagstats – Gittagstatsは、Gitリポジトリのタグから統計レポートを生成するツールです。このツールはQualcomm社によって作成されました。
Grimoire Lab – Bitergia社は、メーリングリストからMeetupグループまで、オープンソース プロジェクトの統計情報を測定するためのさまざまなオープンソース ツールを提供しています。
OSS-dashboard – Amazon社のOSS-dashboardは、多くの機能を提供するダッシュボードで、多くのGitHubの組織、ユーザーを一度に表示して監視することができます。
OSS Tracker – Netflix社のOSS Trackerは、GitHub組織内のすべてのプロジェクトに対して、単一のユーザー インターフェースでデータを収集し、集約してくれます。組織のすべてのリポジトリが一覧表示され、メトリクスは統合されます。また、コミュニティ マネージャーが、プロジェクトを機能別に編成して情報収集したり、管理とエンジニアリングの役割を管理責任者に割り当てたりすることもできます。
「目標は、トランスペアレントなデータとメトリクス情報が提供され、組織を導くために使用できるツールを持つことです」
Chris Aniszczyk – COO of the Cloud Native Computing Foundation
TODOグループはまた、他のツールも加えた有益なリスト(helpful list that adds other tools)も提供しています:
- より良いコード レビューのために
mention-bot – Facebook社によって開発されたこのツールは、レビュー プロセスをスピード アップするために、コミュニティ メンバーによるコントリビューションコードに対して適切なレビュアーを自動的に指名します。
PullApprove – ピア レビューによるコードの品質の向上、スタイル ガイドラインの適用、エラーの検出、および、コードのセキュリティ チェックの提供によりコードのコントリビューション、すなわちプル リクエストに定型化されたプロセスを適用します。
sentinel – コードのコントリビューションのレビューとテストを行い、リポジトリのメンテナーのリストを作成し、プル リクエストのステータスをユーザーに伝えるなど、リポジトリ管理を支援するボットです。
- CLA (コントリビューター ライセンス アグリーメント) 関連
CLA Assistant – SAP社から提供されるCLA Assistantは、コントリビューションの法務関連処理をサポートし、ユーザーの作業を簡略化します。CLA Assistantは、コード コントリビューションを行うために、GitHubアカウントで認証する際に、コード コントリビューターがCLAに署名するように求めます。 また、コントリビューターがCLAに同意すると、プル リクエストのステータスが更新されます。CLAに変更が加えられると、新しいプル リクエストごとにCLAに再署名することを自動的にユーザーに求めます。
CLA Portal – VMware社から提供されるCLA Portalは、コントリビューターによるGitHubリポジトリへのプル リクエストに対応してCLAにデジタル署名するワークフローが追加されています。 開発者がプル リクエストをオープンすると、必要に応じてCLAに署名するよう促されます。 また、CLAの起草、CLAからプロジェクトへのマッピング、および契約書レビューのための管理者用インターフェースも提供されています。
DCOB – 開発者オリジン証明書支援ボット(Developer Certificate of Origin Bot)は、プル リクエストのコード変更ごとに開発者証明書の署名を促すのをサポートします。 DCOBは、開発者オリジン証明書の要求に従って、アクセプトされたコード変更のステータスを設定します。
- 企業規模でのGitHub管理
hubcommander – GitHubの組織管理のためのSlackボットHubCommanderは、chat-ops (Conversation Driven Development:会話主導型の開発) を使用し、GitHubのプロジェクトの管理を支援します。GitHub組織のメンバーに管理権限または所有者権限を与えることなく、権限の必要なGitHub組織管理作業を行うための簡単な方法を提供します。
opensource-portal – Microsoft社から提供されているopensource-portalは、大きな組織で、大規模なGitHubの管理操作、オンボーディング(新しい人の参加手続き)などを支援するように設計されています。 これは、Microsoft社のオープンソース プログラム オフィスによって提供される一連のツールの1つです。
settings – このアプリケーションは、.github / settings.ymlで定義されたリポジトリ設定をGitHubに同期させ、リポジトリに対するプル リクエストを可能にします。
zappr – Zapprは、プロジェクト ワークフローを強化するために構築されたGitHubインテグレーションです。 Zalando社から提供されているZapprは、プル リクエスト承認に関連するボトルネックを解消し、プロジェクト オーナーがプロジェクトのマスター ブランチに統合する前に不良なプル リクエストを停止させることで、開発者の生産性の向上とオープンソース プロジェクトの品質向上を支援します。
- プロジェクト品質
CII Best Practices Badging – Linux FoundationのCore Infrastructure Initiative (CII) Best Practices Badgeは、Free / Libre and Open Source Software (FLOSS) のプロジェクトがベストプラクティスに沿っていることを証明する手段です。 プロジェクトは、このWebアプリケーションを使用して、彼らがどのようにベストプラクティスに沿って活動しているかを説明することにより、自発的に無償で自己証明を行うことができます。
CodeClimate – Code Climateは、開発ワークフローを通して、完全に再構成可能なテスト カバレッジと保守用データを利用可能として、組織がコード品質を管理できるようにします。 オープンソース プロジェクトには無料で提供されています。
セクション 6
コミュニケーションとコラボレーションのためのツール
もちろん、オープンソース開発はコードがすべてではありません。オープンソース プログラム オフィスのスタッフとだけではなく、企業内外のプロジェクトで仕事をしているさまざまなグループの人々との健全なコミュニケーションとコラボレーションが必要です。
そのために、IRC (Internet Relay Chat) などの他のプロジェクトで既に使用しているツールを利用して、開発者が問い合わせを投稿したり、開発関連のトピックに素早く応答 (quick responses to development-related topics) したりすることができます。 もう一つの例は、オープンソースの企業用WikiおよびWebコラボレーションのプラットフォームであるTWikiです。開発者は、コードやプロジェクト、および関連するトピックについて議論することができます。
ソーシャルメディア プラットフォーム、Webポータル、オープンソースのプロジェクト リポジトリ、さらには、インプット、質問、ディスカッションが行われ、それを育てるような場を通してもコミュニケーションを促進することができます。
他の有用なツールには、Facebookが提供する<mention-botがあります。これは、適切なレビュアーにレビューを自動的に依頼することによって、プル リクエストに対するインプットを得るターンアラウンドを速めるのに役立ちます。 このツールは、コミュニティのメンバーがプロジェクトの通知にすべて目を通すことができないくらいに、GitHubプロジェクトが大きくなりすぎた場合に特に有効です。
そして、オンラインでチーム プロジェクト管理とコミュニケーション プラットフォームを提供するSlackでは、ユーザーがメッセージやファイルにアクセスしたり、これらを共有したり、ワークフローを編成したり、情報検索を行ったりすることができます。Slackは、サポート リクエスト、コードのチェックイン、エラー ログ、その他のタスクの通知を受け取るように設定することもできます。
そして最後に、あなたの会社がオープンソースに参加し、サポートしていることを発信してくれる広報・マーケティング要員の登場です。 Twitter、Reddit、Facebook、LinkedIn、Google+などのサイトのソーシャル メディア アカウントは、内部および外部のブログやWebサイトと同様に重要です。 Customer Relationship Management(CRM)ソフトウェアは、電子メールの配信やニュースレターと同様に、企業が顧客にオープンソースの進展状況を知らせるのに役立ちます。
セクション 7
企業規模のGitHub管理のためのツール
企業のオープンソース プロジェクトに使用するツールについて言えば、企業規模のGitHub運用を管理するのに役立つツールが最も重要なものであることは間違いありません。GitHubは多くの作業にとって完全なプラットフォームですが、Google社、Microsoft社、Facebook社、Twitter社、LinkedIn社などの大規模で複雑な企業では、GitHubの提供する標準サービス範囲では多くの制限を受けます。
大企業には、コード リポジトリをより深くトラッキングし、理解するための手段に加えて、アイデンティティ管理、設定とアクセス許可管理、セキュリティと2段階認証の実施などの機能も必要です。
そのような環境では、オンボーディング(新しい人の参加手続き)、オフボード(脱退手続き)、セキュリティ ポリシーの実施、開発者にリポジトリへのアクセスを要求するなどの業務を処理するために、特別な自動化ツールを構築する必要があります。
Microsoft社は、オープンソース プログラムの効率化、改善に向けて、そのような多くの業務を処理する独自のツールを構築することで、自身の要件に対応してきました。Microsoft社はGitHubに約1,345のリポジトリを持ち、約3,580の開発者を抱え、健全な状態のGitHub (healthy presence on GitHub) を維持しています。
「GitHubの管理は、その規模が拡大するにつれ、重要になってきます。あなたはリポジトリの集合となるGitHubの組織(GitHub organization)を作成し、メンバーを集め、チームを構成します。特にGitHubが何百ものリポジトリを持ち、何百人もの人々が参加し、複数の組織を持つように拡大すると、このようなことをすべて管理することは少しばかり複雑になります。」
Jeff McAffer – Director of the Open Source Programs Office at Microsoft
Microsoft社が作成したものの一つは、プロジェクト、リポジトリ、チームを組織化するカスタムビルドでセルフサービスのGitHub管理とオンボーディングのポータル(GitHub management and onboarding portal)でした。 最も簡単なレベルでは、Webベースのポータルにより、開発者はMicrosoft社の企業IDをGitHub IDにマップすることができ、システムのセキュリティを強化し、多数の重要なプロジェクトに携わる多数の開発者の組織(GitHub organization)を簡素化できるようにしました。
また、ポータルでは、GitHubとMicrosoft社の認証を元に、アイデンティティの「仮想リンク」を作成し、業務に応じて、業務に必要なアクセス許可を与えるので、従業員はそれに従って作業を行うことができます。 従業員が退社する場合、システムは必要に応じてアクセス権を削除、あるいは、再分類します。
ポータルは1つ以上のクラウド サーバー上で動作し、キャッシュ機能を活用してセッションを支援し、GitHub APIの負荷を軽減しています。 技術者のためのツールとして平均して、毎日約1,000人のユニーク ユーザー(UU)をサポートするMicrosoft社のポータルは、オープンソース コードを使用、コントリビューション、リリースする1万人以上の技術者と共に、ますます拡大している同社のオープンソース活動の一部になっています。
セクション 8
結論
あなたの会社がオープンソースの世界に移行するのは簡単だと誰も言わなかったのですか。Microsoft社やGoogle社のような超大手企業を含め、多くの企業が、あなたの会社より先に、すでにそれを実現しています。彼らは、あなたが彼らより簡単にそれを実現できるように、詳細なロードマップ、ソースコード、提言などを与えてくれます
オープンソース プログラム オフィスの設立と、あなたが活動を開始するために必要な必須ツールパッケージは、あなたの手の届くところにあります。 また、すでにあなたの会社の多くの開発者が、オープンソースに触発されて、オープンソース プロジェクトにコントリビューションしている可能性があります(目立たないように行っているのかもしれませんが)。
オープンソース プロジェクトで協業し、他の人たちにあなたと協調してもらうことで、あなたの会社は計り知れないメリットを得て、さらに、エネルギーと革新をともなってあなたの会社の進歩を推進することができます。
適切なツールを選択することは、あなたの会社のオープン イノベーションに力を与える上で非常に重要です。
これらのリソースは、TODO (Talk Openly, Develop Openly) グループとの協力により作成されました。TODOグループは、The Linux Foundation傘下のプロフェッショナル オープンソース プログラム ネットワーキング グループです。 このような包括的なガイドを作成するために時間を割き、豊富な知識を提供してくれたオープンソース プログラム マネージャーのみなさんに感謝します。TODOグループの参加企業は、Autodesk、Comcast、Dropbox、Facebook、Google、Intel、Microsoft、Netflix、Oath (Yahoo + AOL)、Red Hat、Salesforce、Samsung、およびVMwareです。
詳細については、todogroup.orgを参照してください。
この資料は、Creative Commons Attribution ShareAlike 4.0 International License (CC BY-SA 4.0:クリエイティブ・コモンズ 表示 – 継承 4.0 国際ライセンス) の下でライセンスされています。