OCAのモジュール変更管理方法を調べる
前回は、VSCodeを使ってDockerコンテナーで動かすOdooのAddOn開発ができるようにする環境を整えました。
今回は、OCA (Odoo Community Association) で開発・メンテナンスされているモジュールがどのように管理されているか確認しました。
OCAでのモジュール変更管理
OCAのサイトにコードでのプロジェクトへの貢献方法がまとめられています。これを読んでからモジュールの変更や新規作成をしましょう。
1. GitHubのアカウントを作る
OCAのモジュールはGitHubのリポジトリで管理されているので、モジュールの新規公開や編集のためにはGitHubアカウントが必要になります。
2. 変更するリポジトリを決める
OCAはProject Steering Committee (PSC)によって運営されています。 各PSC管理者はそれぞれwebページ、メーリングリスト、リポジトリを持っています。
新しい機能を公開したい場合は、その機能に最も相応しいプロジェクトを一つ選択して、そのSPC管理者のメーリングリストを購読します。メーリングリスト内では、以下の項目を使って自己紹介をしましょう。
名前と地域
持っているスキルとバックグラウンド
抱負と出来ること
新しい機能について
機能追加リクエストかバグ修正リストから選んで、作業することもできます。
あなたの機能をどのGitHubリポジトリに追加するか、バグを修正するか決めたら、次のステップへ移動しましょう。
3. フォークしてクローンする
新しいモジュールの追加やバグ修正をするためには、あなたの選んだOCAリポジトリからGitHubアカウントやGitHub内の組織でフォークする必要があります。
フォークを実行したら、あなたのフォークを自分のPCへクローンし、あなたの開発環境に追加します。(リポジトリをフォークするとSPC管理者へ通知が届きます)
OCAはあなたのコードがOCA Conventionsに適合するために、以下の機能を提供したり使用の推奨をしています。
IDE拡張(もうすぐリリース)
OCA Conventionsは、OCAのモジュール開発に当たって守るべきコーディングのルールなどがまとめられています。一通り目を通しておくと良いです。
4. 変更をプッシュしてプルリクエストを作る
ローカルブランチで変更をコミットしたら、あなたのGitHubリポジトリへプッシュします。
FAQを読んで、あなたのモジュールに最適なライセンスを設定します。
あなたのブランチがGitHubにプッシュできたら、OCAブランチに対するプルリクエストを作ることができます。
5. あなたの変更の比較
あなたの貢献が正しいブランチを選択しているか確認しましょう:
ベースフォーク:OCA
ベース:Odooのバージョン
ヘッドフォーク:あなたのリポジトリ
コンペア:あなたのブランチ
GitHubで”View pull request” を押して、プルリクエストの詳細とテストシナリオを入力します。
これはレビューをする人への情報となります。もし、モジュールの仕様を決定していた場合、関連するissueへのリンクを追加してください。
6. コードのマージ
あなたのプルリクエストにより、以下の作業が開始されます:
CLA BotがあなたのCLAステータスを確認します
Travis が自動テストを実行します
Coveralls がテストのカバレッジを計算します
Codacy または/と CodeClimate があなたのコードの得点を提供します
Runbot があなたの貢献に対してOdooインスタンスを提供します
全ての作業をパスすることによって、レビュープロセスを容易にかつ迅速にすることができます。そして他の貢献者からのコメントを元にしてあなたのコードを改善することができます。
あなたのコードに対して3件以上の肯定的なレビューがあった場合、5日以内(またはさらに5日を2回)にマージされます。最低一つのレビューはPSCメンバーによるものかOCA Core Maintainerによるレビューである必要があります。より詳細な情報についてはこちらを参照
追加の情報は以下のリンクを参照してください:
OCAへ開発者として参加する方法
OCAの貢献者(コントリビューター)に登録する
OCAのモジュールを変更するためには、CLA(Contributor License Agreement)を提出してコントリビューターとしてOCAに登録する必要があります。
CLAは企業やプロジェクトに対する知的財産権を定義する契約で、特にオープンソースライセンスで開発されるソフトウェアに使用されます。(wikipedia)
OCAでは、プロジェクトへの全ての貢献者(コントリビューター)に対して、CLAにサインする事を求めています。
個人の開発者は、Individual Contributor License Agreement (ICLA) のPDFにサインして、GitHub ログイン名と共にEメールで提出します。
CLAは手書きで署名した物をスキャンしたPDFか、電子署名した物を cla AT odoo-communityorg へGitHubログイン名と共に送信します。
ICLAはあなたの雇用者と関連づけられないので、仕事用のEメールアドレスではなく、あなたの個人Eメールアドレスを連絡先に使用する事をお勧めします。
あなたの氏名は公開されます。Eメールアドレスやその他の連絡先情報は公開されません。
CLAのダウンロードなどはこちらのページから。
CLAにサインすると、公式OCA貢献者のロゴを使えるようになります。
変更するリポジトリを決めてメーリングリストを購読する
メーリングリストを確認しましたが、最近はほとんど使われていないようです。CLAにサインしてしまえば、あとはフォークしてプルリクエストを出してしまっても良いのかもしれません。
PSCはアプリケーションの領域やローカライゼーションの国、産業分野別に組織されています。
今回は購買関係に興味があるので、PSCのページからProcurement & Purchaseを開きます。
Procurement & Purchase のPSCメンバーと管轄しているOCAプロジェクトが表示されます。OCA/purchase-workflowプロジェクトに興味があるので、このPSCについてメーリングリストを購読してみます。
OCAのメーリングリスト一覧へ行き、Purchaseで検索すると、Purchase & Procurement のメーリングリストへの参加フォームが見つかります。
メールアドレスに自分のEメールアドレスを入力指定、"Subscribe"を押します。
入力したメールアドレスにメーリングリストの購読確認リンクが送られてくるので、リンクを開いて購読確認します。
このメールには、メーリングリストのアドレス、投稿用のアドレス、購読解除のアドレスが記載されています。
フォークして変更してマージリクエストする
OCAのコントリビューターとして登録が完了したら、OCAのモジュールを変更してマージリクエストを送ることができるようになります。