Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

DQNEO
February 10, 2020

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

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

DQNEO

February 10, 2020
Tweet

More Decks by DQNEO

Other Decks in Programming

Transcript

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

    Fluent Logger PHPBench Monolog PHPJava AssertChain ほか多数
  2. 例: 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. そのまま実行するとエラー 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. 着眼点2: 業務で得たノウハウを横展開 • 会社の巨大アプリケーションが PHPUnit ver4だった • PHPUnit ver4 →

    ver7 にあげた • バージョンアップに異常に詳しくなった • OSS界隈を見渡すと、古いPHPUnitに依存してるライブラ リが無数にあった • チャンス!!
  5. 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. React: 英語の難単語を置き換え • 公式ドキュメントで ”mandatory”(=必須)という難単 語があった • 別の単語 ( a

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