Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
はじめてのOSSコントリビュート
Search
てきめん tekimen
PRO
February 09, 2024
Programming
11
5.3k
はじめてのOSSコントリビュート
PHPカンファレンス関西2024で話す内容です。
てきめん tekimen
PRO
February 09, 2024
Tweet
Share
More Decks by てきめん tekimen
See All by てきめん tekimen
grapheme_strrev関数が採択されました(あと雑感)
youkidearitai
PRO
1
240
Limit of code point for grapheme cluster in programming language side.
youkidearitai
PRO
0
57
Unicodeどうしてる? PHPから見たUnicode対応と他言語での対応についてのお伺い
youkidearitai
PRO
2
3.1k
PHP 8.5の裏話
youkidearitai
PRO
0
120
CJK and Unicode From a PHP Committer
youkidearitai
PRO
0
280
PHP Internals わいわい #3 mb_*関数を作ってみよう
youkidearitai
PRO
0
150
Windows版php-srcデバッグ方法
youkidearitai
PRO
1
120
PHP Internals わいわい #1 の資料
youkidearitai
PRO
1
1.5k
mb_trim関数を作りました
youkidearitai
PRO
1
1.3k
Other Decks in Programming
See All in Programming
見せてもらおうか、 OpenSearchの性能とやらを!
shunta27
1
130
クライアントワークでSREをするということ。あるいは事業会社におけるSREと同じこと・違うこと
nnaka2992
1
360
Vuetify 3 → 4 何が変わった?差分と移行ポイント10分まとめ
koukimiura
0
190
ポーリング処理廃止によるイベント駆動アーキテクチャへの移行
seitarof
3
1.3k
KagglerがMixSeekを触ってみた
morim
0
210
今からFlash開発できるわけないじゃん、ムリムリ! (※ムリじゃなかった!?)
arkw
0
150
AIコードレビューの導入・運用と AI駆動開発における「AI4QA」の取り組みについて
hagevvashi
0
550
守る「だけ」の優しいEMを抜けて、 事業とチームを両方見る視点を身につけた話
maroon8021
3
1.3k
メッセージングを利用して時間的結合を分離しよう #phperkaigi
kajitack
3
310
最初からAWS CDKで技術検証してもいいんじゃない?
akihisaikeda
4
170
Linux Kernelの1文字のミスで 権限昇格ができた話
rqda
0
2.1k
それはエンジニアリングの糧である:AI開発のためにAIのOSSを開発する現場より / It serves as fuel for engineering: insights from the field of developing open-source AI for AI development.
nrslib
1
510
Featured
See All Featured
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
210
What's in a price? How to price your products and services
michaelherold
247
13k
Accessibility Awareness
sabderemane
0
84
Crafting Experiences
bethany
1
93
The Curious Case for Waylosing
cassininazir
0
280
4 Signs Your Business is Dying
shpigford
187
22k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.1k
Unsuck your backbone
ammeep
672
58k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
14k
Making the Leap to Tech Lead
cromwellryan
135
9.8k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
410
Producing Creativity
orderedlist
PRO
348
40k
Transcript
はじめてのOSSコントリ ビュート
自己紹介 てきめん • https://tekitoh-memdhoi.info • X: @youkidearitai • https://github.com/youkideari tai
• https://speakerdeck.com/you kidearitai • サイボウズ株式会社にいます • PHP 8.4でmb_trim関数を作りま した オレ
オープンソース、使ってますか?
オープンソースに コントリビュートしてますか?
オープンソースとは • ざっくりいうと誰でもソースコードを取得でき、自己責任で使え、誰 でも改善の提案ができる – 定義について https://opensource.org/definition-annotated/ • Wikipediaも参考になると思う Wikipediaの記述:オープンソースの定義
• 国境がない、用途の制限がない • 技術でのみ会話する • 開発者に責任はない • オープンソースだけで1冊教科書ができる
自由なライセンス • オープンソース以外にも、自由に 改変してもいいとするライセンス がある • 文章や画像データなどに対応して いる自由なライセンス – Creative
Commons(BY、BY-SA) • 例:Arduino、PHPのマニュアル • 著作権を放棄している、パブリック ドメインというものもある – 例:SQLite Arduino Uno(CC BY-SA)
オープンソースとフリーはちょっと違う 自由なライセンス (フリー) オープンソース ※てきめんの解釈なので注意
コントリビュートとは・メリット • 日本語では貢献という意味 • メリット – 世界が少しだけ良くなる – 自分も恩恵を受けられる •
自分で見つけたバグが治ったバージョンを使える! • スキルアップを望める • 手本として業務に役に立つ – 就職・転職・昇格に有利だったりする可能性がちょっとはあるかも • わたしはphp-srcにコントリビュートしまくったらサイボウズに入った、こういうの続いてほ しい • コントリビュートは技術力のアピールになるはず
コントリビュートとは・デメリット • 報酬は一般的にない・手弁当すらありうる • ミスや間違えを全世界に公開することになる – だけどこれは「自分が恥をかく」だけならそのほうがマシなんです – オープンソースのほうが間違っているならそっちのほうがヤバいと思ってください –
オープンソースの精神として「開発者に責任はない」ので、沢山間違えてください • そもそも分野問わずエンジニアなら学びってそういうものですよね? – 「Sorry」よりも「Thanks」を使いましょう • 「間違えました、すみません」を「見つけてくれてありがとう!」と言い換えましょう • 間違いを謝りがちですが、ビジネスではありませんから • これで疲れたと思ったら離れていいです – 「しなければならない」などという気持ちになったら離れましょう
PHP本体でされてうれしい貢献 簡単な順
使う • それはそう – コントリビュートするにも使うのが一歩なので – 使うことも貢献と意識するのとしないのとでは違うと思う • 何はともあれ、使ってもらってなんぼ •
ユーザーでコミュニティを作るもよし – カンファレンスの開催も貢献の一歩
The PHP Foundationへの寄付 • 最近10人に増えたPHP Foundationへの寄付 – 高町咲衣(さきち)さんが加入しました! • 寄付の意義が強くなりましたね?
• Zend Engineに詳しい人や、広く見てくれる人、PHP 8.3のリリース マネージャーなどがいます • ぜひ!寄付の検討をしてほしいです! – 毎月寄付すれば何も考えなくて良いからいい • https://thephp.foundation
typoの修正 • ソースコード上のいわゆる打ち間違い • Fix typoというプルリクエストは嬉しい – コア開発者がコアの開発に集中できるから – 予想以上に嬉しいのでやってください
– コントリビュートする側もしやすい • Good first issueだと思う!
ドキュメントの修正 • php/doc-enリポジトリにてマニュアル が管理されてる – こちらの修正や追加も提案できる – Good first issueラベルが貼られてる
のでやってみよう • php/doc-jaリポジトリが日本語のマ ニュアル – これの文の修正とかでも助かる – 大体は@mumumuさんによって管理 されてる • とはいえ助けてあげてほしい doc/enのIssue
phptファイルの修正 • phptファイルという、PHP自体 のテストがある – PHPでできている – これにプルリクエストを送る • フォーマットは
http://qa.php.net/write-test. php • これを修正したり、テストケース の追加をしたりするとよい
Issue • PHP本体にバグを見つけたらphp/php-srcにIssueとして 報告してくれると嬉しい – テンプレート通りタイトルとActual、Expectedをしっかり記入す れば伝わる – 今ならGoogle翻訳やDeepL使えば伝わる –
故にしない理由がない • 何がムズいかといえば、PHP本体のバグの切り分け
警告を取り除く • php-srcをコンパイルする際に発生する警告 (warning)を取り除くプルリクエスト – これも助かる – PHPのコンパイルができないとわからないけども – OS・CPUアーキテクチャ・コンパイルオプションなどで
ぜんぜん違うので色々な環境でコンパイルを試してほ しい
Feature request • 「〇〇という機能・関数を追加してくれないか」 • これも助かる – なお、mb_trim関数はここから作られています – mb_ucfirst関数もここから作っています
• 何がムズいかといえば現代のPHPはかなり完成されて るので提案に予め高度な知識が必要なところ
RFC • PHPに大幅な変更・機能追加を行う • PHP Internalsメーリングリストで議論して、RFCにより投票 を行う • https://wiki.php.net/rfc/howto •
これは激むずだけど頑張ればできる – PHP Internalsメーリングリストは読んでるから助けますよ!
簡単な順に並べてみましたが、 それでも難しそうですかね?
ハードルが高いことは もちろんわかっています
PHP本体にバグを見つけるだけで大変だった • 2019年に初めてバグを見 つけたときのスライド • 当時の発表をみると、すご くはしゃいでたなーと思い ます。 • つまり、ぼくも何も最初から
すごい人な訳ではない PHPerKaigi 2019のスライド https://speakerdeck.com/youkidearitai/ phpfalsemaniyuaruninaikotowositephp- srchebagubao-gao-wosita
PHP本体だとハードルが高いので 低くしましょう
「コントリビュート」に話を戻す • 興味のあるオープンソースプロジェクトの動向を探ってみ る – PHPerならばPHPのプロジェクトでもいいですね • フレームワークでもCMSでも読めるものでいい – プロジェクトごとに雰囲気は全然違う
• マニュアルにない挙動をIssueで報告する • バグを直してPull Requestを送ってみる
コントリビュートに不安がある? • OSS Gateがあります! – オープンソースへの入り口を体 験できるワークショップです – オンラインで行われています •
https://oss-gate.doorkeeper.j p/events/upcoming • 3月は9日に行われます – 過去では各地で行われていまし た • 勝手にやってもいい(CC BY-SA 4.0)
そして明日
PHP Lovers Meetup + OSS Gate • 関西が明日ある – 締め切られてるかな?
• カンファレンスに合わせて各地で 行われる – 北海道 – 関西 – あとやる? • 身近で使ってるOSSにコントリ ビュートしよう!
コントリビュートしよう • 思ったよりも難しくはないです – 使うのもコントリビュートです!だけど… – 不具合を見つけたらとりあえず本家に報告しましょう • オープンソースが間違っているのがみんな困るのであって、自分が間 違っている分には全然いいことと割り切れるかどうかでしょうか
– オープンソースは「開発者に責任はない」世界ですから、のびの び失敗しましょう – 何にせよやらないとわからんので、やるところからはじめましょう
ご清聴ありがとうございました おおきに