push-md: e2e suite only exercises the unscoped source, not the built (scoped) zip
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 68/100
- issue の種類
- 機能追加
- 明瞭さ
- おおむね明確
- 活発さ
- 静か
- 技術スタック
- bash, docker, git, github-actions, php
- 領域
- build-system, ci-cd, testing
調査の方向性
bin/build-plugins.sh、bin/run-push-md-playground.sh、bin/inspect-push-md-zip.sh、および既存の push-md-e2e.yml workflow から始めて、現在のソースをマウントするフローがどのようにビルドおよび実行されるかを追跡します。dist/plugins/push-md.zip をインストールする新しい Playground パスを追加し、その後、既存の clone、Markdown の編集、commit、push のフローを実行します。スコープ対象の artifact が機能的にロードされ、fatal または bad line length character エラーなしで push が成功し、artifact パスが CI で実行されれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Summary
The push-md e2e suite never functionally imports the built (scoped) plugin zip — it mounts the unscoped source tree directly. This is the testing gap that let the scoping regression in #68 (fixed by #69) ship in v0.6.6 / v0.6.7 uncaught: clone worked, but the first Markdown import/push fataled on the scoped build, and no automated test loaded the scoped artifact.
Details
bin/run-push-md-playground.sh boots Playground against the live source, not the release artifact:
--mount="$ROOT_DIR:/workspace"
--mount="$ROOT_DIR/vendor:/wordpress/wp-content/vendor"
--mount="$ROOT_DIR/components:/wordpress/wp-content/components"
--mount="$ROOT_DIR/plugins/push-md:/wordpress/wp-content/plugins/push-md"
So the e2e flow runs with:
- the unscoped namespaces (
Nette\…,League\…, …), where inline qualified references resolve fine, and - the dev bootstrap / composer autoloader, not the generated/scoped
php-toolkit/vendor/composer/*classmap.
bin/build-plugins.sh produces the scoped dist/plugins/push-md.zip, but it's only checked structurally by bin/inspect-push-md-zip.sh (file presence + content greps). Nothing ever loads the scoped classes through their autoloader and pushes Markdown, so a scoping bug that fatals at class-load time passes every gate.
Proposed follow-up
Add an e2e path that exercises the built zip:
bash bin/build-plugins.shto producedist/plugins/push-md.zip.- Install that zip on a fresh Playground site (a blueprint step that installs the artifact, rather than mounting source).
- Run the existing import/push flow:
git clone …/wp-json/git/v1/md.git, edit apost/*.md, commit,git push. - Assert success (no
bad line length character: <br, no PHP fatal in the receive-pack response).
Wire this into CI (e.g. push-md-e2e.yml) so every change that touches the scoper, prune list, or bundle layout is validated against the shipped artifact.
Notes
- #69 already adds a cheap static canary in
inspect-push-md-zip.sh(rejects in-class traituseof a scoped name missing a leading backslash). This issue is about the functional gate that a static grep can't cover. - Keep the unscoped-source e2e too (fast inner loop); the scoped-zip run is the release-artifact gate.
Follow-up to #69 / #68.
- 主要言語
- PHP
- スター
- 22
- フォーク
- 5
- PR マージ指標
- 30日以内にマージされた PR はありません
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
Automattic/php-toolkit のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
Automattic/php-toolkit#89 ·
-
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
Automattic/php-toolkit#102 ·
-
難易度 3/5 1〜2日 初心者へのやさしさ 76/100
Automattic/php-toolkit#95 ·
-
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
Automattic/php-toolkit#91 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 48/100
Automattic/php-toolkit#88 ·
Automattic/php-toolkit の issue をすべて見る
似ている issue
-
Solved site promotion gate fails on runner PHP patch drift (expects 8.2.33, runner installs 8.2.34) オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
Automattic/blocks-engine#2161 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
Automattic/static-site-importer#1824 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
-
0. Needs triage bug
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
-
0. Needs triage 35-feedback bug
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100