Goal
upstream のマージ(6ac14806a)で取り込まれた scratch-blocks v2.0.0(spork ブランチ)により、「定義」ブロックの引数がドラッグできなくなる致命的な不具合が発生した(Discussion smalruby/smalruby3-develop#74)。
scratch-blocks を v2.0.3 → v1.3.0 に戻し、upstream の spork 関連変更(50ファイル)と Smalruby の v2 適応コミット(8個)をすべて巻き戻す。
調査結果
| 項目 |
詳細 |
| upstream マージ前 |
fe2bee4d3(scratch-blocks 1.3.0) |
| upstream マージ |
6ac14806a(146コミット、spork含む) |
| spork マージ(upstream内) |
99c4cd34f(scratch-blocks v2.0.0 導入) |
| spork 直前の upstream |
2cec3ae79(scratch-blocks 1.3.0) |
| spork で変更されたソースファイル |
22ファイル(src/) |
| spork で変更されたテスト/設定 |
28ファイル |
| Smalruby v2 適応コミット |
8個 |
| spork 影響ファイルに触った Smalruby コミット |
3個(blocks.jsx ×2, blocks.js ×1) |
Affected Files
scratch-blocks バージョン変更:
packages/scratch-gui/package.json — 2.0.3 → 1.3.0、react等の直接依存削除
packages/scratch-vm/package.json — 2.0.3 → 1.3.0
package-lock.json — npm install で再生成
upstream ソースファイル復元(22ファイル、2cec3ae79 の状態へ):
packages/scratch-gui/src/containers/blocks.jsx — ★要注意: Smalruby の palette toggle 修正あり
packages/scratch-gui/src/lib/blocks.js — ★要注意: Smalruby の gesture recovery 修正あり
packages/scratch-gui/src/containers/backpack.jsx
packages/scratch-gui/src/containers/custom-procedures.jsx
packages/scratch-gui/src/lib/backpack/block-to-image.js
packages/scratch-gui/src/lib/define-dynamic-block.js
packages/scratch-gui/src/lib/make-toolbox-xml.js
packages/scratch-gui/src/lib/radix-ui-context-menu.js
packages/scratch-gui/src/lib/settings/color-mode/blockHelpers.js
packages/scratch-gui/src/lib/settings/color-mode/dark/index.js + __mocks__/
packages/scratch-gui/src/lib/settings/color-mode/default/index.js + __mocks__/
packages/scratch-gui/src/lib/settings/color-mode/high-contrast/index.js
packages/scratch-gui/src/components/context-menu/context-menu.jsx
packages/scratch-gui/src/components/monitor/monitor.jsx
packages/scratch-gui/src/components/sprite-selector-item/sprite-selector-item.jsx
packages/scratch-vm/src/engine/adapter.js
packages/scratch-vm/src/engine/blocks.js
packages/scratch-vm/src/engine/comment.js
packages/scratch-vm/src/engine/runtime.js
packages/scratch-vm/src/serialization/sb3.js
Smalruby v2 適応の巻き戻し(8コミットの変更):
packages/scratch-gui/src/lib/ruby-generator/index.js
packages/scratch-gui/src/lib/ruby-to-blocks-converter/block-utils.js
packages/scratch-gui/src/lib/ruby-to-blocks-converter/my-blocks.js
packages/scratch-gui/src/lib/ruby-to-blocks-converter/variable-utils.js
packages/scratch-gui/src/lib/generator.js
packages/scratch-gui/src/components/block-display-modal/block-display-modal.jsx
packages/scratch-gui/src/lib/blocks-screenshot.js
packages/scratch-gui/src/lib/vm-listener-hoc.jsx
- CSS ファイル 2個、統合テスト 3ファイル
Implementation Steps
Test Plan
| Type |
Timing |
Target |
| ユニットテスト |
Phase 3-5 |
Ruby converter, generator, blocks-screenshot |
| 統合テスト |
Phase 4-5 |
block-display, palette-toggle, localization |
| ブラウザ確認 |
Phase 6 |
定義ブロック引数ドラッグ、基本操作 |
Risks & Open Questions
- コンフリクトリスク:
blocks.jsx は spork で 200行以上変更 + Smalruby の palette toggle 修正あり → 手動マージ必要
- 依存関係の互換性: upstream の他の依存パッケージ(eslint-config-scratch v13 等)が scratch-blocks v1.3.0 と互換性があるか要確認
- upstream 再マージ時の影響: 将来 upstream を再度マージする際、spork 変更が再度入る可能性 → scratch-blocks v2 の定義ブロック問題が修正されていることを確認してからマージする
radix-ui-context-menu.js: spork で削除された可能性あり → 復元が必要か確認
Goal
upstream のマージ(
6ac14806a)で取り込まれた scratch-blocks v2.0.0(spork ブランチ)により、「定義」ブロックの引数がドラッグできなくなる致命的な不具合が発生した(Discussion smalruby/smalruby3-develop#74)。scratch-blocks を v2.0.3 → v1.3.0 に戻し、upstream の spork 関連変更(50ファイル)と Smalruby の v2 適応コミット(8個)をすべて巻き戻す。
調査結果
fe2bee4d3(scratch-blocks 1.3.0)6ac14806a(146コミット、spork含む)99c4cd34f(scratch-blocks v2.0.0 導入)2cec3ae79(scratch-blocks 1.3.0)Affected Files
scratch-blocks バージョン変更:
packages/scratch-gui/package.json— 2.0.3 → 1.3.0、react等の直接依存削除packages/scratch-vm/package.json— 2.0.3 → 1.3.0package-lock.json— npm install で再生成upstream ソースファイル復元(22ファイル、
2cec3ae79の状態へ):packages/scratch-gui/src/containers/blocks.jsx— ★要注意: Smalruby の palette toggle 修正ありpackages/scratch-gui/src/lib/blocks.js— ★要注意: Smalruby の gesture recovery 修正ありpackages/scratch-gui/src/containers/backpack.jsxpackages/scratch-gui/src/containers/custom-procedures.jsxpackages/scratch-gui/src/lib/backpack/block-to-image.jspackages/scratch-gui/src/lib/define-dynamic-block.jspackages/scratch-gui/src/lib/make-toolbox-xml.jspackages/scratch-gui/src/lib/radix-ui-context-menu.jspackages/scratch-gui/src/lib/settings/color-mode/blockHelpers.jspackages/scratch-gui/src/lib/settings/color-mode/dark/index.js+__mocks__/packages/scratch-gui/src/lib/settings/color-mode/default/index.js+__mocks__/packages/scratch-gui/src/lib/settings/color-mode/high-contrast/index.jspackages/scratch-gui/src/components/context-menu/context-menu.jsxpackages/scratch-gui/src/components/monitor/monitor.jsxpackages/scratch-gui/src/components/sprite-selector-item/sprite-selector-item.jsxpackages/scratch-vm/src/engine/adapter.jspackages/scratch-vm/src/engine/blocks.jspackages/scratch-vm/src/engine/comment.jspackages/scratch-vm/src/engine/runtime.jspackages/scratch-vm/src/serialization/sb3.jsSmalruby v2 適応の巻き戻し(8コミットの変更):
packages/scratch-gui/src/lib/ruby-generator/index.jspackages/scratch-gui/src/lib/ruby-to-blocks-converter/block-utils.jspackages/scratch-gui/src/lib/ruby-to-blocks-converter/my-blocks.jspackages/scratch-gui/src/lib/ruby-to-blocks-converter/variable-utils.jspackages/scratch-gui/src/lib/generator.jspackages/scratch-gui/src/components/block-display-modal/block-display-modal.jsxpackages/scratch-gui/src/lib/blocks-screenshot.jspackages/scratch-gui/src/lib/vm-listener-hoc.jsxImplementation Steps
2cec3ae79状態へ。blocks.jsxとblocks.jsは Smalruby 固有変更を維持しつつ手動マージ)Test Plan
Risks & Open Questions
blocks.jsxは spork で 200行以上変更 + Smalruby の palette toggle 修正あり → 手動マージ必要radix-ui-context-menu.js: spork で削除された可能性あり → 復元が必要か確認