もっと気軽にOSSに Pull Requestを出そう!/ Let's make a PR to OSS more easily

7b606c5039f083d13e2d2320ce6ddcfa?s=47 DQNEO
February 10, 2020

もっと気軽にOSSに Pull Requestを出そう!/ Let's make a PR to OSS more easily

PHPerkaigi 2020 で発表した資料です。

7b606c5039f083d13e2d2320ce6ddcfa?s=128

DQNEO

February 10, 2020
Tweet

Transcript

  1. 6.

    私のコントリビューション実績 Symfony Guzzle AWS SDK for PHP DietCake DietCube Ethna

    Fluent Logger PHPBench Monolog PHPJava AssertChain ほか多数
  2. 10.

    例: Guzzleの README $client = new \GuzzleHttp\Client(); $res = $client->request('GET',

    'https://api.github.com/user', [ 'auth' => ['user', 'pass'] ]); echo $res->getStatusCode(); // 200 echo $res->getHeaderLine('content-type'); // 'application/json; charset=utf8' echo $res->getBody(); // {"type":"User"...'
  3. 11.

    そのまま実行するとエラー PHP Fatal error: Uncaught GuzzleHttp\Exception\ClientException: Client error: `GET https://api.github.com/user`

    resulted in a `401 Unauthorized` response: { "message": "Bad credentials", "documentation_url": "https://developer.github.com/v3" }
  4. 34.

    着眼点2: 業務で得たノウハウを横展開 • 会社の巨大アプリケーションが PHPUnit ver4だった • PHPUnit ver4 →

    ver7 にあげた • バージョンアップに異常に詳しくなった • OSS界隈を見渡すと、古いPHPUnitに依存してるライブラ リが無数にあった • チャンス!!
  5. 35.

    PHPUnitのバージョンアップ職人 • DietCake 4 → 5 → 6 → 7

    • DietCube 5 → 6 → 7 • Monolog 5 → 6 • PHPBench 6 → 7 • AWS SDK for PHP 5 → 6 • AssertChain 4 → 5 → 6 • Chronous 6 → 7 etc
  6. 44.

    React: 英語の難単語を置き換え • 公式ドキュメントで ”mandatory”(=必須)という難単 語があった • 別の単語 ( a

    must ) への置き換えを提案 • 「”mandatory”くらい普通に使うだろ」という反応を 予想していた https://github.com/facebook/react/pull/8809 ↓
  7. 47.