diff --git a/dev/automated_tests/pubspec.yaml b/dev/automated_tests/pubspec.yaml
index 2a1ac410af98dc2d2999291242d0148a03281f69..f0c162622b08644c6133417d2ad3eb3bbbc812b5 100644
--- a/dev/automated_tests/pubspec.yaml
+++ b/dev/automated_tests/pubspec.yaml
@@ -1,7 +1,7 @@
 name: flutter_automated_tests
 
 environment:
-  sdk: ">=2.12.0-0 <3.0.0"
+  sdk: ">=2.17.0-0 <3.0.0"
 
 dependencies:
   flutter:
diff --git a/dev/benchmarks/complex_layout/pubspec.yaml b/dev/benchmarks/complex_layout/pubspec.yaml
index 9e57af8e89f43dde8fbb8a367516ff389054f19f..fd249a4c27a53176d8267b0a0a3e7d97ab2d26a4 100644
--- a/dev/benchmarks/complex_layout/pubspec.yaml
+++ b/dev/benchmarks/complex_layout/pubspec.yaml
@@ -2,7 +2,7 @@ name: complex_layout
 description: A benchmark of a relatively complex layout.
 
 environment:
-  sdk: ">=2.12.0 <3.0.0"
+  sdk: ">=2.17.0-0 <3.0.0"
 
 dependencies:
   flutter:
diff --git a/dev/benchmarks/macrobenchmarks/pubspec.yaml b/dev/benchmarks/macrobenchmarks/pubspec.yaml
index 4f861b55df27b87d9e0cbe32fc7bb4349013a31e..0ebc9247e39ef9f7f3b24f96e79568ed7dbc56ff 100644
--- a/dev/benchmarks/macrobenchmarks/pubspec.yaml
+++ b/dev/benchmarks/macrobenchmarks/pubspec.yaml
@@ -2,7 +2,7 @@ name: macrobenchmarks
 description: Performance benchmarks using flutter drive.
 
 environment:
-  sdk: ">=2.12.0 <3.0.0"
+  sdk: ">=2.17.0-0 <3.0.0"
 
 dependencies:
   flutter:
diff --git a/dev/benchmarks/microbenchmarks/pubspec.yaml b/dev/benchmarks/microbenchmarks/pubspec.yaml
index 7cc530f47e047a3f184d64fdc0790a58041be1a5..97936e0f3b0050d0f1458f79f2c71e4e6607093c 100644
--- a/dev/benchmarks/microbenchmarks/pubspec.yaml
+++ b/dev/benchmarks/microbenchmarks/pubspec.yaml
@@ -2,7 +2,7 @@ name: microbenchmarks
 description: Small benchmarks for very specific parts of the Flutter framework.
 
 environment:
-  sdk: ">=2.12.0 <3.0.0"
+  sdk: ">=2.17.0-0 <3.0.0"
 
 dependencies:
   meta: 1.7.0
diff --git a/dev/benchmarks/multiple_flutters/module/pubspec.yaml b/dev/benchmarks/multiple_flutters/module/pubspec.yaml
index 36a12bcdaf11bd80bff2bb1d8d4923dfb8db57bd..c340564ef642f4b727d6cc682635296d985d903e 100644
--- a/dev/benchmarks/multiple_flutters/module/pubspec.yaml
+++ b/dev/benchmarks/multiple_flutters/module/pubspec.yaml
@@ -4,7 +4,7 @@ description: A module that is embedded in the multiple_flutters benchmark test.
 version: 1.0.0+1
 
 environment:
-  sdk: ">=2.12.0 <3.0.0"
+  sdk: ">=2.17.0-0 <3.0.0"
 
 dependencies:
   flutter:
diff --git a/dev/benchmarks/platform_channels_benchmarks/pubspec.yaml b/dev/benchmarks/platform_channels_benchmarks/pubspec.yaml
index 65ca9d79ba1464f7ce6cf4e52d2bd7a63300ba77..c8fe5426a1896adb96d96a28c2ef77a1b7f27609 100644
--- a/dev/benchmarks/platform_channels_benchmarks/pubspec.yaml
+++ b/dev/benchmarks/platform_channels_benchmarks/pubspec.yaml
@@ -5,7 +5,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
 version: 1.0.0+1
 
 environment:
-  sdk: ">=2.12.0 <3.0.0"
+  sdk: ">=2.17.0-0 <3.0.0"
 
 dependencies:
   flutter:
diff --git a/dev/benchmarks/platform_views_layout/lib/main.dart b/dev/benchmarks/platform_views_layout/lib/main.dart
index 0f3678cd47d7632d0c26bf72815ba75059d2abb9..2e7378f6a438891f1ee7d03c6c6cb4028ce6b847 100644
--- a/dev/benchmarks/platform_views_layout/lib/main.dart
+++ b/dev/benchmarks/platform_views_layout/lib/main.dart
@@ -15,8 +15,8 @@ void main() {
 
 class PlatformViewApp extends StatefulWidget {
   const PlatformViewApp({
-    Key? key,
-  }) : super(key: key);
+    super.key,
+  });
 
   @override
   PlatformViewAppState createState() => PlatformViewAppState();
