Compare
Sorry, something went wrong.
No results found
fix(release): 配布用 ZIP (vendor 同梱) のビルドと Release 自動添付を追加
GitHub が自動生成する "Source code (zip)" には .gitignore 済みの vendor/ が
含まれないため、それを WordPress にアップロードすると有効化時に
vendor/autoload.php が見つからず Fatal Error になっていた (テスト利用者からの報告)。
Releases に Source code しか無く、composer 実行済みの配布物を出す経路が
そもそも存在しなかったのが原因。
1. bin/build-zip.sh: runtime に必要なファイルだけを staging して composer を通し、
build/amane-blog-distribution-<version>.zip を出力する。
依存はプラグインヘッダの "Requires PHP" (= 7.4) を platform に固定して解決する
(開発機の composer.lock をそのまま使うと PHP 8.1 以上を要求する
symfony/deprecation-contracts v3 が混ざり、ヘッダの宣言と実体が食い違うため)
2. bin/zip-dir.php: zip コマンドが無い環境向けのフォールバック。
PowerShell の Compress-Archive はエントリ名がバックスラッシュ区切りになることがあり、
その zip は WordPress 側で解凍すると階層が壊れるので使わない
3. .github/workflows/release.yml: タグ push で zip をビルドして Release に自動添付。
タグ名とプラグインヘッダの Version が一致しない場合はリリースさせない
(Stable tag と実体のズレは wordpress.org 公開時の最頻出事故のため)
4. ci.yml に package ジョブを追加。PR の時点で「zip がビルドでき vendor が入っている」
ことを検証し、同じ事故の再発を構造的に防ぐ
5. プラグイン本体: vendor/autoload.php が読めない場合は Fatal Error ではなく
管理画面通知で「配布用 ZIP を使ってください」と案内して静かに停止する
6. README: Source code (zip) では導入できない旨と、自前ビルド手順を明記