公開パッケージのリポジトリに対してIssue作成
私は普段の個人開発において、FlutterでAndroidアプリケーション開発を行っています。
どの言語・フレームワークにおいてもバージョンアップがあります。
今回の記事では、バージョンアップ時に発生して不具合について、RepositoryのIssueとして起票することで得られたことをまとめてみました。
公開リポジトリに対するIssue起票が気になる方へ
今回、Flutterが関係する内容にはなります。
Flutterの開発経験が多少でもある方が内容は入ってきやすいかと思いますが、
「公開リポジトリに対するIssue起票」という点では、言語・フレームワーク問わずある話なので、そういったことに興味がある方に読んでいただければ、嬉しいです。
Flutterのバージョンアップ対応
早速本題に入りますが、
ついこの前(2025/11/13)、リリースがあり、それぞれ以下のバージョンになりました。
- Dart:
3.10 - Flutter:
3.38
このアップデートにおいて、Dot shorthandsに関する対応が取り込まれました。
画面に表示する際のプロパティ値を簡潔に記載できる、というものです。
早速この話を自分のコードに導入しました。
導入前後で以下のように書き方が変わります。確かにスッキリしています。
// Without shorthands
Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.center,
children: [ /* … */ ],
),
// With shorthands
Column(
mainAxisAlignment: .start,
crossAxisAlignment: .center,
children: [ /* ... */ ],
),
Issueを起票するまでの流れ
上述したFlutterのバージョンアップ、Dot shorthandsのコード実装を終え、
Androidアプリケーションで動かすために準備を進めていたところ、エラーが発生しました。
アプリ作成に利用しているパッケージがバージョンアップに対応できていないと思い、対象パッケージでIssueを起票しました。
ビルドは問題なし
以下のようにapkファイル作成のためにビルドを行いましたが、ここでは特に問題ありません。
flutter build apk --release
build_runnerでコード生成
build_runnerについて、ざっくりとした説明になりますが、自動でコード生成を行う際に必要となるbuilderの役割を担います。
(コード生成と記載しましたが、生成AIとは関係ありません。)
以下利用例の一部です。
- Json Serialization機能
- Data Class作成
- Mock作成
コマンド実行でエラー発生
dart run build_runner build --delete-conflicting-outputs
実行すると、以下のようにエラーとなってしまいました。
E envied_generator:envied on lib/shared/widgets/dialogs/order_confirmation_dialog.dart:
63:37: This requires the 'dot-shorthands' language feature to be enabled.
85:40: This requires the 'dot-shorthands' language feature to be enabled.
0s envied_generator:envied on 188 inputs: 1 output, 187 no-op
0s source_gen:combining_builder on 188 inputs; integration_test/app_test.dart
今回私が作成するアプリにおいて、envied_generatorパッケージでエラーが発生しました。(環境変数読み込み関係のパッケージ)
requires the 'dot-shorthands' language feature to be enabled
と出力されているので、
run build_runner buildでオプションを設定すればいいようです。
オプションを付けて実行(-enable-experiment=dot-shorthands)
dart run build_runner build --delete-conflicting-outputs --enable-experiment=dot-shorthands
'dot-shorthands' is now enabled by default; this flag is no longer required.
5s riverpod_generator on 188 inputs: 1 output, 187 no-op; spent 4s analyzing, 1s resolving
0s envied_generator:envied on 188 inputs: 1 output, 187 no-op
0s source_gen:combining_builder on 188 inputs: 2 output, 186 no-op
8s mockito:mockBuilder on 10 inputs: 5 skipped, 1 output, 4 no-op; spent 7s analyzing, 1s resolving
成功しました。
しかし今度はthis flag is no longer required.と出力されました。
この段階で、今回のFlutterのバージョンアップによって、利用パッケージ側の対応が追いついていないのかな?と思っていました。
その流れで、状況を一通り整理して以下のIssueを起票しました。
以下Issueの最初のコメントが今回記載した内容です。
Issueに対するコメントがきた!
すごい方から返信
当日のうちに返信が届きました。
以下の方からメッセージをいただいたのですが、Github Statsがすごい。
analyzerが古いだけだった
Looks like you're using an old analyzer dart-lang/sdk#61281 (comment). Simply upgrade it and nuke the cache and dart build folders.
上記の通りコメントをもらいました。
私のローカルのanalyzerのバージョンに関して、
今回コードで導入したdot-shorthandsに対応できる(正しく解析可能な)バージョンのanalyzerではなかった、という内容でした。
analyzerパッケージを確認
この調べる作業を通じて、
依存パッケージに対する理解といいましょうか、トラブルシューティングのための確認観点が1つ増え、レベルアップにつながる体験となりました。0
パッケージの基本的な部分を理解
VsCodeで開発を進める場合には、以下の通り拡張機能を導入します。
この拡張機能とanalyzerが連携をとって、開発のサポートをしてくれています。
Dart 3.9から試験導入
experiments.g.dartというファイルの中で、以下のコードがあります。
experimentalReleaseVersionというプロパティに記載の通り、試験的な利用ケースであっても、Dart SDKのバージョンが3.9.0以降でなければ利用できません。
static final dot_shorthands = ExperimentalFeature(
index: 9,
enableString: EnableString.dot_shorthands,
isEnabledByDefault: IsEnabledByDefault.dot_shorthands,
isExpired: IsExpired.dot_shorthands,
documentation: 'Shorter dot syntax for static accesses.',
experimentalReleaseVersion: Version.parse('3.9.0'),
releaseVersion: Version.parse('3.10.0'),
channels: ["stable", "beta", "dev", "main"],
);
Versions一覧の確認
上記のバージョンに関するコードと以下バージョンページから抜粋画像で判断できますが、
整理すると以下のようになります。
-
analyzer 8.2.0+: Dart SDK 3.9.0以上を要求し、dot shorthands機能をサポート -
analyzer 8.1.1: Dart SDK 3.7.xをサポートしており、dot shorthands機能は未サポート
plugins
Support for analyzer plugins was added in Dart 3.10.
Dart 3.10からサポートされるようになった機能です。
analyzerパッケージを拡張して、カスタムの静的解析ルールやリント、コード補完などを追加するための仕組みのようです。
Mediumでは1つ記事が挙がっていましたが、もう少し情報が集まってきてから、試してみようと思います。
対応を進めよう
プロジェクトのパッケージ依存関係を確認
以下コマンドでバージョン最新化を行います。
他パッケージとの依存関係を考慮の上、可能な範囲で最新化を行ってくれます。
flutter pub upgrade
Resolving dependencies... (6.6s)
Downloading packages... (5.0s)
_fe_analyzer_shared 88.0.0 (92.0.0 available)
analyzer 8.1.1 (9.0.0 available)
analyzer_plugin 0.13.7 (0.13.11 available)
・・・ 以下略
3行目にある通りですが、
analyzer 8.1.1でした。先ほどの画像でいえば、ギリギリdot shorthands機能は未サポートなバージョンです。
8.2.0以上にするために
行った対応は大きく2点です。
これらを行って、バージョンが8.2.0となるか確認をしました。
- 試験的に導入していたパッケージ削除
- コメント指摘通り、cacheのクリア
flutter pub cache clean flutter pub upgrade
pub upgradeの結果
cacheをクリア後、パッケージの再upgradeを行った結果が以下の通りです。

analyzer 8.4.1 (9.0.0 available)に更新されたので、dot shorthands機能をサポートしているバージョンまでupgradeできました。
コマンド再実行
dart run build_runner build --delete-conflicting-outputs
まとめ
今回はFlutterのバージョンアップ時に出会ったエラーについて、Github RepositoryにIssueを起票しました。
結果的には私の環境の問題で、タイトルの通り、自分の理解不足だった訳ですが、こういう経験もしないとスキルアップできないので、良い経験になりました。
夏ごろから上記のページをしばしば見るのですが、勉強になることがあるので、そこは継続していきたいと思います。
ありがとうございました。
参考


