見出し画像

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に適合するために、以下の機能を提供したり使用の推奨をしています。

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のモジュールを変更してマージリクエストを送ることができるようになります。

いいなと思ったら応援しよう!