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
5.3k
11
Share
はじめてのOSSコントリビュート
PHPカンファレンス関西2024で話す内容です。
てきめん tekimen
PRO
February 09, 2024
More Decks by てきめん tekimen
See All by てきめん tekimen
grapheme_strrev関数が採択されました(あと雑感)
youkidearitai
PRO
1
250
Limit of code point for grapheme cluster in programming language side.
youkidearitai
PRO
0
59
Unicodeどうしてる? PHPから見たUnicode対応と他言語での対応についてのお伺い
youkidearitai
PRO
2
3.2k
PHP 8.5の裏話
youkidearitai
PRO
0
130
CJK and Unicode From a PHP Committer
youkidearitai
PRO
0
290
PHP Internals わいわい #3 mb_*関数を作ってみよう
youkidearitai
PRO
0
150
Windows版php-srcデバッグ方法
youkidearitai
PRO
1
120
PHP Internals わいわい #1 の資料
youkidearitai
PRO
1
1.6k
mb_trim関数を作りました
youkidearitai
PRO
1
1.3k
Other Decks in Programming
See All in Programming
Coding at the Speed of Thought: The New Era of Symfony Docker
dunglas
0
4.7k
VueエンジニアがReactを触って感じた_設計の違い
koukimiura
0
160
ドメインイベントでビジネスロジックを解きほぐす #phpcon_odawara
kajitack
2
120
Symfony + NelmioApiDocBundle を使った スキーマ駆動開発 / Schema Driven Development with NelmioApiDocBundle
okashoi
0
270
今年もTECHSCOREブログを書き続けます!
hiraoku101
0
230
2026-03-27 #terminalnight 変数展開とコマンド展開でターミナル作業をスマートにする方法
masasuzu
0
310
Radical Imagining - LIFT 2025-2027 Policy Agenda
lift1998
0
250
存在論的プログラミング: 時間と存在を記述する
koriym
5
840
L’IA au service des devs : Anatomie d'un assistant de Code Review
toham
0
220
Redox OS でのネームスペース管理と chroot の実現
isanethen
0
550
「話せることがない」を乗り越える 〜日常業務から登壇テーマをつくる思考法〜
shoheimitani
2
220
AI時代の脳疲弊と向き合う ~言語学としてのPHP~
sakuraikotone
1
1.8k
Featured
See All Featured
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
520
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
62
53k
Art, The Web, and Tiny UX
lynnandtonic
304
21k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.1k
Building the Perfect Custom Keyboard
takai
2
720
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
120
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
64
54k
4 Signs Your Business is Dying
shpigford
187
22k
Agile that works and the tools we love
rasmusluckow
331
21k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
880
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にコントリ ビュートしよう!
コントリビュートしよう • 思ったよりも難しくはないです – 使うのもコントリビュートです!だけど… – 不具合を見つけたらとりあえず本家に報告しましょう • オープンソースが間違っているのがみんな困るのであって、自分が間 違っている分には全然いいことと割り切れるかどうかでしょうか
– オープンソースは「開発者に責任はない」世界ですから、のびの び失敗しましょう – 何にせよやらないとわからんので、やるところからはじめましょう
ご清聴ありがとうございました おおきに