@@ -40,7 +40,7 @@ class PlatformViewAppState extends State<PlatformViewApp> {
 }
 
 class PlatformViewLayout extends StatelessWidget {
-  const PlatformViewLayout({ Key? key }) : super(key: key);
+  const PlatformViewLayout({ super.key });
 
   @override
   Widget build(BuildContext context) {
@@ -70,7 +70,7 @@ class PlatformViewLayout extends StatelessWidget {
 }
 
 class DummyPlatformView extends StatelessWidget {
-  const DummyPlatformView({Key? key}) : super(key: key);
+  const DummyPlatformView({super.key});
 
   @override
   Widget build(BuildContext context) {
@@ -96,7 +96,7 @@ class DummyPlatformView extends StatelessWidget {
 }
 
 class RotationContainer extends StatefulWidget {
-  const RotationContainer({Key? key}) : super(key: key);
+  const RotationContainer({super.key});
 
   @override
   State<RotationContainer> createState() => _RotationContainerState();
diff --git a/dev/benchmarks/platform_views_layout/pubspec.yaml b/dev/benchmarks/platform_views_layout/pubspec.yaml
index d3ce8aeb6f7f27d0358b7675272456284e1fc471..8435cce0cb771c7df495f17c5893278e9c085da0 100644
--- a/dev/benchmarks/platform_views_layout/pubspec.yaml
+++ b/dev/benchmarks/platform_views_layout/pubspec.yaml
@@ -2,7 +2,7 @@ name: platform_views_layout
 description: A benchmark for platform views.
 
 environment:
-  sdk: ">=2.12.0-0 <3.0.0"
+  sdk: ">=2.17.0-0 <3.0.0"
 
 dependencies:
   flutter:
diff --git a/dev/benchmarks/platform_views_layout_hybrid_composition/lib/android_platform_view.dart b/dev/benchmarks/platform_views_layout_hybrid_composition/lib/android_platform_view.dart
index 98f35ec0784316fd218738c2ba92a553116adce9..1153fdf89526ff822253d1010d99a9254aabf1b5 100644
--- a/dev/benchmarks/platform_views_layout_hybrid_composition/lib/android_platform_view.dart
+++ b/dev/benchmarks/platform_views_layout_hybrid_composition/lib/android_platform_view.dart
@@ -12,9 +12,9 @@ class AndroidPlatformView extends StatelessWidget {
   /// Creates a platform view for Android, which is rendered as a
   /// native view.
   const AndroidPlatformView({
-    Key? key,
+    super.key,
     required this.viewType,
-  }) : super(key: key);
+  });
 
   /// The unique identifier for the view type to be embedded by this widget.
   ///
diff --git a/dev/benchmarks/platform_views_layout_hybrid_composition/lib/main.dart b/dev/benchmarks/platform_views_layout_hybrid_composition/lib/main.dart
index d346f9dee604b36b9faf37e4b3afd591ec5cd14f..5d27d2ab47d119cf39b45e2e6ef105d1536fc90d 100644
--- a/dev/benchmarks/platform_views_layout_hybrid_composition/lib/main.dart
+++ b/dev/benchmarks/platform_views_layout_hybrid_composition/lib/main.dart
@@ -19,8 +19,8 @@ void main() {
 
 class PlatformViewApp extends StatefulWidget {
   const PlatformViewApp({
-    Key? key
-  }) : super(key: key);
+    super.key
+  });
 
   @override
   PlatformViewAppState createState() => PlatformViewAppState();
@@ -44,7 +44,7 @@ class PlatformViewAppState extends State<PlatformViewApp> {
 }
 
 class PlatformViewLayout extends StatelessWidget {
-  const PlatformViewLayout({ Key? key }) : super(key: key);
+  const PlatformViewLayout({ super.key });
 
   @override
   Widget build(BuildContext context) {
@@ -74,7 +74,7 @@ class PlatformViewLayout extends StatelessWidget {
 }
 
 class DummyPlatformView extends StatelessWidget {
-  const DummyPlatformView({Key? key}) : super(key: key);
+  const DummyPlatformView({super.key});
 
   @override
   Widget build(BuildContext context) {
@@ -101,7 +101,7 @@ class DummyPlatformView extends StatelessWidget {
 }
 
 class RotationContainer extends StatefulWidget {
-  const RotationContainer({Key? key}) : super(key: key);
+  const RotationContainer({super.key});
 
   @override
   State<RotationContainer> createState() => _RotationContainerState();
diff --git a/dev/benchmarks/platform_views_layout_hybrid_composition/pubspec.yaml b/dev/benchmarks/platform_views_layout_hybrid_composition/pubspec.yaml
index fa6693b683556666114275952218066f1ab963e7..e989bc52e07b87b2b2126c5c21d7a0b3bfa85dfe 100644
--- a/dev/benchmarks/platform_views_layout_hybrid_composition/pubspec.yaml
+++ b/dev/benchmarks/platform_views_layout_hybrid_composition/pubspec.yaml
@@ -2,7 +2,7 @@ name: platform_views_layout_hybrid_composition
 description: A benchmark for platform views, using hybrid composition on android.
 
 environment:
-  sdk: ">=2.12.0-0 <3.0.0"
+  sdk: ">=2.17.0-0 <3.0.0"
 
 dependencies:
   flutter:
diff --git a/dev/benchmarks/test_apps/stocks/pubspec.yaml b/dev/benchmarks/test_apps/stocks/pubspec.yaml
index c59096f96afbe81920087a41af1daa000bbcac46..6da35fdfeae62e920a08f632747dbdfac09e4cce 100644
--- a/dev/benchmarks/test_apps/stocks/pubspec.yaml
+++ b/dev/benchmarks/test_apps/stocks/pubspec.yaml
@@ -1,7 +1,7 @@
 name: stocks
 
 environment:
-  sdk: ">=2.12.0 <3.0.0"
+  sdk: ">=2.17.0-0 <3.0.0"
 
 dependencies:
   flutter:
diff --git a/dev/bots/analyze.dart b/dev/bots/analyze.dart
index 833437820767ea7b4ac19dc664d1c05b88666351..56eefd29ee2992ec2966d626394da7d80aaf4ceb 100644
--- a/dev/bots/analyze.dart
+++ b/dev/bots/analyze.dart
@@ -16,6 +16,7 @@ import 'package:analyzer/dart/ast/visitor.dart';
 import 'package:crypto/crypto.dart';
 import 'package:meta/meta.dart';
 import 'package:path/path.dart' as path;
+import 'package:pub_semver/pub_semver.dart';
 
 import 'allowlist.dart';
 import 'run_command.dart';
@@ -523,7 +524,7 @@ class _TestSkip {
 
 Iterable<_TestSkip> _getTestSkips(File file) {
   final ParseStringResult parseResult = parseFile(
-    featureSet: FeatureSet.latestLanguageVersion(),
+    featureSet: FeatureSet.fromEnableFlags2(sdkLanguageVersion: Version.parse('2.17.0-0'), flags: <String>['super-parameters']),
     path: file.absolute.path,
   );
   final _TestSkipLinesVisitor<CompilationUnit> visitor = _TestSkipLinesVisitor<CompilationUnit>(parseResult);
diff --git a/dev/bots/pubspec.yaml b/dev/bots/pubspec.yaml
index a9e4a1b9d92fd8e634efec56af52c1d70c1b6a75..0c2e25cdc07c1316b3352e2bb87982d2ff8a2917 100644
--- a/dev/bots/pubspec.yaml
+++ b/dev/bots/pubspec.yaml
@@ -2,7 +2,7 @@ name: tests_on_bots
 description: Scripts which run on bots.
 
 environment:
-  sdk: ">=2.12.0 <3.0.0"
+  sdk: ">=2.17.0-0 <3.0.0"
 
 dependencies:
   args: 2.3.0
diff --git a/dev/conductor/core/pubspec.yaml b/dev/conductor/core/pubspec.yaml
index fe49e7e4766e8cade0c20da74b1de2e6168a0679..2f12b6d1f66b8260fbc6cb376783658058d7cfd4 100644
--- a/dev/conductor/core/pubspec.yaml
+++ b/dev/conductor/core/pubspec.yaml
@@ -4,7 +4,7 @@ description: Flutter Automated Release Tool
 publish_to: none
 
 environment:
-  sdk: ">=2.12.0 <3.0.0"
+  sdk: ">=2.17.0-0 <3.0.0"
 
 dependencies:
   archive: 3.1.11
diff --git a/dev/devicelab/bin/tasks/smoke_test_build_test.dart b/dev/devicelab/bin/tasks/smoke_test_build_test.dart
index 20af94154158d23bdaafa50c7e5c90c58c64f0e9..2df08ac6e05fa6e2c2341697bed432a9fdaec6e4 100644
--- a/dev/devicelab/bin/tasks/smoke_test_build_test.dart
+++ b/dev/devicelab/bin/tasks/smoke_test_build_test.dart
@@ -14,7 +14,7 @@ Future<void> main(List<String> args) async {
 }
 
 class FakeBuildTestTask extends BuildTestTask {
-  FakeBuildTestTask(List<String> args) : super(args, runFlutterClean: false) {
+  FakeBuildTestTask(super.args) : super(runFlutterClean: false) {
     deviceOperatingSystem = DeviceOperatingSystem.fake;
   }
 
diff --git a/dev/devicelab/lib/tasks/analysis.dart b/dev/devicelab/lib/tasks/analysis.dart
index 30fa74e5c7b5849f1a80d5865906a58d66100212..d881ed2ea1a7d1e048c777c15b1419a4af4f5a06 100644
--- a/dev/devicelab/lib/tasks/analysis.dart
+++ b/dev/devicelab/lib/tasks/analysis.dart
@@ -84,7 +84,7 @@ abstract class _Benchmark {
 
 /// Times how long it takes to analyze the Flutter repository.
 class _FlutterRepoBenchmark extends _Benchmark {
-  _FlutterRepoBenchmark({bool watch = false}) : super(watch: watch);
+  _FlutterRepoBenchmark({super.watch});
 
   @override
   String get title => 'Flutter repo';
@@ -100,7 +100,7 @@ class _FlutterRepoBenchmark extends _Benchmark {
 
 /// Times how long it takes to analyze the generated "mega_gallery" app.
 class _MegaGalleryBenchmark extends _Benchmark {
-  _MegaGalleryBenchmark({bool watch = false}) : super(watch: watch);
+  _MegaGalleryBenchmark({super.watch});
 
   @override
   String get title => 'mega gallery';
diff --git a/dev/devicelab/lib/tasks/perf_tests.dart b/dev/devicelab/lib/tasks/perf_tests.dart
index 90d3abc906e4d5ef44c14c108696df7052407bf5..72668cf9be043cdb528a5b8845a68c7ba02f2a0f 100644
--- a/dev/devicelab/lib/tasks/perf_tests.dart
+++ b/dev/devicelab/lib/tasks/perf_tests.dart
@@ -1029,35 +1029,23 @@ const List<String> _kCommonScoreKeys = <String>[
 
 class PerfTestWithSkSL extends PerfTest {
   PerfTestWithSkSL(
-    String testDirectory,
-    String testTarget,
-    String timelineFileName, {
-    bool measureCpuGpu = false,
-    String? testDriver,
-    bool needsFullTimeline = true,
-    List<String>? benchmarkScoreKeys,
-  }) : super(
-    testDirectory,
-    testTarget,
-    timelineFileName,
-    measureCpuGpu: measureCpuGpu,
-    testDriver: testDriver,
-    needsFullTimeline: needsFullTimeline,
-    benchmarkScoreKeys: benchmarkScoreKeys,
-  );
+    super.testDirectory,
+    super.testTarget,
+    String super.timelineFileName, {
+    super.measureCpuGpu = false,
+    super.testDriver,
+    super.needsFullTimeline,
+    super.benchmarkScoreKeys,
+  });
 
 
   PerfTestWithSkSL.e2e(
-    String testDirectory,
-    String testTarget, {
-    String testDriver =  'test_driver/e2e_test.dart',
-    String resultFilename = 'e2e_perf_summary',
+    super.testDirectory,
+    super.testTarget, {
+    String super.testDriver,
+    super.resultFilename,
   }) : super.e2e(
-    testDirectory,
-    testTarget,
-    testDriver: testDriver,
     needsFullTimeline: false,
-    resultFilename: resultFilename,
   );
 
   @override
diff --git a/dev/devicelab/pubspec.yaml b/dev/devicelab/pubspec.yaml
index ce173c6c4df350e8b06a81e54e6c7c691a5b5689..7c47e05d061d9837defbf1ad17fe16b209e165e4 100644
--- a/dev/devicelab/pubspec.yaml
+++ b/dev/devicelab/pubspec.yaml
@@ -3,7 +3,7 @@ description: Flutter continuous integration performance and correctness tests.
 homepage: https://github.com/flutter/flutter
 
 environment:
-  sdk: ">=2.12.0-0 <3.0.0"
+  sdk: ">=2.17.0-0 <3.0.0"
 
 dependencies:
   archive: 3.1.11
diff --git a/dev/devicelab/test/adb_test.dart b/dev/devicelab/test/adb_test.dart
index d8345c0fc2c3b4575ad87f119466648d3e2c3a30..d76b2706fc0ada0b91e96266408681713f983c86 100644
--- a/dev/devicelab/test/adb_test.dart
+++ b/dev/devicelab/test/adb_test.dart
@@ -180,7 +180,7 @@ class CommandArgs {
 }
 
 class FakeDevice extends AndroidDevice {
-  FakeDevice({required String deviceId}) : super(deviceId: deviceId);
+  FakeDevice({required super.deviceId});
 
   static String output = '';
 
diff --git a/dev/docs/platform_integration/pubspec.yaml b/dev/docs/platform_integration/pubspec.yaml
index 15302960a6167cf41f48d9a2b5d73d3d1a910bce..e56e23d2b05741c07413d07c3d4a32d80dce42a1 100644
--- a/dev/docs/platform_integration/pubspec.yaml
+++ b/dev/docs/platform_integration/pubspec.yaml
@@ -1,4 +1,4 @@
 name: platform_integration
 
 environment:
-  sdk: ">=2.12.0 <3.0.0"
+  sdk: ">=2.17.0-0 <3.0.0"
diff --git a/dev/integration_tests/abstract_method_smoke_test/pubspec.yaml b/dev/integration_tests/abstract_method_smoke_test/pubspec.yaml
index 4fe5dd089ed671eea1bf9469278180e9bb48073c..85c2aa3df9c3a662163393fe7b757cdce5b0cb2f 100644
--- a/dev/integration_tests/abstract_method_smoke_test/pubspec.yaml
+++ b/dev/integration_tests/abstract_method_smoke_test/pubspec.yaml
@@ -4,7 +4,7 @@ description: A new Flutter project.
 version: 1.0.0+1
 
 environment:
-  sdk: ">=2.12.0 <3.0.0"
+  sdk: ">=2.17.0-0 <3.0.0"
 
 dependencies:
   flutter:
diff --git a/dev/integration_tests/android_embedding_v2_smoke_test/pubspec.yaml b/dev/integration_tests/android_embedding_v2_smoke_test/pubspec.yaml
index d48bcab713ef17b3c46bf994db8ada676e5f7197..3298f6d4b4254aa30d902b27da4ff48477fc9700 100644
--- a/dev/integration_tests/android_embedding_v2_smoke_test/pubspec.yaml
+++ b/dev/integration_tests/android_embedding_v2_smoke_test/pubspec.yaml
@@ -14,7 +14,7 @@ description: A new Flutter project.
 version: 1.0.0+1
 
 environment:
-  sdk: ">=2.12.0 <3.0.0"
+  sdk: ">=2.17.0-0 <3.0.0"
 
 dependencies:
   flutter:
diff --git a/dev/integration_tests/channels/pubspec.yaml b/dev/integration_tests/channels/pubspec.yaml
index a7a0d2711344c8bcaab49b53a850934f6fdce419..37afcbc6bb9dae4ec8bcbf6225d1b20c3e7834f3 100644
--- a/dev/integration_tests/channels/pubspec.yaml
+++ b/dev/integration_tests/channels/pubspec.yaml
@@ -2,7 +2,7 @@ name: channels
 description: Integration test for platform channels.
 
 environment:
-  sdk: ">=2.12.0 <3.0.0"
+  sdk: ">=2.17.0-0 <3.0.0"
 
 dependencies:
   flutter:
diff --git a/dev/integration_tests/external_ui/pubspec.yaml b/dev/integration_tests/external_ui/pubspec.yaml
index 3193b18c125d9664995bd36b7ff1acce0ea3e690..eca8c3ca221a90adb7ac703c1a9ddd58ab74b835 100644
--- a/dev/integration_tests/external_ui/pubspec.yaml
+++ b/dev/integration_tests/external_ui/pubspec.yaml
@@ -2,7 +2,7 @@ name: external_ui
 description: A test of Flutter integrating external UIs.
 
 environment:
-  sdk: ">=2.12.0 <3.0.0"
+  sdk: ">=2.17.0-0 <3.0.0"
 
 dependencies:
   flutter:
diff --git a/dev/integration_tests/flavors/pubspec.yaml b/dev/integration_tests/flavors/pubspec.yaml
index 500393f89ce15cb5843625b5e868cc606320725a..553ccf441cf2d56bba0b52efc225cfa7177d0377 100644
--- a/dev/integration_tests/flavors/pubspec.yaml
+++ b/dev/integration_tests/flavors/pubspec.yaml
@@ -2,7 +2,7 @@ name: flavors
 description: Integration test for build flavors.
 
 environment:
-  sdk: ">=2.12.0 <3.0.0"
+  sdk: ">=2.17.0-0 <3.0.0"
 
 dependencies:
   flutter:
diff --git a/dev/integration_tests/gradle_deprecated_settings/pubspec.yaml b/dev/integration_tests/gradle_deprecated_settings/pubspec.yaml
index 72ee68b8108983bc2d6ba2d77d2161fd1c033679..2a22141c50722c1f4affabc3e7b00bb726cf3e3f 100644
--- a/dev/integration_tests/gradle_deprecated_settings/pubspec.yaml
+++ b/dev/integration_tests/gradle_deprecated_settings/pubspec.yaml
@@ -2,7 +2,7 @@ name: gradle_deprecated_settings
 description: Integration test for the current settings.gradle.
 
 environment:
-  sdk: ">=2.12.0 <3.0.0"
+  sdk: ">=2.17.0-0 <3.0.0"
 
 dependencies:
   flutter:
diff --git a/dev/integration_tests/ios_add2app_life_cycle/flutterapp/pubspec.yaml b/dev/integration_tests/ios_add2app_life_cycle/flutterapp/pubspec.yaml
index c3095985d347d5904603e796f5dc3c98009eb735..fb4afa8ac92dc5e7c8e4fb7489c14cf208b3f3ab 100644
--- a/dev/integration_tests/ios_add2app_life_cycle/flutterapp/pubspec.yaml
+++ b/dev/integration_tests/ios_add2app_life_cycle/flutterapp/pubspec.yaml
@@ -14,7 +14,7 @@ description: A new flutter module project.
 version: 1.0.0+1
 
 environment:
-  sdk: ">=2.12.0 <3.0.0"
+  sdk: ">=2.17.0-0 <3.0.0"
 
 dependencies:
   flutter:
diff --git a/dev/integration_tests/ios_app_with_extensions/pubspec.yaml b/dev/integration_tests/ios_app_with_extensions/pubspec.yaml
index c40284d033919810055b79ad1bb4f7ff1f0877b9..53706c2f92baad21f3012c61b6c0c45f1b75e334 100644
--- a/dev/integration_tests/ios_app_with_extensions/pubspec.yaml
+++ b/dev/integration_tests/ios_app_with_extensions/pubspec.yaml
@@ -13,7 +13,7 @@ name: ios_app_with_extensions
 version: 1.0.0+1
 
 environment:
-  sdk: ">=2.12.0 <3.0.0"
+  sdk: ">=2.17.0-0 <3.0.0"
 
 dependencies:
   flutter:
diff --git a/dev/integration_tests/ios_platform_view_tests/pubspec.yaml b/dev/integration_tests/ios_platform_view_tests/pubspec.yaml
index 4c8c7ca1188ef1ff752fdf3338e5b1e644c49c75..fb34e2b7cfd8bfeda5bdb7c6472d479d0ecc5db4 100644
--- a/dev/integration_tests/ios_platform_view_tests/pubspec.yaml
+++ b/dev/integration_tests/ios_platform_view_tests/pubspec.yaml
@@ -3,7 +3,7 @@ name: ios_platform_view_tests
 version: 1.0.0+1
 
 environment:
-  sdk: ">=2.12.0 <3.0.0"
+  sdk: ">=2.17.0-0 <3.0.0"
 
 dependencies:
   flutter:
diff --git a/dev/integration_tests/non_nullable/lib/main.dart b/dev/integration_tests/non_nullable/lib/main.dart
index 5a6849e1d57854ff78c58891741d5bfd26246c36..1b9ebd0a5bf6ba8d843c923fb1791cdfe9c3f517 100644
--- a/dev/integration_tests/non_nullable/lib/main.dart
+++ b/dev/integration_tests/non_nullable/lib/main.dart
@@ -11,7 +11,7 @@ void main() {
 }
 
 class MyApp extends StatelessWidget {
-  const MyApp({Key? key}) : super(key: key);
+  const MyApp({super.key});
 
   @override
   Widget build(BuildContext context) {
diff --git a/dev/integration_tests/non_nullable/pubspec.yaml b/dev/integration_tests/non_nullable/pubspec.yaml
index e7d769e4ab6158efbef47bc2828a9585b95ab853..ce1d5e6c27140dc232b0ea023c1dac95d5f62f74 100644
--- a/dev/integration_tests/non_nullable/pubspec.yaml
+++ b/dev/integration_tests/non_nullable/pubspec.yaml
@@ -5,7 +5,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
 version: 1.0.0+1
 
 environment:
-  sdk: ">=2.12.0-0 <3.0.0"
+  sdk: ">=2.17.0-0 <3.0.0"
 
 dependencies:
   flutter:
diff --git a/dev/integration_tests/platform_interaction/pubspec.yaml b/dev/integration_tests/platform_interaction/pubspec.yaml
index 3370b41343d64b58d47e72b8d229913c747ebdb6..0a21b77329ffe54ad74061c1198df233dd1fd883 100644
--- a/dev/integration_tests/platform_interaction/pubspec.yaml
+++ b/dev/integration_tests/platform_interaction/pubspec.yaml
@@ -2,7 +2,7 @@ name: platform_interaction
 description: Integration test for platform interactions.
 
 environment:
-  sdk: ">=2.12.0 <3.0.0"
+  sdk: ">=2.17.0-0 <3.0.0"
 
 dependencies:
   flutter:
diff --git a/dev/integration_tests/release_smoke_test/pubspec.yaml b/dev/integration_tests/release_smoke_test/pubspec.yaml
index 8b66896eff113efb564a0ec23fceeea8bf3c9e7f..5eab9847752bd81d310b0aee479777557a6b5827 100644
--- a/dev/integration_tests/release_smoke_test/pubspec.yaml
+++ b/dev/integration_tests/release_smoke_test/pubspec.yaml
@@ -1,7 +1,7 @@
 name: release_smoke_test
 
 environment:
-  sdk: ">=2.12.0 <3.0.0"
+  sdk: ">=2.17.0-0 <3.0.0"
 
 dependencies:
   flutter:
diff --git a/dev/integration_tests/ui/pubspec.yaml b/dev/integration_tests/ui/pubspec.yaml
index 792d50b86608da8c8b11f40bb513c259c78e3c71..7e1eea82e83b815787ce08f01c7dbf5b64f3862a 100644
--- a/dev/integration_tests/ui/pubspec.yaml
+++ b/dev/integration_tests/ui/pubspec.yaml
@@ -2,7 +2,7 @@ name: integration_ui
 description: Flutter non-plugin UI integration tests.
 
 environment:
-  sdk: ">=2.12.0 <3.0.0"
+  sdk: ">=2.17.0-0 <3.0.0"
 
 # The "image" dependency below seems to only be needed for test_driver/screenshot_test.dart
 # It can probably be removed, see the comment in that file.
diff --git a/dev/integration_tests/web/pubspec.yaml b/dev/integration_tests/web/pubspec.yaml
index b80ffa025102d05760fc529ccce86b2089a1c8a0..456540ab4ea049a200d1c28be1a3971bdcfd20d8 100644
--- a/dev/integration_tests/web/pubspec.yaml
+++ b/dev/integration_tests/web/pubspec.yaml
@@ -2,7 +2,7 @@ name: web_integration
 description: Integration test for web compilation.
 
 environment:
-  sdk: ">=2.12.0 <3.0.0"
+  sdk: ">=2.17.0-0 <3.0.0"
 
 flutter:
   assets:
diff --git a/dev/integration_tests/web_e2e_tests/pubspec.yaml b/dev/integration_tests/web_e2e_tests/pubspec.yaml
index b8b6e12a737a2489eef4d8d4c17c56486737d2f2..ea60037c251d255a0559c83f189d83b827297e54 100644
--- a/dev/integration_tests/web_e2e_tests/pubspec.yaml
+++ b/dev/integration_tests/web_e2e_tests/pubspec.yaml
@@ -2,7 +2,7 @@ name: web_e2e_tests
 publish_to: none
 
 environment:
-  sdk: ">=2.12.0 <3.0.0"
+  sdk: ">=2.17.0-0 <3.0.0"
 
 flutter:
   assets:
diff --git a/dev/manual_tests/pubspec.yaml b/dev/manual_tests/pubspec.yaml
index 2dde0adaf66ea6d591b4fe8333a8d45a64ed63a6..ad56c472c2938095f3a938c53b711c506c02a2ed 100644
--- a/dev/manual_tests/pubspec.yaml
+++ b/dev/manual_tests/pubspec.yaml
@@ -1,7 +1,7 @@
 name: manual_tests
 
 environment:
-  sdk: ">=2.12.0 <3.0.0"
+  sdk: ">=2.17.0-0 <3.0.0"
 
 dependencies:
   flutter:
diff --git a/dev/missing_dependency_tests/pubspec.yaml b/dev/missing_dependency_tests/pubspec.yaml
index 972673031b6a9157d4770f203bd6ff5ca073fba6..bd8d667b1ea541130b99ef927a37fc810d5869a6 100644
--- a/dev/missing_dependency_tests/pubspec.yaml
+++ b/dev/missing_dependency_tests/pubspec.yaml
@@ -1,7 +1,7 @@
 name: missing_dependency_tests
 
 environment:
-  sdk: ">=2.12.0-0 <3.0.0"
+  sdk: ">=2.17.0-0 <3.0.0"
 
 dependencies:
   flutter:
diff --git a/dev/tools/gen_defaults/lib/surface_tint.dart b/dev/tools/gen_defaults/lib/surface_tint.dart
index 38a76877d63b77f5703ab824b76a371f1e740bd6..a1874ad90ea1f991a384d6bd68c8ce48ae9326c3 100644
--- a/dev/tools/gen_defaults/lib/surface_tint.dart
+++ b/dev/tools/gen_defaults/lib/surface_tint.dart
@@ -5,7 +5,7 @@
 import 'template.dart';
 
 class SurfaceTintTemplate extends TokenTemplate {
-  const SurfaceTintTemplate(String fileName, Map<String, dynamic> tokens) : super(fileName, tokens);
+  const SurfaceTintTemplate(super.fileName, super.tokens);
 
   @override
   String generate() => '''
diff --git a/dev/tools/gen_defaults/lib/typography_template.dart b/dev/tools/gen_defaults/lib/typography_template.dart
index c8b123a4b61c907a0644b5b106eb98e4faea9005..7fc78fd7649b39e6c3680d853fa826abefa5779f 100644
--- a/dev/tools/gen_defaults/lib/typography_template.dart
+++ b/dev/tools/gen_defaults/lib/typography_template.dart
@@ -5,7 +5,7 @@
 import 'template.dart';
 
 class TypographyTemplate extends TokenTemplate {
-  const TypographyTemplate(String fileName, Map<String, dynamic> tokens) : super(fileName, tokens);
+  const TypographyTemplate(super.fileName, super.tokens);
 
   @override
   String generate() => '''
diff --git a/dev/tools/gen_defaults/pubspec.yaml b/dev/tools/gen_defaults/pubspec.yaml
index c83581bf7e06bc826404ba8655c33c18d00d661e..33cef08c1f0a58f8c6dd090795f90cad83480763 100644
--- a/dev/tools/gen_defaults/pubspec.yaml
+++ b/dev/tools/gen_defaults/pubspec.yaml
@@ -3,7 +3,7 @@ description: A command line script to generate Material component defaults from
 version: 1.0.0
 
 environment:
-  sdk: ">=2.12.0-0 <3.0.0"
+  sdk: ">=2.17.0-0 <3.0.0"
 
 dependencies:
 
diff --git a/dev/tools/gen_defaults/test/gen_defaults_test.dart b/dev/tools/gen_defaults/test/gen_defaults_test.dart
index 34fe86485940be0794442aa1b01e62ce5f2c5da0..e8ba9f160b6ef288d0021e21d7aee81aba6e5e08 100644
--- a/dev/tools/gen_defaults/test/gen_defaults_test.dart
+++ b/dev/tools/gen_defaults/test/gen_defaults_test.dart
@@ -120,7 +120,7 @@ static final String tokenBar = 'bar';
 }
 
 class TestTemplate extends TokenTemplate {
-  TestTemplate(String fileName, Map<String, dynamic> tokens) : super(fileName, tokens);
+  TestTemplate(super.fileName, super.tokens);
 
   @override
   String generate() => '''
diff --git a/dev/tools/gen_keycodes/lib/android_code_gen.dart b/dev/tools/gen_keycodes/lib/android_code_gen.dart
index 69c4ce58b74426a8c8b1bddbe0d063fe173cce47..197576f917590ce365b87d2063e429bd2c67c1e3 100644
--- a/dev/tools/gen_keycodes/lib/android_code_gen.dart
+++ b/dev/tools/gen_keycodes/lib/android_code_gen.dart
@@ -13,8 +13,7 @@ import 'utils.dart';
 /// Generates the key mapping for Android, based on the information in the key
 /// data structure given to it.
 class AndroidCodeGenerator extends PlatformCodeGenerator {
-  AndroidCodeGenerator(PhysicalKeyData physicalData, LogicalKeyData logicalData)
-    : super(physicalData, logicalData);
+  AndroidCodeGenerator(super.physicalData, super.logicalData);
 
   /// This generates the map of Android key codes to logical keys.
   String get _androidKeyCodeMap {
diff --git a/dev/tools/gen_keycodes/lib/base_code_gen.dart b/dev/tools/gen_keycodes/lib/base_code_gen.dart
index bb66b400c8ebb9eb112f648eb7ba5d457265d226..9dd0791af1eacda337870ccfa993251db56d5eec 100644
--- a/dev/tools/gen_keycodes/lib/base_code_gen.dart
+++ b/dev/tools/gen_keycodes/lib/base_code_gen.dart
@@ -48,8 +48,7 @@ abstract class BaseCodeGenerator {
 
 /// A code generator which also defines platform-based behavior.
 abstract class PlatformCodeGenerator extends BaseCodeGenerator {
-  PlatformCodeGenerator(PhysicalKeyData keyData, LogicalKeyData logicalData)
-    : super(keyData, logicalData);
+  PlatformCodeGenerator(super.keyData, super.logicalData);
 
   /// Absolute path to the output file.
   ///
diff --git a/dev/tools/gen_keycodes/lib/gtk_code_gen.dart b/dev/tools/gen_keycodes/lib/gtk_code_gen.dart
index bca173afe281f95a118108afa65927dbb1458d93..19478f476b467c5e6891d7bf8cfa5e82593d257e 100644
--- a/dev/tools/gen_keycodes/lib/gtk_code_gen.dart
+++ b/dev/tools/gen_keycodes/lib/gtk_code_gen.dart
@@ -15,13 +15,12 @@ import 'utils.dart';
 /// data structure given to it.
 class GtkCodeGenerator extends PlatformCodeGenerator {
   GtkCodeGenerator(
-    PhysicalKeyData keyData,
-    LogicalKeyData logicalData,
+    super.keyData,
+    super.logicalData,
     String modifierBitMapping,
     String lockBitMapping,
   ) : _modifierBitMapping = parseMapOfListOfString(modifierBitMapping),
-      _lockBitMapping = parseMapOfListOfString(lockBitMapping),
-      super(keyData, logicalData);
+      _lockBitMapping = parseMapOfListOfString(lockBitMapping);
 
   /// This generates the map of XKB scan codes to Flutter physical keys.
   String get _xkbScanCodeMap {
diff --git a/dev/tools/gen_keycodes/lib/ios_code_gen.dart b/dev/tools/gen_keycodes/lib/ios_code_gen.dart
index 41bd10ae468aa9583df5951660ac13e922b3e0d9..6a191681a2921628615099f255b10ffdd5976f58 100644
--- a/dev/tools/gen_keycodes/lib/ios_code_gen.dart
+++ b/dev/tools/gen_keycodes/lib/ios_code_gen.dart
@@ -28,8 +28,7 @@ const List<String> kSpecialLogicalKeys = <String>['CapsLock'];
 /// Generates the key mapping for iOS, based on the information in the key
 /// data structure given to it.
 class IOSCodeGenerator extends PlatformCodeGenerator {
-  IOSCodeGenerator(PhysicalKeyData keyData, LogicalKeyData logicalData)
-      : super(keyData, logicalData);
+  IOSCodeGenerator(super.keyData, super.logicalData);
 
   /// This generates the map of iOS key codes to physical keys.
   String get _scanCodeMap {
diff --git a/dev/tools/gen_keycodes/lib/keyboard_keys_code_gen.dart b/dev/tools/gen_keycodes/lib/keyboard_keys_code_gen.dart
index 70c32d9490d8bd4152d2efdbd781465eb581bc66..dbc7761a48d0d2ee33b02a22f410efcc3984e16a 100644
--- a/dev/tools/gen_keycodes/lib/keyboard_keys_code_gen.dart
+++ b/dev/tools/gen_keycodes/lib/keyboard_keys_code_gen.dart
@@ -49,7 +49,7 @@ class SynonymKeyInfo {
 /// Generates the keyboard_key.dart based on the information in the key data
 /// structure given to it.
 class KeyboardKeysCodeGenerator extends BaseCodeGenerator {
-  KeyboardKeysCodeGenerator(PhysicalKeyData keyData, LogicalKeyData logicalData) : super(keyData, logicalData);
+  KeyboardKeysCodeGenerator(super.keyData, super.logicalData);
 
   /// Gets the generated definitions of PhysicalKeyboardKeys.
   String get _physicalDefinitions {
diff --git a/dev/tools/gen_keycodes/lib/keyboard_maps_code_gen.dart b/dev/tools/gen_keycodes/lib/keyboard_maps_code_gen.dart
index 27eee82bbb2ade95604625422e298427ef43ffb0..a30e59859595582515479197900ffcbef7c0495a 100644
--- a/dev/tools/gen_keycodes/lib/keyboard_maps_code_gen.dart
+++ b/dev/tools/gen_keycodes/lib/keyboard_maps_code_gen.dart
@@ -37,8 +37,7 @@ bool _isDigit(String? char) {
 /// Generates the keyboard_maps.dart files, based on the information in the key
 /// data structure given to it.
 class KeyboardMapsCodeGenerator extends BaseCodeGenerator {
-  KeyboardMapsCodeGenerator(PhysicalKeyData keyData, LogicalKeyData logicalData)
-    : super(keyData, logicalData);
+  KeyboardMapsCodeGenerator(super.keyData, super.logicalData);
 
   List<PhysicalKeyEntry> get _numpadKeyData {
     return keyData.entries.where((PhysicalKeyEntry entry) {
diff --git a/dev/tools/gen_keycodes/lib/macos_code_gen.dart b/dev/tools/gen_keycodes/lib/macos_code_gen.dart
index 316a1e43cabb0f7c6dffc9a9c83032866be50c9e..a45752b4e7aa161a79b8cd838436900c2bc4c61f 100644
--- a/dev/tools/gen_keycodes/lib/macos_code_gen.dart
+++ b/dev/tools/gen_keycodes/lib/macos_code_gen.dart
@@ -28,8 +28,7 @@ const List<String> kSpecialLogicalKeys = <String>['CapsLock'];
 /// Generates the key mapping for macOS, based on the information in the key
 /// data structure given to it.
 class MacOSCodeGenerator extends PlatformCodeGenerator {
-  MacOSCodeGenerator(PhysicalKeyData keyData, LogicalKeyData logicalData)
-    : super(keyData, logicalData);
+  MacOSCodeGenerator(super.keyData, super.logicalData);
 
   /// This generates the map of macOS key codes to physical keys.
   String get _scanCodeMap {
diff --git a/dev/tools/gen_keycodes/lib/testing_key_codes_gen.dart b/dev/tools/gen_keycodes/lib/testing_key_codes_gen.dart
index 26081e1e58d0f912d713ebd6f6a2e2913fb97e60..15d938812b8c526d00d1e3b1eefd2c6c4e9e0456 100644
--- a/dev/tools/gen_keycodes/lib/testing_key_codes_gen.dart
+++ b/dev/tools/gen_keycodes/lib/testing_key_codes_gen.dart
@@ -16,7 +16,7 @@ String _toUpperCammel(String lowerCammel) {
 /// Generates the common/testing/key_codes.h based on the information in the key
 /// data structure given to it.
 class KeyCodesCcGenerator extends BaseCodeGenerator {
-  KeyCodesCcGenerator(PhysicalKeyData keyData, LogicalKeyData logicalData) : super(keyData, logicalData);
+  KeyCodesCcGenerator(super.keyData, super.logicalData);
 
   /// Gets the generated definitions of PhysicalKeyboardKeys.
   String get _physicalDefinitions {
diff --git a/dev/tools/gen_keycodes/lib/web_code_gen.dart b/dev/tools/gen_keycodes/lib/web_code_gen.dart
index 845d08f75595c02a45b91787150a3a96c6ff2033..09bf0705954d43fee92af49680cdfb92756d5090 100644
--- a/dev/tools/gen_keycodes/lib/web_code_gen.dart
+++ b/dev/tools/gen_keycodes/lib/web_code_gen.dart
@@ -14,11 +14,10 @@ import 'utils.dart';
 /// data structure given to it.
 class WebCodeGenerator extends PlatformCodeGenerator {
   WebCodeGenerator(
-    PhysicalKeyData keyData,
-    LogicalKeyData logicalData,
+    super.keyData,
+    super.logicalData,
     String logicalLocationMap,
-  ) : _logicalLocationMap = parseMapOfListOfNullableString(logicalLocationMap),
-      super(keyData, logicalData);
+  ) : _logicalLocationMap = parseMapOfListOfNullableString(logicalLocationMap);
 
   /// This generates the map of Web KeyboardEvent codes to logical key ids.
   String get _webLogicalKeyCodeMap {
diff --git a/dev/tools/gen_keycodes/lib/windows_code_gen.dart b/dev/tools/gen_keycodes/lib/windows_code_gen.dart
index cc83a4ea41aa23c3ad3be1439dc6ce5f406c25dd..7dacaeee89bd79b1a91ac0a9f74efea6cb1215e9 100644
--- a/dev/tools/gen_keycodes/lib/windows_code_gen.dart
+++ b/dev/tools/gen_keycodes/lib/windows_code_gen.dart
@@ -14,11 +14,10 @@ import 'utils.dart';
 /// data structure given to it.
 class WindowsCodeGenerator extends PlatformCodeGenerator {
   WindowsCodeGenerator(
-    PhysicalKeyData keyData,
-    LogicalKeyData logicalData,
+    super.keyData,
+    super.logicalData,
     String scancodeToLogical,
-  ) : _scancodeToLogical = parseMapOfString(scancodeToLogical),
-      super(keyData, logicalData);
+  ) : _scancodeToLogical = parseMapOfString(scancodeToLogical);
 
   /// This generates the map of Windows scan codes to physical keys.
   String get _windowsScanCodeMap {
diff --git a/dev/tools/gen_keycodes/pubspec.yaml b/dev/tools/gen_keycodes/pubspec.yaml
index 10b8ccc5c2e328611ac20b441c18171bdeb914ba..937014ed5c2297db8cb86576df1758424d2d3acc 100644
--- a/dev/tools/gen_keycodes/pubspec.yaml
+++ b/dev/tools/gen_keycodes/pubspec.yaml
@@ -2,7 +2,7 @@ name: gen_keycodes
 description: Generates keycode source files from various resources.
 
 environment:
-  sdk: ">=2.12.0-0 <3.0.0"
+  sdk: ">=2.17.0-0 <3.0.0"
 
 dependencies:
   args: 2.3.0
diff --git a/dev/tools/vitool/pubspec.yaml b/dev/tools/vitool/pubspec.yaml
index eaff786d42cafa2a470272f1cfa4c1a12c9b8e22..9d0fda123f3e9fad4ae126d3776965aaae91e864 100644
--- a/dev/tools/vitool/pubspec.yaml
+++ b/dev/tools/vitool/pubspec.yaml
@@ -4,7 +4,7 @@ version: 0.0.1
 homepage: https://flutter.dev
 
 environment:
-  sdk: ">=2.12.0 <3.0.0"
+  sdk: ">=2.17.0-0 <3.0.0"
 
 dependencies:
   flutter:
diff --git a/dev/tracing_tests/lib/test.dart b/dev/tracing_tests/lib/test.dart
index d99d77b92d02c6fd83b5dc0e4dd24cbbd9c9abf0..27a47689f679787c41b37d749298a6d7c231de2f 100644
--- a/dev/tracing_tests/lib/test.dart
+++ b/dev/tracing_tests/lib/test.dart
@@ -10,8 +10,8 @@ import 'package:flutter/widgets.dart';
 
 class TestWidget extends LeafRenderObjectWidget {
   const TestWidget({
-    Key? key,
-  }) : super(key: key);
+    super.key,
+  });
 
   @override
   RenderObject createRenderObject(BuildContext context) => RenderTest();
diff --git a/dev/tracing_tests/pubspec.yaml b/dev/tracing_tests/pubspec.yaml
index b52b7aaf16fe61022fe44a9a3d1df66929efbc5a..923924aa3212fbc459921cabb1dbb7c41d88c6d7 100644
--- a/dev/tracing_tests/pubspec.yaml
+++ b/dev/tracing_tests/pubspec.yaml
@@ -2,7 +2,7 @@ name: tracing_tests
 description: Various tests for tracing in flutter/flutter
 
 environment:
-  sdk: ">=2.12.0-0 <3.0.0"
+  sdk: ">=2.17.0-0 <3.0.0"
 
 dependencies:
   flutter:
diff --git a/dev/tracing_tests/test/inflate_widget_tracing_test.dart b/dev/tracing_tests/test/inflate_widget_tracing_test.dart
index ffaa0012ca7063f1b6788edac64722924a1eb692..61273b442d1cb3e3baddecec3639e1a205042ace 100644
--- a/dev/tracing_tests/test/inflate_widget_tracing_test.dart
+++ b/dev/tracing_tests/test/inflate_widget_tracing_test.dart
@@ -40,7 +40,7 @@ void main() {
 }
 
 class TestRoot extends StatefulWidget {
-  const TestRoot({Key? key}) : super(key: key);
+  const TestRoot({super.key});
 
   static late TestRootState state;
 
@@ -76,7 +76,7 @@ class TestRootState extends State<TestRoot> {
 }
 
 class TestChildWidget extends StatelessWidget {
-  const TestChildWidget({Key? key}) : super(key: key);
+  const TestChildWidget({super.key});
 
   @override
   Widget build(BuildContext context) {
diff --git a/dev/tracing_tests/test/timeline_test.dart b/dev/tracing_tests/test/timeline_test.dart
index 9b2df6d1f76105ddb54abbdd246368ac092d9843..2d1c37491a6e64c9c5d3ca43e516d5cb2e7098fb 100644
--- a/dev/tracing_tests/test/timeline_test.dart
+++ b/dev/tracing_tests/test/timeline_test.dart
@@ -22,7 +22,7 @@ final Set<String> interestingLabels = <String>{
 };
 
 class TestRoot extends StatefulWidget {
-  const TestRoot({ Key? key }) : super(key: key);
+  const TestRoot({ super.key });
 
   static late final TestRootState state;