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
3.5k
はじめてのOSSコントリビュート
PHPカンファレンス関西2024で話す内容です。
てきめん tekimen
PRO
February 09, 2024
Tweet
Share
More Decks by てきめん tekimen
See All by てきめん tekimen
Windows版php-srcデバッグ方法
youkidearitai
PRO
1
44
PHP Internals わいわい #1 の資料
youkidearitai
PRO
1
980
mb_trim関数を作りました
youkidearitai
PRO
1
640
PHPの次期バージョンはこの時期どうなっているのか - Internalsの開発体制について - PHPカンファレンス小田原
youkidearitai
PRO
1
460
文字とはなにか - PHPの文字コード処理について - PHP Lovers Meetup #5
youkidearitai
PRO
1
210
文字とはなにか - PHPの文字コード処理について -
youkidearitai
PRO
0
650
現在のmbstringの立ち位置 これからどうなっていくのか
youkidearitai
PRO
0
220
PHP 8.3のmbstringの進化を見てください - コントリビューターとしてのかかわり -
youkidearitai
PRO
0
1.2k
PHP 8.2と8.1で取り込まれたプルリクエストについて
youkidearitai
PRO
0
310
Other Decks in Programming
See All in Programming
Why Jakarta EE Matters to Spring - and Vice Versa
ivargrimstad
0
810
Make Impossible States Impossibleを 意識してReactのPropsを設計しよう
ikumatadokoro
0
150
型付き API リクエストを実現するいくつかの手法とその選択 / Typed API Request
euxn23
5
1.6k
PLoP 2024: The evolution of the microservice architecture pattern language
cer
PRO
0
2.5k
Nurturing OpenJDK distribution: Eclipse Temurin Success History and plan
ivargrimstad
0
640
Ethereum_.pdf
nekomatu
0
430
Jakarta EE meets AI
ivargrimstad
0
360
Webの技術スタックで マルチプラットフォームアプリ開発を可能にするElixirDesktopの紹介
thehaigo
2
1k
PHP でアセンブリ言語のように書く技術
memory1994
PRO
1
160
Generative AI Use Cases JP (略称:GenU)奮闘記
hideg
0
220
Better Code Design in PHP
afilina
PRO
0
120
ヤプリ新卒SREの オンボーディング
masaki12
0
120
Featured
See All Featured
Building Better People: How to give real-time feedback that sticks.
wjessup
364
19k
A Tale of Four Properties
chriscoyier
156
23k
Done Done
chrislema
181
16k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
364
24k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
Designing for humans not robots
tammielis
250
25k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
131
33k
Code Review Best Practice
trishagee
64
17k
Practical Orchestrator
shlominoach
186
10k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
27
4.2k
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.2k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
229
52k
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にコントリ ビュートしよう!
コントリビュートしよう • 思ったよりも難しくはないです – 使うのもコントリビュートです!だけど… – 不具合を見つけたらとりあえず本家に報告しましょう • オープンソースが間違っているのがみんな困るのであって、自分が間 違っている分には全然いいことと割り切れるかどうかでしょうか
– オープンソースは「開発者に責任はない」世界ですから、のびの び失敗しましょう – 何にせよやらないとわからんので、やるところからはじめましょう
ご清聴ありがとうございました おおきに