おつかれさまです。すぺきよです。
Androidの最新SDK対応のために、実質毎年バージョンアップが必要となったFlutter。
今年も8月末までに対応を強いられており、延長申請で11月1日まで対応期限を伸ばすことができます。
私の担当しているアプリでも遅れながらもなんとかFlutter 3.32.8で対応を行うことができました。
納品先とのスケジュール調整でリリースが少し先ではあったので、リリース待ちの状態でしばらく放置が続いています。
ところが9月に入ってから事件が起こりました。
Flutterの最新バージョン3.35が公開された

ある日、納品先との打ち合わせで、Flutterのバージョンを上げることで、利用できなくなるユーザーはいないかどうかの確認があり、3.32.8の各環境のサポートバージョンを改めてチェックする必要が出てきました。
いつもはサポートバージョン情報がどこにあるか調べるのに時間がかかっていましたが、以前自分が公開した記事があるため、さくっと調べることができます。
ありがとう、過去の自分。
しかし、そこで事件は起きます。
なんと、9月に入ってから調べてみると、Flutterの3.35.1がいつの間にかリリースされているじゃないですか。
嫌な予感がしますが、以前の記事をもとに「Supported deployment platforms」を開いたわけです。
そして、嫌な予感が的中しました。
Flutter 3.32.8の情報が欲しいのに、「Supported deployment platforms」の情報がFlutter 3.35.1向けの情報に書きかわっているじゃないですか!
これでは情報が得られません。納品先にも報告できません。これは困った。
もちろん調べれば有志が記録してくださっている対応OSバージョンを見つけることができますが、納品先に説明しづらいので、なんとか公式の情報が欲しい。
こんな経緯から古いFlutterの各環境での対応SDKのバージョンを調べる挑戦が始まりました。
結論:Flutter DocsのGitで過去のコミットを見れば良い

まずは、調べ方について結論を書きます。
FlutterのサポートSDKバージョンが書かれている「Supported deployment platforms」のページは「Flutter Docs」というサイト上で公開されています。
このサイト、調べてみると、サイトのソース自体もオープンソースで、Githubで管理されています。
そのGithubがこちら。
ただ、Githubでソースと履歴は公開されているものの、TagやRelease情報が保存されていないため、結構力技で読み取らざるを得ません。
調査に使うツール群
Gitのコマンドラインを縦横無尽に使えたら良いのですが、さすがにそこまで精通しているわけでもなく、いろいろなツールに頼って調べました。
使うツールは以下の2つです。
Git
Gitでソース管理されているので、これがなければ始まりません。
VSCode
私も愛用している、みんな大好きVSCodeです。
軽量で無料でいろんなことができて本当に便利ですよね。
調べる手順
Flutter DocsのソースをCloneする
Flutter Docsのソースの履歴を遡るために、Cloneしましょう。
ご自身のPC上のお好きなディレクトリで次のコマンドでCloneします。
git clone https://github.com/flutter/website.git
ちなみにcloneで指定しているこのURLはここにあります

VSCodeでcloneしてきたソースを開く
cloneしてできたwebsiteフォルダをVSCodeで開きます。
その後、次のパスのファイルを開き「Supported deployment platforms」のソースを覗きます。

内容はいろいろと書かれていますが、チェックするポイントは下記画像の赤枠と青枠の部分。

「As of Flutter 〜〜」で〜〜の部分にバージョン番号が入っていることがわかります。
そして、ソースの雰囲気から、どこかにパラメータファイルが存在しそうなこともわかります。
おもむろに「currentFlutterVersion」でソース内をgrepなどで全検索して探します。
結果、site.ymlというファイル内にパラメータ設定があることがわかります。

次に、この「currentFlutterVersion」に「3.32.8」が設定されていたコミットを探します。
ここは一つひとつ見ていくしか方法はないと思うので「site.yml」を開いている状態で、左下の「タイムライン」ペインを開きます。下記画像の赤枠の部分です。

タイムライン上には、現在選択中のファイルのコミット履歴のみが一覧で表示されるので、上から一つずつのぞいていきます。
今回は2つ前のコミットで3.32.8が設定されていたことがわかりました。

このコミットのコミットID(今回は「515cd28cf0dd6bb8d26960bb0524bd04c2dfe097」でした)をもとにチェックアウトします。
git checkout 515cd28cf0dd6bb8d26960bb0524bd04c2dfe097
これで3.32.8が公開されていた当時のWebSiteのソースに戻ったわけです。
しかし「supported-platforms.md」のソースを再表示してみると内容がほぼ変わっていません。
環境ごとのサポートバージョンは「site.yml」のような別の設定ファイルで管理しているようです。
よくみてみると「site.yml」と同じディレクトリに「platforms.yml」というファイルが存在します。

このファイル内に記載されているプラットフォームごとのサポートバージョン情報が当時公開されていた情報となっているようでした。
さいごに
Flutterはオープンソースのプロジェクトで開発が活発に行われています。
どんどん新しいバージョンが公開され、機能追加&安定化される分には非常に助かります。
しかし、更新が早すぎてちょっと前の情報が見たい時、困りますね。
今回はソースが更新履歴と共にGitに公開されていたので、なんとか調査はできましたが、そうでないようなプロジェクトの場合は、有志が公開されている情報に頼らざるを得ません。
少し古いバージョンの情報も残しておいてもらえると助かるんですが・・・、あまりわがままも言ってられませんね。
コメント