Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
PHPの次期バージョンはこの時期どうなっているのか - Internalsの開発体制について ...
Search
てきめん tekimen
PRO
April 13, 2024
Programming
1.2k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
PHPの次期バージョンはこの時期どうなっているのか - Internalsの開発体制について - PHPカンファレンス小田原
PHPカンファレンス小田原の資料になります
てきめん tekimen
PRO
April 13, 2024
More Decks by てきめん tekimen
See All by てきめん tekimen
フロントエンドとバックエンドで「1文字」を揃えよう
youkidearitai
PRO
0
1k
ChatGPTを使ってRaspberry Pi Picoの処理系を書いた
youkidearitai
PRO
0
120
PHP Internals わいわい #3 PIEを使ってみよう
youkidearitai
PRO
0
130
grapheme_strrev関数が採択されました(あと雑感)
youkidearitai
PRO
1
450
Limit of code point for grapheme cluster in programming language side.
youkidearitai
PRO
0
130
Unicodeどうしてる? PHPから見たUnicode対応と他言語での対応についてのお伺い
youkidearitai
PRO
2
3.9k
PHP 8.5の裏話
youkidearitai
PRO
0
180
CJK and Unicode From a PHP Committer
youkidearitai
PRO
0
510
PHP Internals わいわい #3 mb_*関数を作ってみよう
youkidearitai
PRO
0
180
Other Decks in Programming
See All in Programming
contenteditable と日本語入力に向き合う
colorful12
0
200
Lambda durable functionsでHuman in the Loopを楽に…楽に……
har1101
0
140
最近”作らせてる” ローカルAIアプリの話
akit37
0
480
エージェントを使い続けるためのメタワーク / Meta-work for keeping using the agent
rkaga
1
310
dotNET_vulnclicker_intro.pdf
deka_morita
0
150
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
260
APNsからLive Activityを開始する話
yumnumm
0
170
Apple Intelligence を用いた個人情報誤送信防止、及びユーザーリクエスト体験の改善について
yukiny
0
360
RAG の “R” を Swift で覗いてみる 〜「意味から探す」検索の仕組み〜
nao_randd
0
170
[2026-10-09]一枚の布で作らなくてもいい。 信頼性は「パッチワーク」で紡がれる~既存の運用と新しい可能性をつなぎ合わせてきたCREの話~
tosite
0
110
FactoryBotをやめればRSpecは速くなるのか?
yuta_onishi_97
0
830
HTML-in-Canvasで作る未来のWeb UI表現
clockmaker
5
5.2k
Featured
See All Featured
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
630
A better future with KSS
kneath
240
18k
Build your cross-platform service in a week with App Engine
jlugia
234
19k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
570
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
460
Optimizing for Happiness
mojombo
378
71k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
370
Context Engineering - Making Every Token Count
addyosmani
9
1.2k
From π to Pie charts
rasagy
1
400
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
320
GitHub's CSS Performance
jonrohan
1033
470k
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ヶ月はかかる
おわり ご清聴ありがとうございました