CodeIgniterはコミュニティにより開発が進められるプロジェクトで、コードやドキュメントの 提供をコミュニティから受けています。 これらの提供・貢献は、GitHubのEllisLab/CodeIgniterリポジトリに於いて、 フォームからのissueの投稿やPull Requestで行われます。
issueはバグ報告を行う手っ取り早い方法です。もしバグやドキュメントの誤りを見つけた場合は、 まず以下の点を確認してください。
- 既にopenされたissueが存在しないか
- そのissueは既に修正されていないか(developブランチかcloseされたissueを確認してください)
- あなた自信がそれを修正することはできないか
issueの報告はとても役立ちますが、開発リポジトリをforkし、自身のリポジトリでcommitを 行った上でPull requestを送るのがより良い方法です。これにはGitと呼ばれるバージョン 管理システムが必要になります。
Pull Requestのやり方の前に、ガイドラインを確認しましょう。あなたのPull Requestが これらのガイドラインをパスしていない場合には、Pull Requestは拒絶され、その内容に さらに変更を加えて対応した場合、再度その内容を提示する必要があります。 とても難しく感じますが、コードの品質を保つためには必要なことです。
すべてのコードはスタイルガイドに適していなければいけません。 本質的なところでは、インデントはAllmanスタイル、アンダースコア記法、 理解しやすいオペレータ記述です。これはすべてのコードを既存のコードと同じフォーマットに し、可能な限り読み易いものであることを確保します。
もしドキュメントの変更が必要な変更を行った場合、ドキュメントの変更も必要です。 新しいクラス、メソッド、引数の定義やデフォルト値の変更などはドキュメントの変更が必要です。 ドキュメントの変更に伴ってchange-logのアップデートもしなければいけません。もちろん PHPDocブロックの変更も必要です。
CodeIgniterはPHP5.1.6と互換性があり、すべてのコードはこの条件を満たさなければいけません。 PHP5.2やPHP5.3の関数や特徴が使われている場合にはPHP5.1.6に適合するように修正しなければ いけません。
CodeIgniterは、すべてのPull Requestが"develop"ブランチに送られるGit-Flowブランチモデル を採用しています。
[省略]
※この辺りの内容は、この説明を読むよりも以下のリンクを確認した方が分かりやすい。
見えないチカラ A successful Git branching model を翻訳しました
1つのPull Requestは、1つの変更のみを含むべきです。 commitが1つだけということではなく、複数のコミットがあっても変更点が1つという意味です。 XとYの2つの変更をを1つのPull Requestで送った場合に、私たちがXを採用するがYは拒絶する 場合、この1つのPull Requestがmergeできないからです。 Git-Flowブランチモデルを使うことで、あなたは新しいブランチをそれぞれ作り、2つの Pull Requestを送ることができます。
[省略]
GithubとGitの使い方の話なので箇条書きで
- Githubのアカウントが必要です
- 簡単な方法:Githubのインライン編集から簡単なtypoを素早く修正できます。
- 難しい方法:あなたの開発環境にcloneして修正してPull Requestしてください。
- あなたの変更がガイドラインに適さない場合には、却下されるか修正するようにフィードバックします。
- Pull Requestを受け取ると、EllisLab内のディスカッション・エリアに投稿され、 他のエンジニアやEllisLabのエンジニアによって再度チェックされます。
- 問題がなければdevelopブランチにmergeされ、次のリリースの一部になります。
[省略]
forkしたリポジトリはpullして最新に保ちましょう、という話。
最低でも、Pull Requestを送る前には。