Skip to content

chore(upstream): pre-spork 巻き戻し (#270) の取り残しを監査し v13.7.2 ベースラインへ再整合する計画 #749

Description

@takaokouji

Goal

smalruby は upstream scratch-editor v13.7.2 + scratch-blocks v2.1.19(modern Blockly) を基盤とする。
しかし Issue #270 / commit 84f87e9152("restore upstream source files to pre-spork state (scratch-blocks v1.3.0)")が
22 ソースファイルを pre-spork(classic Blockly v1.3.0)状態へ巻き戻し、その後の v13.7.2 マージで
scratch-blocks を v2.1.19 へ再アップグレードした際にこれらを modern 状態へ再移行しなかった

結果、modern Blockly エンジン (v2.1.19) の上で pre-spork のソースが band-aid で糊付けされて動いている
状態になっている。拡張機能の HAT/EVENT ブロックが帽子型に描画されない不具合(旧 PR #748)はこの取り残しの一症状。

当初は 監査専任 Issue として起票したが、実作業の中で監査 → 段階的な再整合の実装・検証まで実施した(下記「実装状況」「当初計画外の追加作業」参照)。

経緯(git 履歴・.upstream-merge-history.json から確定)

日付 出来事
2026-03-08 upstream マージで scratch-blocks v2.0.0(spork)導入 → 「定義」ブロック引数ドラッグが壊れる
2026-03-11 Issue #270 / 84f87e9152 で v1.3.0 へダウングレードし 22 ソースファイルを pre-spork 状態へ巻き戻し
2026-05-03 v13.7.2 マージ352a334b)で scratch-blocks を v2.1.19 へ再アップグレード。だが巻き戻した 22 ファイルは modern へ再移行されず、band-aid で糊付け

実装状況(topic ブランチ topic/upstream-realign-v13.7.2 に集約)

PR 内容 状態
#751 Step 1: colour→style / shape_hat / monitor_block / setBlockStyle 復元 + develop-trap ガード + doc 整理 ✅ topic にマージ
#753 Step 2: コメントイベント modern 化 + ${block.id}_comment 契約(blocks.js / adapter.js / comment.js / sb3 周辺) ✅ topic にマージ
#754 Step 3: band-aid auto-style-patch.js 撤去 ✅ topic にマージ
#756 chore: mesh リグレッションスクリプト headless 化 + tools/playwright-verify を rules に明記 ✅ topic にマージ
#755 topic → develop(リリース取り込み) ⏳ オープン・最終マージ待ち

Implementation Steps(調査フェーズ)

Definition of Done

  • 監査ドキュメント作成(baseline + develop-trap + 22 ファイル分類 + band-aid 一覧 + 段階計画)— ⚠️ 配置変更: 当初予定の docs/upstream-tracking/ ではなく、ユーザー指示により git 管理外 notes/upstream-tracking/ に退避(一度きりの作業成果物のため)。今後参照する forward-looking 情報のみ .claude/rules/upstream-tracking.md に残した
  • 22 ファイルすべてを A/B/C 分類
  • band-aid 一覧に「再整合後に削除可能か」を明記
  • follow-up Issue を起票(chore(upstream): pre-spork 再整合の残債を v13.7.2 へ追従する (follow-up of #749/#751) #752
  • PR fix(scratch-vm): 拡張機能の HAT/EVENT ブロックを modern Blockly で帽子型に描画 #748 を superseded として close
  • エビデンス取得(Playwright / ホスト Chrome、notes/ 配下)— ただし下記は after-state での確認(before ではなく):
    • 拡張 HAT/EVENT(koshien connect_game・micro:bit when ...)が帽子型で描画される(修正後)
    • 拡張ブロックの色が維持style 名前付きスタイル経由)
    • 「定義」ブロックの引数ドラッグ / モーダルが動く(fix: downgrade scratch-blocks from v2.0.3 to v1.3.0 to restore custom block argument dragging #270 元不具合の非再発を after で確認)
    • レポーターのモニタ(チェックボックス)が表示(monitor_blockkoshien_mapAll で確認)
    • ⚠️ 再整合前(before) の「平らな上端」「auto-style 経由の色」スクショは未取得(after 検証で代替)

当初計画外の追加作業(実装中に発生)

監査専任の当初スコープを超えて実施した作業:

残作業(敵対的観点での洗い出し)

Test Plan(実績)

Type 実績
unit / integration scratch-vm/gui の関連テスト + mesh(unit 391 / integration 34)green。各 PR で CI 9/9 green
ブラウザ検証 (Playwright + ホスト Chrome) hat/色/monitor/screenshot/palette/zoom/定義モーダル/コメント往復/Ruby コメント/mesh shadow ドロップダウン
mesh リグレッション tools/playwright-verify/mesh-v2-classroom-binding.mjs 全 PASS

関連

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions