では実際に Small Basic Online (SBO) の最新版をビルドしてみましょう。
SBO のリポジトリに README.md というドキュメントがあり、ここに簡単な開発手順が記してあります。その一行目は「Open SmallBasic.sln in Visual Studio 2017.」となっています。
これに従い Visual Studio 2017 をまずインストールしましょう。すでにインストール済みの方はここは読み飛ばして構いません。具体的には Visual Studio Community 2017 という無料版をインストールします。以前、英語なのですが TechNet Wiki にインストール手順を公開しました。そちらも参考にしていただくことにして、ここでは簡単に説明します。サイトはこちらが最新です。[Visual Studio のダウンロード] というボタンを押すとメニューが表示されるので、「Community 2017」をクリックします。するとダウンロードが開始されるので、[保存] ボタンを押し、ダウンロード後 [実行] ボタンを押します。後は指示にしたがってインストールしてください。途中インストールするコンポーネットを聞かれるので「.NET desktop development」と「ASP.NET and web development」を選んで [インストール] ボタンを押します。
次に SBO のリモートレポジトリからローカルリポジトリを作ります。「表示」メニューから「チーム エクスプローラー」を選びます。ローカル Git リポジトリと書いてある下にある「複製」メニューを開きます。「複製する Git リポジトリの URL を入力してください」と書いてある入力欄にリモートレポジトリの URL を入力します。この URL は今回は予めフォークした nonkit/smallbasic-editor にある緑の [Clone or download] ボタンを押して表示される 「https://github.com/nonkit/smallbasic-editor.git」を使います。その下の欄には複製先のフォルダ名を指定し、[複製] ボタンを押します。
これでローカルフォルダにリポジトリができるので、フォルダ名をダブルクリックします。するとチーム エクスプローラーの下のほうにソリューションとして「SmallBasic.sln」というファイルが表示されるので、ダブルクリックします。すると9つのプロジェクトがロードされます。
Visual Studio のメニューから「SmallBasic.Editor」を選んで [F5] キーを押します。ここでもし HTTP 500 エラーが発生した場合は、SmallBasic.Editor > bin にある Debug / Release 両方のフォルダを消してからやり直してみてください。
正常に起動すると下図のようにローカルサーバ localhost:56177/ がブラウザで開かれます。
さて、現在 SBO は日々更新されている状況です。オリジナルのリポジトリでの変更も取り込んでテストしなければなりません。特に自分で登録した issue が修正済みでクローズしている場合は、本当に直ったかどうかテストして確かめましょう。実はまだ直っていない可能性もあります。ちょうど今日5件の修正があったので取り込んでみようと思います。まずリモート同士、sb/smallbasic-editor から nonkit/smallbasic-editor にプルリクエストを作って取り込みます。「synchronize with the original – Feburuary 18, 2019 #2」というプルリクエストを自分で作って自分で承認することで5件の修正をリモートリポジトリに取り込みました。それから、Visual Studio のチーム エクスプローラーで SBO のフォルダをダブルクリックした画面で、プロジェクトの [同期] ボタンを押し、同期の画面で「入力方向のコミット」の下にある「プル」をクリックし、リモートリポジトリの内容をローカルフォルダにプルします。プルというコマンドはリモートリポジトリからローカルリポジトリへのフェッチと、ローカルリポジトリからローカルフォルダへのマージを両方行う機能です。
これで最新の変更が取り込めたので再度ビルドし実行します。今回のビルドで以下の問題が直っているはずなので確かめてみます。
・#33 楕円位置が半径の半分だけ右下にずれる
・#34 Text.GetSubText が指定より短いサブ文字列を返す
・#35 Text.GetSubText の引数によってはプログラムが停止する
・#36 Controls.SetTextBoxText でテキストを設定できない
#33 は直っていました。ただ GraphicsWindow.DrawEllipse を実行するとペンの色で楕円が塗りつぶされてしまうようなので、これは別途レポートします。
#34、#35、#36は直っていました。現時点で公開されているプレビュー版では以上の4件はまだ反映されていません。今後もプレビュー版とリポジトリのソースがずれることは起きると思うのでリポジトリが変更されたら最新版をプルしてローカルでビルドし結果を確認するという作業
繰り返すことになるでしょう。
今回はソースの修正やデバッグは行わず、問題点の発見・レポート・修正の確認にしぼってお伝えしました。Visual Studio はデバッグの機能が便利なので回を改めて触れていきたいと思います。
(つづく)