diff --git a/core/testing/automated-testing/phpunit.md b/core/testing/automated-testing/phpunit.md index e8d9d82..415c539 100644 --- a/core/testing/automated-testing/phpunit.md +++ b/core/testing/automated-testing/phpunit.md @@ -1,63 +1,156 @@ # PHP: PHPUnit + +PHPUnit は、PHP コードをテストするためにコアチームが選んだ公式のテストフレームワークです。 + + + +## セットアップ + + +### ステップ1: テストリポジトリをチェックアウトする + + +WordPress のテストは、SVN 経由で利用可能なコア開発リポジトリにあります: ```bash svn co https://develop.svn.wordpress.org/trunk/ wordpress-develop cd wordpress-develop ``` + + +または Git で: ```bash git clone git://develop.git.wordpress.org/ wordpress-develop cd wordpress-develop ``` + + +### ステップ2: config ファイルを設定する + +`wp-tests-config-sample.php` を `wp-tests-config.php` にコピーし、データベースの認証情報を入力します。**別のデータベースを使用してください。** + + + +## テストを実行するためのワークフローオプション + + +PHPUnit テストを実行するには、いくつかの方法があります。どのワークフローを選択するかはあなた次第です。 + +ワークフローによってはより多くの設定が必要なものがあります。迷った場合は、ほとんどのセットアップが自動的に行われる Docker ワークフローから始めることをおすすめします。 + + + +1. Docker コンテナ +2. Composer +3. PHPUnit PHAR ファイルを Composer で実行する +4. Composer を使わずに PHPUnit PHAR ファイルを実行する + + +### Docker 以外のワークフローに必要な前提条件 + + + +Docker 以外のワークフローでは、PHP と MySQL/MariaDB が利用可能であることを確認する必要があります。 + + +PHP とデータベースをローカルにセットアップする方法については、[ローカルサーバーのインストール](https://make.wordpress.org/core/handbook/tutorials/installing-a-local-server/)についてのハンドブックページを参照してください。 + +完全なテストスイートを実行するには、[PHPUnit](https://docs.phpunit.de/en/9.6/installation.html#requirements) と WordPress のテストスイートの両方で[特定の PHP 拡張モジュール](https://make.wordpress.org/hosting/handbook/server-environment/#php-extensions)を有効にする必要があることに注意してください。 + + + +有効にしておくべき代表的な拡張機能は次の通りです: `gd`、`mysql[i]`、`zip`、`exif`、`intl`、`mbstring`、`xml`、`xsl` + + +オプションとして、PHP の外部拡張である Xdebug、MemCache および Imagick もインストールして有効にしておく必要があります。 + +### ワークフロー1: Docker コンテナ環境のセットアップ + + + +**ステップ1**: [Docker](https://www.docker.com/products/docker-desktop)をインストールし、起動する + + +**ステップ2**: [NPM](https://nodejs.org/en/download/)をインストールする + +**ステップ3**: WordPress をインストールしたディレクトリのルートディレクトリにいることを確認する + + + +**ステップ4**: コマンドラインから次のコマンドを実行する: ```bash npm install @@ -66,63 +159,171 @@ npm run env:start npm run env:install ``` + + +#### テストの実行 + +docker コンテナをセットアップしてプロビジョニングされたら、コマンドラインからテストを実行できます: `npm run test:php`。 + + + +追加のコマンドライン引数を PHPUnit に渡す場合は、NPM コマンドと追加の PHPUnit 引数の間に二重ダッシュ区切り文字を追加して、NPM がそれらを PHPUnit に渡すようにする必要があります。 + + +### ワークフロー2: Composer 環境のセットアップ + +**ステップ1**: [Composer](https://getcomposer.org/download/) をインストールする + + + +**ステップ2**: WordPress をインストールしたディレクトリのルートディレクトリにいることを確認する + + +**ステップ3**: コマンドラインから次のコマンドを実行する: `composer update -W` + +#### テストの実行 + + + +Composer の依存関係がインストールされたら、コマンドラインから次のコマンドを使用してテストを実行できます: `vendor/bin/phpunit` + + +### ワークフロー3: PHPUnit PHAR ファイルを Composer で実行するための設定 + +**ステップ1**: PHPUnit Phar をインストールする + + + +[PHP のバージョンに適した](https://phpunit.de/supported-versions.html) PHAR をインストールします。インストール手順は、[PHPUnit のマニュアル](https://docs.phpunit.de/en/9.6/installation.html)または [PHPUnit の Web サイト](https://phpunit.de/getting-started/phpunit-9.html) を参照してください。 + + +**ステップ2**: [Composer](https://getcomposer.org/download/) をインストールする + +**ステップ3**: WordPress をインストールしたディレクトリのルートディレクトリにいることを確認する + + + +**ステップ4**: Composer の依存関係をインストールする + + +コマンドラインから次のコマンドを実行する: `composer update -W` + +#### テストの実行 + + + +PHPUnit PHAR と Composer の依存関係がインストールされたら、コマンドラインから次のコマンドを使用してテストを実行できます: `[path/to/]phpunit` + + +### ワークフロー4: Composer を使わずに PHPUnit PHAR ファイルを実行するように設定する + +この方法は、PHPUnit と PHPUnit ポリフィルをグローバルにインストールし、複数のディレクトリでテストを実行する場合に最適です。 + + + +**ステップ1**: PHPUnit PHAR をインストールする + + +[PHP のバージョンに適した](https://phpunit.de/supported-versions.html) PHAR をインストールします。インストール手順は、[PHPUnit のマニュアル](https://docs.phpunit.de/en/9.6/installation.html)または [PHPUnit の Web サイト](https://phpunit.de/getting-started/phpunit-9.html) を参照してください。 + +**ステップ2**: [PHPUnit](https://github.com/Yoast/PHPUnit-Polyfills/) ポリフィルをインストールする + + + +通常は、GitHub リポジトリのクローンを作成します: ```bash git clone git@github.com:Yoast/PHPUnit-Polyfills.git [target/path] ``` + + +**ステップ3**: ポリフィルへのパスを定義する + +ポリフィルをインストールしたら、定数 `WP_TESTS_PHPUNIT_POLYFILLS_PATH` でパスを定義して、Polyfills がどこにあるかを WordPress のテスト用ブートストラップに伝えます。 + + + +この定数は、`phpunit.xml[.dist]` ファイルで次のように宣言します: ```php @@ -131,23 +332,59 @@ This constant can be declared in the `phpunit.xml[.dist]` file like this: ``` + + +または、`wp-tests-config.php` ファイルで PHP 定数として宣言できます。 + +#### テストの実行 + + + +PHPUnit PHAR とポリフィルをインストールしたら、コマンドラインから次のコマンドを使用してテストを実行できます: `[path/to/]phpunit` + + +備考: このワークフローを使用する場合は、PHPUnit ポリフィルのローカルクローンを常に最新の状態にしておくようにしましょう。 + +## テストスイートの実行 + + + +備考: + + +好みのワークフローを選び、上記の手順に従ってマシンをセットアップしたら、上記の好みのワークフローに記載されているコマンドでテストを実行できます。 + +以下のすべての例では `phpunit` を使用します。これらの例をローカルで実行する場合は、このコマンドをワークフロー固有のコマンドに置き換えてください。 + + + +おおよそ以下のような出力が表示されるはずです: ```bash ........................................................... 59 / 12524 ( 0%) @@ -163,44 +400,89 @@ You should see output that looks roughly like the following: Time: 01:46.744, Memory: 235.10 MB -OK, but incomplete or skipped tests! +OK, but incomplete or skipped tests! Tests: 12524, Assertions: 57712, Skipped: 56. ``` + + +各記号の意味は次の通りです: + +* `.` – それぞれのドットは合格した一つの「テスト」を意味します。 +* `S` はテストがスキップされたことを意味します。これは通常、テストがマルチサイトや特定の PHP 拡張モジュールを必要とするなど、特定の設定でのみ有効であることを意味します。 +* `F` はテストが失敗したことを意味します。何がどこで失敗したのか、より詳細な出力が表示されます。 +* `E` は、PHP のエラー、警告、通知によってテストが失敗したことを意味します。 +* `R` はテストが「危険」と判定されたことを意味します。何が危険と判定されるかは、`phpunit.xml.dist` ファイルの設定に大きく依存します。これは、特に遅いテストやアサーションを実行しないテストなどです。 +* `I` は、テストが不完全である、たとえばまだ実装されていないことを意味します。 + + + +備考: Windows で、コマンドラインの画面出力に奇妙なコードが表示されていますか ? `--colors=never` で実行してみてください。 + + +### 特定のテストの実行 + +#### 個別テスト + + + +**個別のクラス** を実行するには、`--filter` を使用してクラス名を指定します: ```bash phpunit --filter Tests_Formatting_wpParseStr ``` + + +PHPUnit の `--filter` オプションは非常に柔軟で、さまざまなオプションをサポートしています。[PHPUnit のマニュアル](https://docs.phpunit.de/en/9.6/textui.html#textui-examples-filter-patterns)を参照ください。 + +#### グループ + + + +**テストのグループ** を実行するには、コードのコメントで定義されている `@group` を使用します: ```bash phpunit --group dependencies phpunit --group themes ``` + + +グループを組み合わせることもできます (プラットフォームによっては、グループを二重引用符で囲む必要がある場合があります)。 ```bash phpunit --group shortcode,17657,6562,14050 @@ -211,98 +493,202 @@ phpunit --group shortcode,17657,6562,14050 OK (229 tests, 417 assertions) ``` + +備考: + + + +多くのテストには `@ticket` という注釈がついており、WordPress の Trac チケットの結果であることを示しています。 + + +`@ticket` 注釈は `@group` 注釈のエイリアスであるため、Trac チケット番号を「group」として渡すことで、個々の Trac チケットにリンクされたテストを実行できます。 + + +すべてのグループを表示するには: ```bash phpunit --list-groups ``` + + +スキップされたテストや不完全なテストに関する情報を見るには、`--verbose` を使用します: ```bash phpunit --group wpdb --verbose ``` ```bash - -There was 1 skipped test: + +There was 1 skipped test: 1) Tests_DB::test_charset_switched_to_utf8 This test requires utf8mb4 to not be supported. tests/phpunit/tests/db.php:1332 ``` + + +デフォルトでは、**AJAX テスト** (コアが `wp-admin/admin-ajax.php` を使用するために作成されたテスト) は実行されません。これらを実行するには: ```bash phpunit --group ajax ``` + + +**マルチサイト**でテストを実行するには、`multisite.xml` 設定ファイルに切り替える必要があります: ```bash phpunit -c tests/phpunit/multisite.xml ``` + + +#### Grunt を使用する + +さらに、`npm run grunt phpunit` を実行することで、ajax テストや multisite テストを含む PHPUnit テストを実行できます。 + + + +#### 継続的に実行する + + +パッチの作業中にターミナルに切り替えて手動でテストグループを繰り返し実行するのではなく、継続的に実行し続けることができます。ファイルを保存するたびに、テストグループは自動的に再実行されます。これにより、ある変更によってテストが壊れたり合格したりしたことをすぐに知ることができます。 + + +PHPUnit テスト**および**その他のすべての監視タスクを実行するには、次のようにします: ```bash npm run grunt watch -- --phpunit --group={testgroup} ``` + + +PHPUnit 監視タスク**のみ**を実行するには、次のようにします: ```bash npm run grunt watch:phpunit -- --group={testgroup} ``` + + +カンマ区切りで複数のグループを実行します: ```bash npm run grunt watch:phpunit -- --group=community-events,privacy ``` + +#### 最適化 + + + +環境変数 `WP_TESTS_SKIP_INSTALL` を `1` に定義することで、スイートがインストール手順をスキップするようになり、スイートの速度を向上させることができます。これは完全なテストの実行には使用すべきではありませんが、小さなテストグループの実行時間を節約することに役立ちます。 ```bash WP_TESTS_SKIP_INSTALL=1 phpunit --group=privacy ``` + + +## テストを作成する + +WordPress の PHPUnit テストを作成し始めるための[ガイド](https://make.wordpress.org/core/handbook/testing/automated-testing/writing-phpunit-tests/)を作成しました。 + + + +## テストで WordPress に貢献する + + +貢献するためには、主に3つの方法があります: + +**報告されたバグのテストを作成する。** 貢献するすばらしい方法は、既存のバグ報告を実証するテストを作成することです。コア開発者は、テストカバレッジのないコアの多くの繊細な部分のパッチを検討することに消極的です。適切に作成されたテストは、パッチが副作用なしに問題を修正することを確認するのに役立ち、将来的にリグレッションが発生することを防ぐことができます。チケットを進めるためにテストが特に必要であったり望ましい場合は、[needs-unit-tests](https://core.trac.wordpress.org/query?keywords=~needs-unit-tests) ワークフローキーワードを受け取ります。既存のチケットのテストは WordPress コアの Trac で直接提出できます。テストケースを含むバグレポートを提出するとよりよいでしょう。 + + + +**コードカバレッジを向上させるために新しいテストを作成する。** WordPress の多くの領域で、十分なテストカバレッジを持っていません。関数、クラス、コンポーネントを選んで、そのテストを作成してください。これらのテストは [WordPress Trac](https://core.trac.wordpress.org/) で提出できます。 + + +**既存のテストケースを修正または改善する。** 既存のテストには改善の余地がたくさんあります。古いものもあれば、速度が遅い、または壊れやすいものもあります。マルチサイトや特定の条件下でうまくテストできてないものもあります。一部の個別のテストより多くのことをテストしようとしており、データプロバイダ、依存関係、より限定的なアサーションを[使用することで改善できる可能性があります](https://docs.phpunit.de/en/9.6/writing-tests-for-phpunit.html)。 + +## JavaScript ユニットテスト + + + +JavaScript コードのユニットテストは、PHP のユニットテストに比べて WordPress コアではかなり制限されています。JS ユニットテストの詳細については、[Make/Core の投稿](https://make.wordpress.org/core/2013/09/13/javascript-unit-tests-for-core/)や[ハンドブックの QUnit セクション](https://make.wordpress.org/core/handbook/testing/automated-testing/qunit/)を参照してください。 + + +## 参考資料 * [PHPUnit Manual](https://docs.phpunit.de/) -* [PHPUnit on Github](https://github.com/sebastianbergmann/phpunit) \ No newline at end of file +* [PHPUnit on Github](https://github.com/sebastianbergmann/phpunit) diff --git a/core/tutorials/working-with-patches.md b/core/tutorials/working-with-patches.md index fd033e3..69cdb7d 100644 --- a/core/tutorials/working-with-patches.md +++ b/core/tutorials/working-with-patches.md @@ -1,53 +1,130 @@ + +# パッチに取り組む + + + +ハンドブックのこのセクションには、パッチの作成、適用、およびそれらを元に戻す方法を学ぶために役立つチュートリアルが含まれています。 + + +パッチは、あなたのような貢献者が WordPress プロジェクトにコードを提出する唯一の方法です。 + +バグを修正する場合でも、新機能に貢献する場合でも、コア開発者やコミッターがあなたのコードをリポジトリに含めるかどうか検討するために、パッチが必要です。 + + + +WordPress の最新開発版をベータテストする場合、他の貢献者が作成したパッチを適用して、そのパッチが問題を修正しているかどうかを判断する必要があります。 + + +## SVN クライアントかコマンドラインインターフェースか ? + +多くの開発者は、[コマンドラインインターフェイス](https://make.wordpress.org/core/glossary/#command-line-interface) (CLI) を使って Subversion (SVN) を操作することを好みますが、[GUI](http://en.wikipedia.org/wiki/GUI) アプリケーションを使うことを好む人もいます。どちらも問題なく、パッチの作成、適用、およびそれらを元に戻すことができます。 + + + +コマンドラインユーザーには、[Cygwin](http://cygwin.com/) (Windows)、[Terminal](http://en.wikipedia.org/wiki/Terminal_(OS_X)) (Mac)、[Bash](http://www.gnu.org/software/bash/) (Mac) などのプログラムがあります。 + + +GUI アプリケーションを使用する場合、推奨される SVN クライアントは [TortoiseSVN](http://tortoisesvn.net/) (Windows、フリー/オープンソース)、[Cornerstone](http://www.zennaware.com/cornerstone/) (Mac、有料) です。 + +## Grunt を使ったパッチの作成と適用 + + + +作成したパッチを既存のチケットに自動的に提出したい場合は、パッチの作成とアップロードの両方を行うことができる使いやすい [Grunt](https://gruntjs.com/getting-started) コマンドがあります。このコマンドを使うには、[Node.js](https://nodejs.org/) と [Grunt-CLI](https://gruntjs.com/getting-started#installing-the-cli) がグローバルにインストールされている必要があります。また、WordPress の開発依存パッケージがローカルにインストールされている必要があります。これは、`npm install` を実行することでインストールできます。 + +### コマンドラインからパッチを適用する + + + +1. 作業ディレクトリに diff かパッチファイルを用意して、`grunt patch` を実行します。複数のファイルが見つかった場合、どれを適用するか尋ねられます。 +2. チケット番号を入力します。 > `grunt patch:15705` + + +3. チケットの URL を入力します。 > `grunt patch:https://core.trac.wordpress.org/ticket/15705` + + +4. パッチの URL を入力します。 > `grunt patch:https://core.trac.wordpress.org/attachment/ticket/11817/13711.diff` + + +5. プルリクエストなどのチェンジセットを指す GitHub の URL を入力します。 > `grunt patch:https://github.com/muhammadfaizanhaidar/develop.wordpress/pull/23` + + +### コマンドラインからパッチをアップロードする + + +ローカルの WordPress 開発リポジトリに変更を加えた後、パッチファイルを Trac チケットに直接アップロードできます。たとえばチケット番号が2907であるとすると、 ``` grunt upload_patch:2907 ``` + + +WordPress.org の認証情報を環境変数に保存することもできますが、認証情報が漏洩する可能性があるため、このオプションを使用する場合は注意してください ! ``` export WPORG_USERNAME=matt @@ -55,168 +132,439 @@ export WPORG_PASSWORD=MyPasswordIsVerySecure12345 grunt uploadPatch:40000 ``` + + +## TortoiseSVN を使ったパッチの作成と適用 + +開始する前に、次のものが必要です: + + + +* [コンピューターにインストールされた TortoiseSVN](https://make.wordpress.org/core/handbook/tutorials/installing-a-vcs/) +* コンピューターにインストールされた [Notepad++](http://notepad-plus-plus.org/) のようなプレーンテキストエディター + +### TortoiseSVN でパッチを作成する + + + +#### 1\. ファイルの編集と保存 + + +フォルダーを開き、変更したいファイルを見つけてください。好きなプレーンテキストエディターで開いてください。**注意:** ファイルの編集には、Word や OpenOffice のようなリッチテキストエディターは使用しないでください。 + +必要な変更を加えて、ファイルを保存します。 + + + +緑色のチェックマークが赤色の感嘆符に変わっていることが分かります。これはファイルが変更され、リポジトリのバージョンと同期していないことを意味します。 + + +![TortoiseSVN 変更ファイルインジケーター](https://make.wordpress.org/core/files/2013/02/tortoisesvn-changed-file.png) + +#### 2\. パッチの作成と命名 + + + +次にパッチファイルを作成します。SVN チェックアウトフォルダーのルートディレクトリで右クリックし、**SVN Create Patch** を選択します。 + + +ルートディレクトリ (WordPress のすべてのファイルが含まれているフォルダー) からパッチを作成することが重要です。そのためには、フォルダー内の空白を右クリックするか、そのフォルダーから1つ上の階層に移動して右クリックします。 + +![TortoiseSVN パッチを作成するコンテキストメニュー](https://make.wordpress.org/core/files/2013/02/tortoisesvn-create-patch-1.png) + + + +ポップアップウィンドウに変更されたファイルのリストが表示されます。パッチに含めたいファイルにチェックが入っていることを確認し、**OK** をクリックします。 + +![パッチに含めたいすべてのファイルにチェックを入れる](https://make.wordpress.org/core/files/2013/02/tortoisesvn-create-patch-2.png) + + + +ファイルを保存するプロンプトが表示されます。**patches** というフォルダーを作成し、保存するファイル名を入力します。形式は **ticket#.diff** にしてください。 + + +TortoiseUDiff エディターが開き、作成したパッチファイルが表示されます。 + +![TortoiseUDiff エディター](https://make.wordpress.org/core/files/2013/02/tortoisesvn-22121-patch.png) + + + +### TortoiseSVN でパッチを適用する + + +ローカル環境でパッチをテストしたいですか ? 以下の手順に従ってパッチをテストしてください。 + +#### 1\. パッチのダウンロード + + + +トラブルシューティングやテストプロセスの一環として、あなたが関わっている Trac チケットからパッチをダウンロードして、ローカルの WordPress trunk インストールに適用することが含まれます。 + + +パッチをダウンロードするには、チケットの **Attachments** セクション (**Description** セクションのすぐ下) にあるパッチファイル名の横にある **Download アイコンをクリック**し、**patches** というフォルダーに保存してください。 + +![Trac チケットからパッチをダウンロードする画面](https://make.wordpress.org/core/files/2013/04/tortoisesvn-apply-patch-download-file.png) + + + +#### 2\. TortoiseSVN でパッチを適用する + +ダウンロードしたパッチを適用するために、WordPress の作業コピーの**フォルダー内で右クリック**するとコンテキストメニューが表示されます。**SVN Apply Patch** をクリックしてください。 + + + +![TortoiseSVN パッチを適用するコンテキストメニュー画面](https://make.wordpress.org/core/files/2013/03/tortoisesvn-apply-patch-context-menu.png) + + +ファイルを開くダイアログウィンドウが表示され、適用するパッチファイルを選択できます。デフォルトでは、**.patch** または **.diff** ファイルだけが表示されますが、探しているパッチファイルが見つからない場合は、ファイルタイプを **すべてのファイル** に変更することができます。 + +![TortoiseSVN ローカルファイルの選択画面](https://make.wordpress.org/core/files/2013/03/tortoisesvn-apply-patch-select-local-file.png) + + + +WordPress の作業コピーにパッチファイルを適用する場合は、パッチを作成したときと同じフォルダーの階層で行ってください。正しい作業コピーであるにもかかわらず、間違ったフォルダー階層を選択した場合、TortoiseSVN は正しい階層を提案するメッセージを表示し、それを選択できるようにします。 + + +![TortoiseSVN 誤ったディレクトリを示す画面](https://make.wordpress.org/core/files/2013/03/tortoisesvn-apply-patch-wrong-directory.png) + +パッチファイルと正しい作業コピーの場所を選択すると、TortoiseMerge が実行され、パッチファイルの変更が作業コピーにマージされます。小さなウィンドウに、変更されたファイルが一覧表示されます。**各ファイル名をダブルクリック**し、変更内容を確認し、パッチを適用したファイルを作業コピーに保存してください。 + + + +![TortoiseSVN パッチが適用されたファイルを示す画面](https://make.wordpress.org/core/files/2013/03/tortoisesvn-apply-patch-files-patched.png) + + +## コマンドラインを使ったパッチの作成と適用 + +この記事では、コマンドラインを使ってパッチを作成、適用、およびそれらを元に戻す手順を説明します。はじめる前に、次のものが必要です: + + + +* [Notepad++](http://notepad-plus-plus.org/) (Windows) や [TextMate](http://macromates.com/) (Mac) などのプレーンテキストエディターがコンピューターにインストールされていること +* [SVN 経由でチェックアウトした](https://make.wordpress.org/core/handbook/tutorials/installing-wordpress-locally/from-svn/) WordPress trunk のコピー +* コンピューターにインストールされたコマンドラインクライアント: + * Windows: [Cygwin](http://cygwin.com/) + * MAC: [Terminal](http://en.wikipedia.org/wiki/Terminal_(OS_X)) または [Bash](http://www.gnu.org/software/bash/) + + +### コマンドラインでパッチを作成する + + +ベータテスト中に、あなたが修正できるバグに遭遇するかもしれません。しかし、Trac チケットを提出する前に、修正案をパッチとして作成し、チケットに添付する必要があります。 + +SVN 経由で WordPress がインストールされているフォルダーを開き、変更したいファイルを見つけてください。好きなプレーンテキストエディターでファイルを開いてください。バグを修正するために必要な変更を加えて、ファイルを保存します。圧縮された JS ファイルや RTL CSS ファイルのパッチは作成しないでください。これらはソースファイルから自動的に生成されます。詳細については、[このビルドプロセス](https://make.wordpress.org/core/2013/08/06/a-new-frontier-for-core-development/)を参照してください。 + + + +次に、パッチファイルを作成します。このパッチファイルは、WordPress trunk のファイルとの差分を記録します。パッチは WordPress SVN インストールのルートディレクトリから作成します。 + + +パッチを作成するには、SVN チェックアウトで作成したルートディレクトリ (**wordpress-svn**) にいることを確認し、次のコマンドを実行します。ここで、`00000` は Trac からのチケット番号に置き換えられます: ```bash svn diff > 00000.diff ``` + +作成したパッチを既存のチケットに自動的に提出したい場合は、パッチの作成とアップロードの両方を行うことができる使いやすい [Grunt](https://make.wordpress.org/core/handbook/tutorials/working-with-patches/#creating-and-applying-patches-with-grunt) コマンドがあります。このコマンドを使うには、[Node.js](https://nodejs.org/) と Grunt-CLI がグローバルにインストールされている必要があります。また、WordPress の開発依存パッケージがローカルにインストールされている必要があります。これは、`npm install` を実行することでインストールできます。 + + + +パッチを作成してアップロードする実際のコマンドは次のように機能します: ```bash grunt upload_patch:00000 ``` + + +`00000` は Trac のチケット番号に置き換えてください。コマンドの実行中に、wordpress.org のユーザー名とパスワードの入力を求められる場合があります。 + +### コマンドラインでパッチを適用する + + + +トラブルシューティングやテストプロセスの一環として、あなたが関わっている Trac チケットからパッチをダウンロードして、ローカルの WordPress trunk インストールに適用することが含まれます。 + +パッチをダウンロードするには、Trac のパッチ名の横にある便利なダウンロードアイコンをクリックしてください: + + + +![Trac チケットからパッチをダウンロードする画面](https://make.wordpress.org/core/files/2013/07/smpxJogJyp.png) + + +Mac では、デフォルトのダウンロードフォルダーに保存され、そこから選択した **wordpress-svn** ディレクトリに移動できます。Windows マシンの場合は、選択した場所 (前述のディレクトリ) に保存するように求められます。 + + +コマンドラインでパッチをダウンロードすることもできます。**wordpress-svn** ディレクトリにいることを確認し、**patches** フォルダーにパッチをダウンロードしてください。 ```bash curl -O https://core.trac.wordpress.org/raw-attachment/ticket/00000/00000.diff ``` + + +注意: この方法でパッチをダウンロードする場合、Trac サーバーの **raw-attachment** ディレクトリからダウンロードされていることを確認してください。この URL は、Trac でパッチをクリックし、ページ下部の **Original Format** でリンクされている URL を取得することで取得できます。 + + +パッチファイルをダウンロードした **wordpress-svn** ディレクトリからパッチを適用する必要があります。パッチを適用するには、以下のコマンドを使用します: ``` patch -p 0 < 00000.diff ``` + +これで、ダウンロードしたパッチファイルが **wordpress-svn** のコードに適用され、そのパッチを提出した開発者が作業していたバージョンのコードになります。 + + + +注意: もしパッチがきれいに適用できない場合は、Trac チケットにパッチの更新が必要であるというメモを残し、**needs-refresh** キーワードをチケットに追加する必要があります。 + + +このプロセスを少し簡単にするために、既存のチケットからパッチをダウンロードし、それを適用するもう一つの [Grunt](https://make.wordpress.org/core/handbook/tutorials/working-with-patches/#creating-and-applying-patches-with-grunt) コマンドがあります。前述したように、このコマンドを使うには、[Node.js](https://nodejs.org/) と Grunt-CLI の両方がグローバルにインストールされている必要があります。また、ローカルでの依存関係も設定する必要がありますが、これは `npm install` を実行することでインストールできます。 + + +その後、以下のコマンドを使用できます: ```bash grunt patch:00000 ``` + + +必ず `00000` を Trac のチケット番号に置き換えてください。利用可能なパッチが一つしかない場合、コマンドは自動的にチケットからパッチファイルをダウンロードします。そうでなければ、キーボードの矢印キーを使って、ダウンロードするパッチをリストから選択できます。 + +### コマンドラインでパッチを元に戻す + + + +テストが終了したら、インストールした SVN を最新バージョンの trunk に戻し、適用したパッチや変更点をすべて削除することをおすすめします。すべてのパッチや変更を戻すには、以下のコマンドを使います: ```bash svn revert -R * ``` + + +## GitHub プルリクエストのダウンロード + +[hub](https://hub.github.com/) を使用すると、(GitHub などの) Git リポジトリ上の WordPress フォークからプルリクエストをダウンロードすることがとても簡単になります。このセクションでは、このツールをシステムにインストールする必要があります。 + + + +これで、hub のバージョンを含むスーパーバージョンの Git が手に入ったので、VVV または WP の trunk フォルダーの `public_html` 内で次のコマンドを実行できます (例): `git checkout https://github.com/WordPress/wordpress-develop/pull/195` + +このコマンドは、そこにあるコードでそのブランチを更新する機能を備えており、このプルリクエストの内容を含む新しいブランチを自動的に作成します。 + + + +それ以外の場合は、次のようにプルリクエストの URL に `.patch` や `.diff` を追加することで、プルリクエストのパッチ版や diff 版をダウンロードできます: + +git checkout https://github.com/WordPress/wordpress-develop/pull/195` * [https://patch-diff.githubusercontent.com/raw/WordPress/wordpress-develop/pull/195.diff](https://patch-diff.githubusercontent.com/raw/WordPress/wordpress-develop/pull/195.diff) * [https://patch-diff.githubusercontent.com/raw/WordPress/wordpress-develop/pull/195.patch](https://patch-diff.githubusercontent.com/raw/WordPress/wordpress-develop/pull/195.patch) + + +## 次のステップ + + -* [Submitting a Patch](https://make.wordpress.org/core/handbook/tutorials/trac/submitting-a-patch/) \ No newline at end of file +* [パッチの提出](https://make.wordpress.org/core/handbook/tutorials/trac/submitting-a-patch/)