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

はじめてのOSSコントリビュート

 はじめてのOSSコントリビュート

PHPカンファレンス関西2024で話す内容です。

てきめん tekimen

February 09, 2024
Tweet

More Decks by てきめん tekimen

Other Decks in Programming

Transcript

  1. はじめてのOSSコントリ
    ビュート

    View full-size slide

  2. 自己紹介
    てきめん
    ● https://tekitoh-memdhoi.info
    ● X: @youkidearitai
    ● https://github.com/youkideari
    tai
    ● https://speakerdeck.com/you
    kidearitai
    ● サイボウズ株式会社にいます
    ● PHP 8.4でmb_trim関数を作りま
    した
    オレ

    View full-size slide

  3. オープンソース、使ってますか?

    View full-size slide

  4. オープンソースに
    コントリビュートしてますか?

    View full-size slide

  5. オープンソースとは
    ● ざっくりいうと誰でもソースコードを取得でき、自己責任で使え、誰
    でも改善の提案ができる
    – 定義について https://opensource.org/definition-annotated/
    ● Wikipediaも参考になると思う Wikipediaの記述:オープンソースの定義
    ● 国境がない、用途の制限がない
    ● 技術でのみ会話する
    ● 開発者に責任はない
    ● オープンソースだけで1冊教科書ができる

    View full-size slide

  6. 自由なライセンス
    ● オープンソース以外にも、自由に
    改変してもいいとするライセンス
    がある
    ● 文章や画像データなどに対応して
    いる自由なライセンス
    – Creative Commons(BY、BY-SA)
    ● 例:Arduino、PHPのマニュアル
    ● 著作権を放棄している、パブリック
    ドメインというものもある
    – 例:SQLite
    Arduino Uno(CC BY-SA)

    View full-size slide

  7. オープンソースとフリーはちょっと違う
    自由なライセンス
    (フリー)
    オープンソース
    ※てきめんの解釈なので注意

    View full-size slide

  8. コントリビュートとは・メリット
    ● 日本語では貢献という意味
    ● メリット
    – 世界が少しだけ良くなる
    – 自分も恩恵を受けられる
    ● 自分で見つけたバグが治ったバージョンを使える!
    ● スキルアップを望める
    ● 手本として業務に役に立つ
    – 就職・転職・昇格に有利だったりする可能性がちょっとはあるかも
    ● わたしはphp-srcにコントリビュートしまくったらサイボウズに入った、こういうの続いてほ
    しい
    ● コントリビュートは技術力のアピールになるはず

    View full-size slide

  9. コントリビュートとは・デメリット
    ● 報酬は一般的にない・手弁当すらありうる
    ● ミスや間違えを全世界に公開することになる
    – だけどこれは「自分が恥をかく」だけならそのほうがマシなんです
    – オープンソースのほうが間違っているならそっちのほうがヤバいと思ってください
    – オープンソースの精神として「開発者に責任はない」ので、沢山間違えてください
    ● そもそも分野問わずエンジニアなら学びってそういうものですよね?
    – 「Sorry」よりも「Thanks」を使いましょう
    ● 「間違えました、すみません」を「見つけてくれてありがとう!」と言い換えましょう
    ● 間違いを謝りがちですが、ビジネスではありませんから
    ● これで疲れたと思ったら離れていいです
    – 「しなければならない」などという気持ちになったら離れましょう

    View full-size slide

  10. PHP本体でされてうれしい貢献
    簡単な順

    View full-size slide

  11. 使う
    ● それはそう
    – コントリビュートするにも使うのが一歩なので
    – 使うことも貢献と意識するのとしないのとでは違うと思う
    ● 何はともあれ、使ってもらってなんぼ
    ● ユーザーでコミュニティを作るもよし
    – カンファレンスの開催も貢献の一歩

    View full-size slide

  12. The PHP Foundationへの寄付
    ● 最近10人に増えたPHP Foundationへの寄付
    – 高町咲衣(さきち)さんが加入しました!
    ● 寄付の意義が強くなりましたね?
    ● Zend Engineに詳しい人や、広く見てくれる人、PHP 8.3のリリース
    マネージャーなどがいます
    ● ぜひ!寄付の検討をしてほしいです!
    – 毎月寄付すれば何も考えなくて良いからいい
    ● https://thephp.foundation

    View full-size slide

  13. typoの修正
    ● ソースコード上のいわゆる打ち間違い
    ● Fix typoというプルリクエストは嬉しい
    – コア開発者がコアの開発に集中できるから
    – 予想以上に嬉しいのでやってください
    – コントリビュートする側もしやすい
    ● Good first issueだと思う!

    View full-size slide

  14. ドキュメントの修正
    ● php/doc-enリポジトリにてマニュアル
    が管理されてる
    – こちらの修正や追加も提案できる
    – Good first issueラベルが貼られてる
    のでやってみよう
    ● php/doc-jaリポジトリが日本語のマ
    ニュアル
    – これの文の修正とかでも助かる
    – 大体は@mumumuさんによって管理
    されてる
    ● とはいえ助けてあげてほしい
    doc/enのIssue

    View full-size slide

  15. phptファイルの修正
    ● phptファイルという、PHP自体
    のテストがある
    – PHPでできている
    – これにプルリクエストを送る
    ● フォーマットは
    http://qa.php.net/write-test.
    php
    ● これを修正したり、テストケース
    の追加をしたりするとよい

    View full-size slide

  16. Issue
    ● PHP本体にバグを見つけたらphp/php-srcにIssueとして
    報告してくれると嬉しい
    – テンプレート通りタイトルとActual、Expectedをしっかり記入す
    れば伝わる
    – 今ならGoogle翻訳やDeepL使えば伝わる
    – 故にしない理由がない
    ● 何がムズいかといえば、PHP本体のバグの切り分け

    View full-size slide

  17. 警告を取り除く
    ● php-srcをコンパイルする際に発生する警告
    (warning)を取り除くプルリクエスト
    – これも助かる
    – PHPのコンパイルができないとわからないけども
    – OS・CPUアーキテクチャ・コンパイルオプションなどで
    ぜんぜん違うので色々な環境でコンパイルを試してほ
    しい

    View full-size slide

  18. Feature request
    ● 「〇〇という機能・関数を追加してくれないか」
    ● これも助かる
    – なお、mb_trim関数はここから作られています
    – mb_ucfirst関数もここから作っています
    ● 何がムズいかといえば現代のPHPはかなり完成されて
    るので提案に予め高度な知識が必要なところ

    View full-size slide

  19. RFC
    ● PHPに大幅な変更・機能追加を行う
    ● PHP Internalsメーリングリストで議論して、RFCにより投票
    を行う
    ● https://wiki.php.net/rfc/howto
    ● これは激むずだけど頑張ればできる
    – PHP Internalsメーリングリストは読んでるから助けますよ!

    View full-size slide

  20. 簡単な順に並べてみましたが、
    それでも難しそうですかね?

    View full-size slide

  21. ハードルが高いことは
    もちろんわかっています

    View full-size slide

  22. PHP本体にバグを見つけるだけで大変だった
    ● 2019年に初めてバグを見
    つけたときのスライド
    ● 当時の発表をみると、すご
    くはしゃいでたなーと思い
    ます。
    ● つまり、ぼくも何も最初から
    すごい人な訳ではない PHPerKaigi 2019のスライド
    https://speakerdeck.com/youkidearitai/
    phpfalsemaniyuaruninaikotowositephp-
    srchebagubao-gao-wosita

    View full-size slide

  23. PHP本体だとハードルが高いので
    低くしましょう

    View full-size slide

  24. 「コントリビュート」に話を戻す
    ● 興味のあるオープンソースプロジェクトの動向を探ってみ

    – PHPerならばPHPのプロジェクトでもいいですね
    ● フレームワークでもCMSでも読めるものでいい
    – プロジェクトごとに雰囲気は全然違う
    ● マニュアルにない挙動をIssueで報告する
    ● バグを直してPull Requestを送ってみる

    View full-size slide

  25. コントリビュートに不安がある?
    ● OSS Gateがあります!
    – オープンソースへの入り口を体
    験できるワークショップです
    – オンラインで行われています
    ● https://oss-gate.doorkeeper.j
    p/events/upcoming
    ● 3月は9日に行われます
    – 過去では各地で行われていまし

    ● 勝手にやってもいい(CC BY-SA
    4.0)

    View full-size slide

  26. そして明日

    View full-size slide

  27. PHP Lovers Meetup + OSS Gate
    ● 関西が明日ある
    – 締め切られてるかな?
    ● カンファレンスに合わせて各地で
    行われる
    – 北海道
    – 関西
    – あとやる?
    ● 身近で使ってるOSSにコントリ
    ビュートしよう!

    View full-size slide

  28. コントリビュートしよう
    ● 思ったよりも難しくはないです
    – 使うのもコントリビュートです!だけど…
    – 不具合を見つけたらとりあえず本家に報告しましょう
    ● オープンソースが間違っているのがみんな困るのであって、自分が間
    違っている分には全然いいことと割り切れるかどうかでしょうか
    – オープンソースは「開発者に責任はない」世界ですから、のびの
    び失敗しましょう
    – 何にせよやらないとわからんので、やるところからはじめましょう

    View full-size slide

  29. ご清聴ありがとうございました
    おおきに

    View full-size slide