merge_scratch gui_develop - smalruby/smalruby3-gui GitHub Wiki

本家Scratchのdevelopブランチのマージ手順

アップストリーム( https://github.com/scratchfoundation/scratch-gui.git )のdevelopブランチをマージする手順を説明します。

おおむね2週間に1回程度行うといいでしょう。

手順

初期設定 (最初の1回だけ)

初めてマージ作業をする場合は以下のコマンドを実行して下さい。

$ git remote add scratch-gui https://github.com/scratchfoundation/scratch-gui.git

以下のコマンドで、設定を確認することができます。

$ git remote -v
scratch-gui	https://github.com/scratchfoundation/scratch-gui.git (fetch)
scratch-gui	https://github.com/scratchfoundation/scratch-gui.git (push)

マージ方法

$ git checkout develop
$ git pull --rebase
$ git fetch -p scratch-gui
$ git merge scratch-gui/develop

ここで、コンフリクトが発生するので解消します。

コンフリクト以外にも、以下の点に注意して変更点を確認し、必要であれば修正します。

  • README.md
    • 変更点をよく確認して、 Scratch の記述を Smalruby に変更する。なにが追加されるか予測できないため、不安であれば追加されたものをまるごと消すこと。
  • package-lock.json
    • このファイルそのものは修正しない。packages.json を修正後、 npm install でコンフリクトを解消できる
  • src/components/browser-modal/browser-modal.jsx
    • これは Scratch が対応していないブラウザで、Scratchのサイトにアクセスしたときのエラー画面です。 Scratch を Smalruby に置換して、さらに FAQ へのリンクなどがあれば、 Smalruby は Scratch をベースにしているため、 Scratch の FAQ を確認してほしい旨を明記します。
  • src/lib/default-project/index.js
    • これはデフォルトのプロジェクトの情報です。Scratch Catは使えないため、 Cat 2の画像を使っています。Scratch Catに修正が入るたびにコンフリクトします。元通り import costume1 from '!raw-loader!./01ae57fd339529445cb890978ef8a054.svg'; を使うようにすればだいたい大丈夫です。

コンフリクトを解消した後、以下のコマンドでSmalruby3を起動します。

$ npm install
$ npm run start
  • プレビューのダイアログが表示されることなくエディタが表示されること
  • 左上と右上にスクラッチの名前やロゴがないこと
  • 左上のはっちのアイコンをクリックすると、 https://smalruby.jp を開くこと
  • メニューバーに 意見を送る のボタンがないこと
  • スプライト、コスチュームの一覧に以下が存在しないこと (ブラウザの検索機能で確認することを推奨)
    • Cat
    • Cat-Flying
    • Gobo
    • Pico
    • Pico Walking
    • Nano
    • Tera
    • Giga
    • Giga Walking

を確認します。あとは、適当に命令ブロックを配置後、Rubyタブを表示してRubyコードに変換されることを確認します。

テストを実行します。(これが失敗していると、結局 TravisCI による自動ビルドでエラーになります)

$ npm run test:lint
✖ 54 problems (0 errors, 54 warnings)
(上記のようにエラーが0 errorsであれば OK です。warnings は無視できます。エラーがあればそれを解消します)

$ npm run test:unit
Test Suites: 17 passed, 17 total
Tests:       2 skipped, 88 passed, 90 total
Snapshots:   7 passed, 7 total
Time:        29.424s
Ran all test suites matching /test[\/]unit/i.
(上記のようにすべてpassedと表示されればOKです)

$ npm run build
(エラーなく終了すればOKです)

以上でマージ作業は完了です。

修正内容をGitHubにpushしてPRを作ります。

$ git checkout -b merge/scratch-gui
$ git add .
$ git commit -m "feat: merge scratch-gui scratchfoundation/scratch-gui@`git log --pretty=format:"%h" -n 1 scratch-gui/develop`"
$ git push origin merge/scratch-gui

https://github.com/<ユーザ名>/smalruby3-guiにアクセスして、https://github.com/smalruby/smalruby3-gui の develop ブランチへのPRを作成する。ここで間違って scratchfoundation/scratch-gui にPRを作成しないこと。

  • タイトル: feat: merge scratch-gui scratchfoundation/scratch-gui@%scratch-guiの最終コミットID%
    • コミットログのまま
  • 内容: 空でOK。もしコンフリクトを解消するときに重要な修正をした場合は記述すること。
  • 実例: https://github.com/smalruby/smalruby3-gui/pull/241

slack ( https://smalruby3.slack.com/messages/CAAA9Q9EJ/ )で @kouji に マージ依頼: <PRのURL> を送る。

レビュー観点

smalrubyで検索。 smalrubyにマッチしたのが削除されたコードであれば、マージミスの可能性あり。

メニューバーに意見を送るのボタンが復活する可能性あり。

スプライトのリストにCatとCat-Flyが復活する可能性あり 自動テストでチェック済み

マージの注意点

これまでミスったもの

  • src/components/menu-bar/menu-bar.jsx
    • {'scratch-cat'} がもとにもどたった
⚠️ **GitHub.com Fallback** ⚠️