Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

「コントリビュート」に話を戻す ● 興味のあるオープンソースプロジェクトの動向を探ってみ る – PHPerならばPHPのプロジェクトでもいいですね ● フレームワークでもCMSでも読めるものでいい – プロジェクトごとに雰囲気は全然違う ● マニュアルにない挙動をIssueで報告する ● バグを直してPull Requestを送ってみる

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

そして明日

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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