コラボレーションモデル

S4 プロジェクトでは、git を使った fork+pull モデルを採用しています。したがって、開発者は S4 リポジトリをフォークしたもの (開発者自身で作成した S4 リポジトリのクローン) で作業することができます。S4 チームは、ほかの開発者から要求があれば、開発者が加えた変更内容をメインの S4 リポジトリにマージします。

このモデルについては、GitHub のここにわかりやすい説明があります。

バージョン管理

S4 は GitHub でホストしています。

git を使ったことがない場合は、優れたチュートリアルが gitref.org にあるので参照してください。

コード提供のガイドライン

実際にコードの提供を行う前に、S4 メーリングリスト宛にメッセージを送るか、または変更内容を記述した issue を github に作成してください。

S4 に対して大きな変更を加える場合は、開発者自身 (または開発者の所属企業) が Yahoo! Open Source Contributor License Agreement に署名する必要があります。

前記の方法のほかに、PDF 版フォームに必要事項を記入して、これを Yahoo! に所属しているメンテナ宛にメールで送信することもできます。

ソースコードの修正

まず、変更するコードを含んでいるリポジトリをフォークします。ついで、フォークしたリポジトリを自分の開発環境にクローンします。

以下のコーディング規約に従って、コードを修正します。

  1. public なすべてのクラス、インタフェース、およびメソッドには、有意義な Javadoc コメントを付ける必要があります。自明なコメントや無意味なコメントは付けないでください。
    • 不適切な例: getCondensedLength(): Gets condensed length.
    • 適切な例: getCondensedLength(): Number of characters in the string, excluding non alpha-numeric characters.
  2. コードの整形
    • 新規の Java ソースファイルは、Sun の規約に従って整形する必要があります。ただし、以下の例外があります。
      • レベルごとに 4 つのスペースでインデントします。
      • インデントにはタブではなく、スペースを使用します。タブを使うと、エディタによって整形結果が異なって表示されることがあります。eclipse でスペースとタブを使い分ける手順については、ここを参照してください。
    • 既存のファイルを編集する場合は、そのファイルで使われているコーディングスタイルを踏襲してください。
  3. 自分が加える変更と関係のないコード行の整形内容やインデント、その他を変更することは避けてください。このようなことを行うと、コードの diff がわかりづらくなります。
    • ファイルの整形内容をどうしても変更しなければならない場合には、それだけを独立させてコミットしてください。

変更内容の提出

リポジトリのクローンで変更作業を終えたら、フォークしたリポジトリに変更内容をプッシュします。

その後、S4 チーム宛に pull リクエストを送ってください。S4 チームでは、このリクエストを受け取ることで、変更作業が終わったことがわかります。場合によっては、ほかの開発者からコメントがあるかもしれません。そのコメントに基づいて、フォークしたリポジトリにさらに変更を加える必要が生じることもあるでしょう。

これらのやり取りが終わったら、S4 チームは変更内容をメインの S4 リポジトリにマージします。

S4 をよりよくするためにぜひ協力してください。

参加する