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
PHPの次期バージョンはこの時期どうなっているのか - Internalsの開発体制について ...
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
てきめん tekimen
PRO
April 13, 2024
Programming
1
1k
PHPの次期バージョンはこの時期どうなっているのか - Internalsの開発体制について - PHPカンファレンス小田原
PHPカンファレンス小田原の資料になります
てきめん tekimen
PRO
April 13, 2024
Tweet
Share
More Decks by てきめん tekimen
See All by てきめん tekimen
Unicodeどうしてる? PHPから見たUnicode対応と他言語での対応についてのお伺い
youkidearitai
PRO
1
2.6k
PHP 8.5の裏話
youkidearitai
PRO
0
110
CJK and Unicode From a PHP Committer
youkidearitai
PRO
0
250
PHP Internals わいわい #3 mb_*関数を作ってみよう
youkidearitai
PRO
0
130
Windows版php-srcデバッグ方法
youkidearitai
PRO
1
100
PHP Internals わいわい #1 の資料
youkidearitai
PRO
1
1.5k
mb_trim関数を作りました
youkidearitai
PRO
1
1.3k
文字とはなにか - PHPの文字コード処理について - PHP Lovers Meetup #5
youkidearitai
PRO
1
360
はじめてのOSSコントリビュート
youkidearitai
PRO
11
5k
Other Decks in Programming
See All in Programming
並行開発のためのコードレビュー
miyukiw
0
240
そのAIレビュー、レビューしてますか? / Are you reviewing those AI reviews?
rkaga
6
4.6k
humanlayerのブログから学ぶ、良いCLAUDE.mdの書き方
tsukamoto1783
0
200
Basic Architectures
denyspoltorak
0
680
Amazon Bedrockを活用したRAGの品質管理パイプライン構築
tosuri13
5
740
疑似コードによるプロンプト記述、どのくらい正確に実行される?
kokuyouwind
0
390
IFSによる形状設計/デモシーンの魅力 @ 慶應大学SFC
gam0022
1
300
AIと一緒にレガシーに向き合ってみた
nyafunta9858
0
240
AIによる高速開発をどう制御するか? ガードレール設置で開発速度と品質を両立させたチームの事例
tonkotsuboy_com
7
2.4k
副作用をどこに置くか問題:オブジェクト指向で整理する設計判断ツリー
koxya
1
610
Best-Practices-for-Cortex-Analyst-and-AI-Agent
ryotaroikeda
1
110
例外処理とどう使い分ける?Result型を使ったエラー設計 #burikaigi
kajitack
16
6.1k
Featured
See All Featured
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
3.9k
Optimizing for Happiness
mojombo
379
71k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.4k
Producing Creativity
orderedlist
PRO
348
40k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
66
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
0
210
The SEO Collaboration Effect
kristinabergwall1
0
350
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
140
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.6k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
220
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
410
Building Flexible Design Systems
yeseniaperezcruz
330
40k
Transcript
PHPの次期バージョンはこの時期どうなって いるのか Internalsの開発体制について
自己紹介 てきめん • https://tekitoh-memdhoi.info • X: @youkidearitai • https://github.com/youkideari tai
• PHP 8.4で色々な関数を作った – mb_trim – mb_ucfirst, mb_lcfirst – grapheme_str_split(new!) オレ
現状の振り返り • https://github.com/php/php-src のmasterブランチが 開発バージョンです • 最新バージョンは8.3です • このうち、アクティブなバージョンは8.2と8.3です –
8.1はSecurity fixes onlyです • 開発バージョンが8.4です
現状はこう
いつPHP 8.4と決まったの? • PHP-8.3 branch creation – 2023年8月にPHP-8.3ブランチが作られてから、masterブランチの バージョンが8.4.0-devと仮に名付けられました •
Release Managers for PHP 8.4 – 今年3月上旬にPHP 8.4のリリースマネージャーの募集が行われ、 投票が行われています – このタイミングでスケジュールが公開されました
リリースサイクルについて • PHPのリリースには、大きく分けて以下になります – 最初の半年 alpha, beta, RC など –
アクティブリリースが2年 – セキュリティフィックスオンリーが1年 • 後述しますがもしかするとここが2年になる可能性があります
PHP 8.4のスケジュール Alpha • 6月6日 alpha1 • 6月20日 alpha2 •
7月4日 alpha3 • 7月16日 feature freeze (新機能の開発終了)
PHP 8.4のスケジュール Beta • 7月18日 beta1 • 8月1日 beta2 •
8月15日 beta3
PHP 8.4のスケジュール RC • 8月29日 RC1 • 9月12日 RC2 •
9月26日 RC3 • 10月10日 RC4 • 10月24日 RC5 • 11月7日RC6
PHP 8.4のスケジュール そしてリリース • 11月27日 GA 🎉🎉🎉🎉
リリースマネージャーについて • 先程のリリースサイクルを維持するのがリリースマ ネージャーの役割です – すなわち3年半立場を守ってねという責任が発生します • リリースマネージャー経験済みの「ベテラン」1名と、 経験無しの「ルーキー」2名で構成されます –
これを立候補で募り、選挙で選びます
立候補してみた • やってみたかったので立候 補してみました • 先程の「Release Managers for PHP 8.4」に返信すると、
候補の名前に載ります • ルーキーが4人で投票となり ました
結果は16日にわかるのですが… • ぼくは4番目ですね – 圧倒的最下位! • まあ遠いですねー… • 他の3人が素晴らしいので応援します –
さきちさん(高町咲衣さん)も立候補し ています • 2番目なので色々コミュニケーション 取ってくれてるしふさわしいと思う • 正直ホッとしている
RFCによる変更の提案 • RFCによってPHPにとって重大な変更の提案が行 われます • Feature freezeという、機能追加の凍結まで行えま す – それ以降になったら次のバージョンです
RFCのやりかた • https://wiki.php.net でアカウントを作ります • まず、internalsに向けて「RFC Karma Request」というメー ルを投げ、作ったアカウントを提示します –
こういう機能追加したいですなどと文を添えてください • Karmaが付与されたらWikiを編集できます • internalsとの議論は念入りなコミュニケーションをしましょう
Wikiの編集・RFCの作成 • https://wiki.php.net/rfc/howto をよく読んで、RFC を作成しましょう – このスライドよりも上記のほうが正です、よく読みましょう • 大雑把にいうと、RFCを作成したら、internalsに向けて メールを投げ、「Under
Discussion」の状態にします – この状態を最低2週間以上続けます
RFCの投票 • Under Discussionで徹底的に説明をして納得をしてもら えたようだという感じたならば、Vote(投票)に向かえます – 念入りにコミュニケーションを取りましょう • 投票期間は2週間+αを置きます –
なおこの間RFCの変更をしてはいけません(1回やりました) • ここで2/3のYesが貰えれば可決です
実装 • 可決したならば、実装に移ります – とはいえ、あらかじめPull Requestは示しておくとRFCの説得力 が増しますので、普通はあらかじめ作ります • レビューを受けます •
masterにマージされます – これにてImplementedとなります – この後にバグ修正などが発生します
grapheme_str_splitの例 • 書記素クラスター単位のstr_split関数の例です • 「あれっ、Grapheme関数すくなくね?」と気づく – str_splitくらいあったら配列で処理しやすくなるんじゃ ないかなと思い立つ – PHPカンファレンス北海道2024での話でした
grapheme_str_splitの例 • 実装のPull Requestを書きま す • RFCの結果がまだなの で、Draft Pull Requestとして
おきます – 先頭に「[RFC]」とかつけておくと 親切 – これは「ぼくがそうしてる」という だけです
grapheme_str_splitの例 • (アカウントはRFCを記述できるよう になってたので)RFCのURLを決め ます • WikiなのでRFCのURLに何もな かったらそこに書いていいわけです – URLをgrapheme_str_splitと決めま
した • そこで「こういう関数があったほうが いいと思います」という旨を記述しま す
Internalsにメールを投げる • [Discussion]と先頭に 入れて
[email protected]
に メールを投げます • 返事が来ると思います – これに答えていきましょ
う
Under Discussionフェーズ • WikiにRFCを記述した ら、Under Discussion フェーズに持っていきま す
投票フェーズ • Under Discussionから何も返事が なくなり、2週間が経過したら投票 フェーズに入ります • YesとかNoとか入れてくれます • ここで2/3のYesを獲得しましょう
• この状態を2週間待ちます – 終了は自分で宣言できるので、2週 間+αとしましょう
投票終了 • 終わって、2/3のYesを もらえたら「Accepted」 となります • 精一杯の感謝を伝えま しょう
実装 • Draft Pull Requestから 普通のPull Requestにし ます • 色々やり取りをして
Approveをもら い、masterにマージして もらったら終わりです! やったぜ!
masterブランチ • masterブランチで使え るようになります • これがPHP 8.4で使え るようになるわけです ね
ここまでが今までの話
RFC: Release cycle update • https://wiki.php.net/rfc/release_cycle_update • リリースサイクルを4年に伸ばすというもの – ほかにも色々ありますが基本的にはそういうRFC
– 可決されるとPHP 8.4のEOLが2028年末になります • PHP 8.1から適用になるらしいので来年末EOLですかね – 4月29日 00:00 UTCに結果が決まりますが、2/3のYesはクリアしそ うです
これをもとにすると
Alpha • 7月4日 alpha1 • 7月18日 alpha2 • 8月1日 alpha3
• 8月13日 feature freeze – すべてのRFCの投票が終わっている必要があります
Beta • 8月15日 beta1 • 8月29日 beta2 • 9月10日 RFCで投票されたものがすべてマージさ
れている期限 • 9月12日 beta3
RC • 9月24日 masterからPHP-8.4ブランチへカットされます – ここでは新機能が搭載されることはありません • 9月26日 RC1 •
10月10日 RC2 • 10月24日 RC3 • 11月7日 RC4
そしてリリース • 11月21日 リリース 🎉🎉🎉🎉🎉 • 2026年12月31日 バグ修正リリースの終了 – Security
fixes onlyのはじまり • ただしリグレッション(回帰)修正はありえる • 2027年12月31日 リグレッションリリースの終了 • 2028年12月31日 Security fixes onlyの終了、EOL
alpha • alpha1から3まであります – 8月1日に最後のPHP 8.4.0alphaバージョンが出ます – この時点では機能追加はまだできます • つまりFeature
freezeの前です
beta • betaは1から3まであります – beta1の前にFeature freezeがあります – beta3にはすべての可決されたRFCがマージされてい る必要があります
RC (Release Candidate) • リリース候補版です – 機能の追加は当然なく、バグ修正などにあてがわれます – すでにPHP-8.4ブランチが出来上がっており、それをもと にしてRCバージョン番号がつけられます
– RC1から4まであります • 今までは1から6の事が多かったですが、7まで出たことがありま す
GA (General Available) • 要はリリースです – こうしてPHPの新バージョンが日の目を見ることになり ます – ここまでで半年間の面倒を見ることになります
リリースの後 • リリースされたら2年間のバグフィックスサポートと 2年間のセキュリティフィックスサポートがあるとい うことになります • もしもこのRFCが可決されたらですが – まあ可決されるのでしょう
まとめ • 現在のphp-srcのInternalsの動きをまとめました • リリースサイクルが変更される可能性があります • RFCを受け付けています – 機能追加したいなら急ごう、意外と時間を取られるため –
2週間の議論と2週間の投票で最低1ヶ月はかかる
おわり ご清聴ありがとうございました