コードへの貢献方法

Netteフレームワークに貢献しようとしていて、ルールや手順を理解する必要がありますか?この初心者向けガイドでは、コードに効果的に貢献し、リポジトリで作業し、変更を実装する方法をステップバイステップで示します。

手順

コードに貢献するには、GitHub アカウントを持ち、Gitバージョン管理システムの基本に精通している必要があります。Gitの操作に慣れていない場合は、git – the simple guide ガイドを参照したり、多くの グラフィカルクライアント のいずれかを利用したりできます。

環境とリポジトリの準備

  1. GitHubで、編集する パッケージ のリポジトリの フォーク を作成します
  2. このリポジトリを自分のコンピュータに クローン します
  3. composer install コマンドを使用して、Nette Tester を含む依存関係をインストールします
  4. composer tester を実行してテストが機能することを確認します
  5. 最新のリリースバージョンに基づいて 新しいブランチ を作成します

独自の変更の実装

これで、独自のコード変更を行うことができます:

  1. 必要な変更をプログラムし、テストを忘れないでください
  2. composer tester を使用してテストが正常に実行されることを確認します
  3. コードが コーディング規約 を満たしているか確認します
  4. この形式 の説明とともに変更を保存(コミット)します

各論理ステップごとに1つのコミットを作成できます。各コミットは単独で意味があるべきです。

変更の送信

変更に満足したら、送信できます:

  1. 変更をGitHubの自分のフォークに送信(プッシュ)します
  2. そこから、プルリクエスト (PR) を作成してNetteリポジトリに送信します
  3. 説明に 十分な情報 を記載します

コメントの反映

あなたのコミットは他の人にも見られるようになります。コメントで指摘を受けることは一般的です:

  1. 提案された変更を追跡します
  2. 新しいコミットとして反映するか、以前のものとマージ します
  3. コミットを再度GitHubに送信すると、自動的にプルリクエストに表示されます

既存のプルリクエストを修正するために新しいプルリクエストを作成しないでください。

ドキュメント

機能性を変更したり、新しい機能を追加したりした場合は、それを ドキュメントに追加 することも忘れないでください。

新しいブランチ

可能であれば、最新のリリースバージョン、つまり特定のブランチの最新のタグに対して変更を行ってください。タグ v3.2.1 の場合、次のコマンドでブランチを作成します:

git checkout -b new_branch_name v3.2.1

コーディング規約

あなたのコードは、Netteフレームワークで使用されている coding standard に準拠する必要があります。コードのチェックと修正には自動ツールが利用可能です。Composerを介して、選択したフォルダに グローバルに インストールできます:

composer create-project nette/coding-standard /path/to/nette-coding-standard

これで、ターミナルでツールを実行できるようになるはずです。最初のコマンドでチェックし、2番目のコマンドで現在のディレクトリの src および tests フォルダ内のコードを修正します:

/path/to/nette-coding-standard/ecs check
/path/to/nette-coding-standard/ecs check --fix

コミットの説明

Netteでは、コミットの件名は次の形式です:Presenter: fixed AJAX detection [Closes #69]

  • コロンが続く領域
  • 可能であれば過去形のコミットの目的、可能であれば次の単語で始めます:added, fixed, refactored, changed, removed
  • コミットが後方互換性を壊す場合は、“BC break” を追加します
  • (#123)[Closes #69] のような課題トラッカーへの可能な関連付け
  • 件名の後には、1行の空行が続き、その後、フォーラムへのリンクなどを含む詳細な説明が続くことがあります

プルリクエストの説明

プルリクエストを作成する際、GitHubインターフェースではタイトルと説明を入力できます。わかりやすいタイトルを付け、説明には変更の理由についてできるだけ多くの情報を提供してください。

また、ヘッダーも表示され、それが新機能なのかバグ修正なのか、後方互換性の破壊(BC break)が発生する可能性があるかどうかを指定します。関連する問題(issue)がある場合は、プルリクエストが承認された後に閉じられるようにリンクしてください。

- bug fix / new feature?  <!-- #issue番号、もしあれば -->
- BC break? yes/no
- doc PR: nette/docs#?    <!-- 大歓迎、https://nette.org/en/writing を参照 -->