先日 WordCamp Tokyo 2017 コントリビューターデイに参加し、
WP-CLI のコントリビューターになりました。
過去記事:「WordCamp Tokyo 2017 コントリビューターDayの感想」
本記事ではより具体的な内容をまとめたいと思います。
※WP-CLI のサブコマンドごとにリポジトリが別れています
今回はそれぞれ独自の環境で準備をしたため、環境準備でエラーがでたり、うまく進まないことがありました。
僕は以下の環境でやりましたが、幸い特に問題は起きませんでした。
macOS Sierra 10.12.6
built-in PHP 5.6.30
MySQL via homebrew 5.7.12
さて、ここからが実際の作業ですが、
まず wp コマンドをインストールして、その状態で behat によるテストが正しく実行されるかを確認します。具体的には以下の手順で確認していきました。
1. wp コマンドのインストールと確認
効率よく開発するために、 nightly バージョンのコマンドをインストールします。
$ curl -L https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli-nightly.phar > /usr/local/bin/wp
chmod 755 /usr/local/bin/wp
# 確認
$ wp --info
PHP binary: /usr/bin/php
PHP version: 5.6.30
php.ini used: /etc/php.ini
WP-CLI root dir: phar://wp-cli.phar
WP-CLI vendor dir: phar://wp-cli.phar/vendor
WP_CLI phar path: /Users/xxxxx
WP-CLI packages dir:
WP-CLI global config:
WP-CLI project config:
WP-CLI version: 1.4.0-alpha-772db10
$ cd /any/path/
$ git clone git@github.com:wp-cli/core-command.git
$ cd core-command
$ composer install
ぼくは composer をインストールしてなかったので、以下のように composer のインストールから作業しました…。ww
$ brew install homebrew/php/composer
# 以下でログインできたらOK。
# これは MySQL が正常に動作していることの確認なので、パスワードをセットしていてももちろん問題ないです!(当たり前)
$ mysql -u root
# ユーザーを作成する
$ echo 'GRANT ALL PRIVILEGES ON wp_cli_test.* TO "wp_cli_test"@"localhost" IDENTIFIED BY "password1";' | mysql -u root
4. とりあえずテストを叩く!
$ ./vendor/bin/behat
これでテストが開始されます...
...
56 個のシナリオ (56 個成功)
530 個のステップ (530 個成功)
11m58.88s
以上で、「とりあえずの準備」が完了となります。苦笑
ぼくらは今回以下の Issue チケットと格闘しました!笑
Create separate cache directory for behat for each version of WordPress #4343
実はこれ、すでにバグ修正自体はできていて専用のパッチも存在しているものの、関連するすべてのリポジトリにこのパッチを
当てる必要があり、、、要は、やることは至って簡単、かつ、マンパワーが必要な作業だったため、コントリビューターデイに打ってつけのタスクとなったわけです。笑
みんなで粛々と20個位のリポジトリにPR投げていくのは楽しかったですねw
さて、以下に具体的な作業を載せます。
前の記事でも書きましたが、僕は4つのPRを出しました。
今回はそのうちの一つを例に上げたいと思います。
1. 該当リポジトリなどの準備
修正をしたリポジトリは config-command です。
github 上で fork して、その後 clone します。
$ git clone git@github.com:ryotsun/config-command.git
$ wp package install wp-cli/scaffold-package-command
php -d memory_limit=-1 /usr/local/bin/wp package install wp-cli/scaffold-package-command
2. patch を適用する
# Issue の #4343 を対応するからこの名前
$ git checkout -b patch-4343
$ composer install
# これがパッチ。ただ当てるだけ…!簡単( ・ิω・ิ)
$ wp scaffold package-tests . --force
# 差分がでるので add, commit, push
$ git commit -m "update package tests"
$ git push origin patch-4343
※もし composer.lock が差分に出る場合は、.gitignore にひっそりと追加してあげましょう。( ̄ー ̄)ニヤリ
そうして投げつけたPRがこちら。
https://github.com/wp-cli/config-command/pull/29
これで次回のリリース時に名前が載るそうですよ!びつくりですね。
軽い気持ちで聞ける人が(物理的に)すぐそばにいるっていうのは本当によかったです。
ぼくはこのようにして第一歩を踏み出しました!
ひとりだったら高いと思えたハードルも、簡単に乗り越えることができましたよ。
これからも緩やかに頑張っていきたいと思います。
新しい記事へ
SSH を使ってリモートサーバーに接続する方法
mac に pip をインストールする
mac は標準で python が入っていますが、パッケージ管理の pip がインストールされていないので入れてみました。
2017/05/26 09:00
[GAS] Google Drive の特定フォルダ配下のフォルダ・ファイルの権限を一括で移譲する
Google Drive の特定フォルダ配下のファイル・フォルダの権限を一括で移譲するツールを Google Apps Script で作りました。
2018/11/10 15:54
[Windows] Ophcrack を使ってユーザーパスワードを解析する方法
家族で使っていた Windows7 のログインパスワードを忘れたため、Ophcrack を使って解析したときの記録です。
2017/09/30 21:00
[shell] フォルダ内にある大量の ZIP ファイルをまとめて解凍する
とある ZIP を解凍すると中に大量の ZIP が居たときに幸せになれるコマンドを紹介します
2018/06/19 23:45
[MySQL] データファイルから DB を復元する
先日 MySQL が再起動できなくなる問題が発生し、急遽データファイル(.frm, .ibd)から復元しました
2018/11/25 12:44