クリスマスの時期ですよねぇ。
2日 目のセッションデイについてのブログはこちら
実行委員(スタッフ)のユニフォームは、パーカーでした!
朝から多くの実行委員が集まってきました。実行委員長も健在です!
会場のWi-fi ありますが、ちょっと遅い感じはしますね。
さて今日はコントリビューターデイ。日本の WordCamp で初めてコントリビューターデイをしたのが、WordCamp Osaka の前身になる WordCamp Kansai の 2014年にあたり WordCamp Kansao 2014でした(「日本のWordCampで初めての試み!コントリビューターデイってなんだ?」参照)。このコントリビューターデイとは、WordPress の何かに貢献しようっていう催しです。WordPress について歓談やディスカッション、相談するだけでも、誰かの刺激になったり、何らかのヒントで新しいものが生み出される可能性もあります。
挨拶&チーム分け
今回始めてコントリビューターデイにきたって人がかなりいたことに驚きました!いいですね!いくつかのチームに分かれて作業するということで、チームメンターの紹介とそれぞれのチームでどのようなことをするのかの紹介がありました。
- 全体のメンター:Mike Schroder 氏(WordPress 5.3 のリードをされていた、Core やメディアコンポーネンツについてになるけど、でも何でも聞いてもいいよって感じ)
- Core チームメンター:Kite 氏(WordPress 本体のメンテナンス、Gutenberg 含む)
- WP-CLI チームメンター:Sumida Ippei 氏(WP-CLI コマンドのメンテナンス)
- Help Hub チームメンター:Tachibana 氏(WordPress のマニュアル移行・翻訳)
参考:日本語版CodexからHelpHubへの移行ボランティアを募集中 - Polyglots チームメンター:高野氏(翻訳)
- WordPress.tv チームメンター:Hayashi 氏(WordCamp セッションの動画編集やアップロード、字幕をつける)
- Theme Review メンター:Shiva Shanker Bhatta 氏, Ganga Kafle 氏(テーマレビューのリードをしている、インドのネパールから来訪。すでに公式リポジトリへ申請しているテーマの審査をやってみる)
- Community チームメンター:額賀氏、GOUTEN 氏(WordPress Meetup の申し込みやオリエンテーション、 ダイバーシティースピーカートレーニングの翻訳、WordPressの記事)
- JP WordPress Hosts Community チームメンター:Taniguchi 氏(WordPress のホスティング。PHP5.3使っているけれど、どのサーバーがいいだろうとか)
筆者は、筆者開発のプラグイン改良でもしようかなーと漠然的な感じでしたが、プラグインチームがなかったので、よくお世話になっている WP-CLI について貢献できるようになっておこうかなと思い立ちました。
WP-CLI チーム
公式マニュアル:https://make.wordpress.org/cli/handbook/contributing/
記事:https://make.wordpress.org/cli/2018/07/14/contributing-to-wp-cli/
GitHub: https://github.com/wp-cli/
事前準備
- WordPress.org のアカウントを作る
- WordSlack のアカウントを作る
- WordSlack にログインして、#cli チャネルを追加する
- GitHub アカウントを作る
- https://github.com/wp-cli/ の good-first-issue ラベル を探してみる
これは初めてやる人用で、初めてでなければ rejectされる - composer のインストール
- hub のインストール(brew install hub)*こちらは必要ならという感じ
- 何をするか決まったら WordSlack の #cli でつぶやいて、リポジトリを Fork する
- Forkしたものをローカルにクローンする
- クローンしたディレクトリで、composer install --prefer-source を実行する
参考:https://make.wordpress.org/cli/handbook/pull-requests/#setting-up - Script ./utils/git-setup-pre-commit-hook handling the post-install-cmd event returned with error code 1 とでてインストールが失敗する
- 一度クローンしたディレクトリを消して入れ直しても同じエラー
- ここの情報「.git/hooks/pre-commit を作れ」と、ここの情報「git clone https://github.com/mautic/mautic.git にある ./build/hook/pre-commit を使え」を参考に、https://github.com/mautic/mautic.git の ./build/hook を .git/hooks にコピーした。
- すると警告はでるもののインストールできた。
うーん、何故だかスッキリしない!昼食を食べた後にもう少し検証 - 検証結果
git clone URL : OK
Sourcetree (3.0 (200) でも4.0 (232)でも)最新ので Clone すると、上記エラーがでてしまうことが判明。Soucetree 内蔵の git が少し古い(2.20.1)のが原因なのかなぁ。システムのほうは 2.21.0 だし。 - クローンしたディレクトリの bin/wp を wp コマンドとして実行できるようにする
cd クローンしたディレクトリ
alias wp="`pwd`/bin/wp" - branch を切る
ちなみに参加者はエンジニアばかりだった(バックエンドエンジニアが多い)。まぁそうですよね。
https://github.com/wp-cli/wp-cli/issues/4874 にチャレンジ
STEP 1. コーディング
Remove `WP_CLI\Utils\is_bundled_command( $command )` again #4874
ということなので、is_bundled_command を探すと、
php/utils.php
function is_bundled_command( $command ) {
tests/test-bundled-commands.php
$result = Utils\is_bundled_command( $command );
の2つがヒットしました。
1. tests/test-bundled-commands.php は削除
2. php/utils.php
function is_bundled_command( $command ) {
はコメントも含む関数ごと削除
STEP 2. コードテスト
1. Code style sniffers
composer phpcs
で問題なければ次へ
2. Function tests
mysqlデータベースが必要。もし準備が出来ていなければ
筆者の macOS はちょっと前にクリーンインストールしてしまったので、mysqlは入っていない。Homebrew はインストールしていたので、「Macでmysqlを扱う方法」
env: mysql: No such file or directory
Script run-behat-tests handling the behat event returned with error code 127
Script @behat was called via test
のようなエラーがでる。
を参考に、
brew install mysql
にてインストール
brew services start mysql
にて MySQL データベースを起動
mysql -uroot
で mysql データベースにログインできることを確認
なおこのデータベースはパスワードなしで特権ログイン(root)できる。まぁ一時的なインストールだからいいでしょう。
mysql> create user 'wp_cli_test'@localhost identified by 'password1';
にて、wp_cli_test ユーザーを作成(パスワードは password1)
mysql> create database wp_cli_test;
にて、wp_cli_test データベースを作成
mysql> GRANT ALL PRIVILEGES ON wp_cli_test.* TO "wp_cli_test"@"localhost" IDENTIFIED BY "password1";
wp_cli_testユーザーに wp_cli_test データベースに権限を付与するコマンドでエラー
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'identified by "password1"' at line 1
によれば、mySQL 8 からコマンド構文がかわったとのこと。
mysql> GRANT ALL PRIVILEGES ON wp_cli_test.* TO "wp_cli_test"@"localhost";
かな。
composer behat
かなり時間がかかります。
Error: Error establishing a database connection. This either means that the username and password information in your `wp-config.php` file is incorrect or we can’t contact the database server at `127.0.0.1`. This could mean your host’s database server is down.
とエラー。
をよく見ると、mySQL 8の場合の注意事項がありました。
mysql> ALTER USER 'wp_cli_test'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password1';
を追加したらいいのか。
composer behat
...
.F-------............................................................. 1260
...
(::) 失敗したステップ (::)
01. $ wp db query 'UPDATE wp_blogs SET domain = NULL'
ERROR 1048 (23000) at line 1: Column 'domain' cannot be null
cwd: /var/folders/t7/3x5g378s45s246158trdylvm0000gn/T/wp-cli-test-run-framework.feature.313-5de9f542b305c0.53752291/
run time: 0.43459987640381
exit status: 1
In step `And I run `wp db query 'UPDATE wp_blogs SET domain = NULL'`'. # vendor/wp-cli/wp-cli-tests/features/steps/when.php:29
From scenario `Display a more helpful error message when site can't be found'. # features/framework.feature:313
Of feature `Load WP-CLI'. # features/framework.feature
197 個のシナリオ (196 個成功, 1 個失敗)
2139 個のステップ (2131 個成功, 7 個スキップ, 1 個失敗)
15m33.818s
うーん、もうちょいか。しかしテストに15分かかるのね・・・。
> run-behat-tests
/***/wp-cli/vendor/bin/run-behat-tests: line 12: jq: command not found
(23) Failed writing body
と最初に jq コマンドがないというのが気になりますね。
によれば、 brew install jq でインストールしてみた。
composer behat
jq エラーはなくなったものの、同じところでエラー出ますねー。
*エラー出たところだけ再テストは
composer behat-rerun
で出来る。
しかしこれは、mySQL 8 ではまだうまくいかないのですかねぇ。
https://qiita.com/sato11/items/ba887a5655217f60f2a2
を参考に、mySQL8 を消して 5.7をいれてみる。
brew services stop mysql
brew remove mysql
brew cleanup
https://qiita.com/sato11/items/ba887a5655217f60f2a2 をみて削除
/usr/local/etc/my.cnf も削除
brew install mysql@5.7
brew services start mysql@5.7
/usr/local/opt/mysql@5.7/bin/mysql -uroot
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
sudo touch /tmp/mysql.sock
brew services restart mysql@5.7
でも駄目だなぁ。まぁこれはやめて mysql 8 の環境に差し戻し。
あらためて
composer behat
ここで時間切れ(16時30分)。
3. Units test
composer phpunit
こちらは 2 の functions test の前にやってみたが問題なく通過した。
上記すべてのテストを一括でやる場合には
composer test
とのこと。
pull request までいけなかったのは残念ですが、テスト環境の構築やそのためのエラー解決方法については体験できてよかったと思います。
筆者は過去のコントリビューターデイで何をしていた?
間近の 2年(2017年以降)だと、プラグイン開発、プラグインのマニュアル作成、翻訳をおもにやってました。
- WordCamp Osaka 2018
- 当日急遽翻訳チームリーダーをしたため、チームをまとめる作業に徹したように思います。
- WordCamp Tokyo 2017
- 台風の影響もあり途中で帰ったのですが、帰る新幹線内から参加したのでした。ここで開発して公開した公式プラグイン(Google Calendar List View)は、仕事場(大学)の HP(WordPress)のメインページで使っていたりします。このようにコントリビューターデイがきっかけで、仕事にも活用できたってこともあったりするんですよね!コントリビューターデイってそれぐらいモチベーションが高まって、思っている以上のことができたりするんですよね!
- WordCamp Kyoto 2017
- 開発して公開した公式プラグイン(Google Calendar List View)の日英のマニュアル(結構分厚い)を整備してましたね!
昼食
かっぱ横丁にある古潭老麺(古潭ラーメン)で食べました。
閉会
以下筆者が聞いて覚えている内容。そのため発表が正確に反映されていないことに注意。
Core チーム発表
Core については subversion を使わずにできるようになっているということ
git で出来るとのこと
WP-CLI チーム
good first issue から貢献できそうなものを探してやってみという形態だった
pull requests が 1件できて、作業中が2件あった。
Help Hub チーム
古い Wikiページ から新しいシステム(Help Hub)へ移行するというものだった。
皆で文体などのルールを読んでもらった上でやってもらった。
26文章が更新されていた。
Polyglots チーム
かなり進んだ。
WordPress.tv チーム
WordPressを知っていますか?(15分動画)に日本語字幕をつけた。
1人1分担当し完成して公開したよ!
その他にもやった。
Theme Review チーム
レビューは言語とコーディングの壁があって大変だった。
けれども、全くレビューをしたことがなかった方を 3名迎えることができたことが非常に大きいとのこと。
Community チーム
いろいろ出来た模様
JP WordPress Hosts Community チーム
本当に PHPバージョンアップすると生きて帰れない(トラブって大変なことに)人もいるので、PHP のバージョンアップのライフサイクルなどのノウハウの共有を行った。そしてどのようにユーザーが利用しているサーバー上で WordPress を快適に使えるかについてディスカッションし、その結果をまたフィードバックしたいということ。
実行委員長より
明日のセッションデイの紹介
懇親会(スピーカー&実行委員)
WordCamp ではおなじみのスピーカーとの懇親会。いろいろ歓談できて楽しかったです!
日時が変わって本日はセッションデイ!
いろいろおもしろい話がきけることを楽しみにしています!
いろいろおもしろい話がきけることを楽しみにしています!
2019年12月7日 @kimipooh
0 件のコメント:
コメントを投稿