From 8762b31f0d0ffeea6449fd02740e9ce7acb32503 Mon Sep 17 00:00:00 2001
From: Elliott Brooks <21270878+elliette@users.noreply.github.com>
Date: Tue, 7 Jan 2025 13:10:08 -0800
Subject: [PATCH] Prepare for release 2.42.0 (#8673)

---
 flutter-candidate.txt                         |   2 +-
 .../benchmark/web_bundle_size_test.dart       |   2 +-
 packages/devtools_app/lib/devtools.dart       |   2 +-
 .../debugger/program_explorer_controller.dart |   3 +-
 .../debugger/program_explorer_model.dart      |   3 +-
 .../screens/profiler/cpu_profile_model.dart   |  11 ++---
 .../inbound_references_tree.dart              |   5 ++-
 .../vm_developer_common_widgets.dart          |   3 +-
 .../src/shared/charts/chart_controller.dart   |  24 +++++------
 .../lib/src/shared/framework/screen.dart      |   4 +-
 .../lib/src/shared/memory/classes.dart        |   3 +-
 .../vs_code/devtools/devtools_view.dart       |  10 ++---
 packages/devtools_app/pubspec.yaml            |   2 +-
 .../release_notes/NEXT_RELEASE_NOTES.md       |  40 ------------------
 .../goldens/settings_dialog_default.png       | Bin 12485 -> 12488 bytes
 .../goldens/settings_dialog_modified.png      | Bin 12725 -> 12726 bytes
 .../memory/heap/heap_graph_fakes.dart         |   6 +--
 .../lib/src/mocks/fake_service_manager.dart   |   4 +-
 tool/lib/commands/run.dart                    |   2 +-
 tool/lib/model.dart                           |   8 ++--
 20 files changed, 42 insertions(+), 92 deletions(-)

diff --git a/flutter-candidate.txt b/flutter-candidate.txt
index de3483f7a70..6a59b560a2e 100644
--- a/flutter-candidate.txt
+++ b/flutter-candidate.txt
@@ -1 +1 @@
-2eee054d41f641db335f35797d39fc77ed124430
+434ca754e3b972725938d72b83bfa84f083fb0a7
diff --git a/packages/devtools_app/benchmark/web_bundle_size_test.dart b/packages/devtools_app/benchmark/web_bundle_size_test.dart
index 9f8f12a3fe8..933d9f23a90 100644
--- a/packages/devtools_app/benchmark/web_bundle_size_test.dart
+++ b/packages/devtools_app/benchmark/web_bundle_size_test.dart
@@ -11,7 +11,7 @@ import 'package:path/path.dart' as path;
 import 'package:test/test.dart';
 
 // Benchmark size in kB.
-const bundleSizeBenchmark = 5200;
+const bundleSizeBenchmark = 5400;
 const gzipBundleSizeBenchmark = 1550;
 
 void main() {
diff --git a/packages/devtools_app/lib/devtools.dart b/packages/devtools_app/lib/devtools.dart
index c1d2ce5dd8b..dc1bc0b02be 100644
--- a/packages/devtools_app/lib/devtools.dart
+++ b/packages/devtools_app/lib/devtools.dart
@@ -10,4 +10,4 @@
 /// Note: a regexp in the `dt update-version' command logic matches the constant
 /// declaration `const version =`. If you change the declaration you must also
 /// modify the regex in the `dt update-version' command logic.
-const version = '2.42.0-dev.1';
+const version = '2.42.0';
diff --git a/packages/devtools_app/lib/src/screens/debugger/program_explorer_controller.dart b/packages/devtools_app/lib/src/screens/debugger/program_explorer_controller.dart
index 99f0ab25d64..2332f1b363b 100644
--- a/packages/devtools_app/lib/src/screens/debugger/program_explorer_controller.dart
+++ b/packages/devtools_app/lib/src/screens/debugger/program_explorer_controller.dart
@@ -352,8 +352,7 @@ class ProgramExplorerController extends DisposableController
     final targetScript = switch (object) {
       ClassRef(:final location?) ||
       FieldRef(:final location?) ||
-      FuncRef(:final location?) =>
-        location.script,
+      FuncRef(:final location?) => location.script,
       Code(:final function?) => function.location?.script,
       ScriptRef() => object,
       _ => null,
diff --git a/packages/devtools_app/lib/src/screens/debugger/program_explorer_model.dart b/packages/devtools_app/lib/src/screens/debugger/program_explorer_model.dart
index 282ddad5751..22571c639ad 100644
--- a/packages/devtools_app/lib/src/screens/debugger/program_explorer_model.dart
+++ b/packages/devtools_app/lib/src/screens/debugger/program_explorer_model.dart
@@ -333,8 +333,7 @@ class VMServiceObjectNode extends TreeNode<VMServiceObjectNode> {
     final sourceLocation = switch (object) {
       FieldRef(:final location) ||
       FuncRef(:final location) ||
-      ClassRef(:final location) =>
-        location,
+      ClassRef(:final location) => location,
       _ => null,
     };
 
diff --git a/packages/devtools_app/lib/src/screens/profiler/cpu_profile_model.dart b/packages/devtools_app/lib/src/screens/profiler/cpu_profile_model.dart
index 93ca122af2d..791cff6cb8c 100644
--- a/packages/devtools_app/lib/src/screens/profiler/cpu_profile_model.dart
+++ b/packages/devtools_app/lib/src/screens/profiler/cpu_profile_model.dart
@@ -1254,13 +1254,10 @@ class _CpuProfileTimelineTree {
   String? get resolvedUrl =>
       isCodeTree && _function is vm_service.FuncRef?
           ?
-              // TODO(bkonyi): not sure if this is a resolved URL or not, but it's not
-              // critical since this is only displayed when VM developer mode is
-              // enabled.
-              (_function as vm_service.FuncRef?)
-              ?.location
-              ?.script
-              ?.uri
+          // TODO(bkonyi): not sure if this is a resolved URL or not, but it's not
+          // critical since this is only displayed when VM developer mode is
+          // enabled.
+          (_function as vm_service.FuncRef?)?.location?.script?.uri
           : samples.functions![index].resolvedUrl;
 
   int? get sourceLine {
diff --git a/packages/devtools_app/lib/src/screens/vm_developer/object_inspector/inbound_references_tree.dart b/packages/devtools_app/lib/src/screens/vm_developer/object_inspector/inbound_references_tree.dart
index cedffd08024..6e52b5a9636 100644
--- a/packages/devtools_app/lib/src/screens/vm_developer/object_inspector/inbound_references_tree.dart
+++ b/packages/devtools_app/lib/src/screens/vm_developer/object_inspector/inbound_references_tree.dart
@@ -35,8 +35,9 @@ class InboundReferencesTreeNode extends TreeNode<InboundReferencesTreeNode> {
     }
 
     return switch (objectRef) {
-      ClassRef(:final name) || FuncRef(:final name) || FieldRef(:final name) =>
-        name,
+      ClassRef(:final name) ||
+      FuncRef(:final name) ||
+      FieldRef(:final name) => name,
       LibraryRef(:final name, :final uri) => name.isNullOrEmpty ? uri : name,
       ScriptRef(:final uri) => fileNameFromUri(uri),
       InstanceRef(:final name, :final classRef) =>
diff --git a/packages/devtools_app/lib/src/screens/vm_developer/vm_developer_common_widgets.dart b/packages/devtools_app/lib/src/screens/vm_developer/vm_developer_common_widgets.dart
index aedee031378..3c0b63e7b35 100644
--- a/packages/devtools_app/lib/src/screens/vm_developer/vm_developer_common_widgets.dart
+++ b/packages/devtools_app/lib/src/screens/vm_developer/vm_developer_common_widgets.dart
@@ -641,8 +641,7 @@ class VmServiceObjectLink extends StatelessWidget {
       FieldRef(:final name) ||
       FuncRef(:final name) ||
       CodeRef(:final name) ||
-      TypeArgumentsRef(:final name) =>
-        name,
+      TypeArgumentsRef(:final name) => name,
       // If a class has an empty name, it's a special "top level" class.
       ClassRef(:final name) => name!.isEmpty ? 'top-level-class' : name,
       LibraryRef(:final uri, :final name) =>
diff --git a/packages/devtools_app/lib/src/shared/charts/chart_controller.dart b/packages/devtools_app/lib/src/shared/charts/chart_controller.dart
index 65078e178ac..603e105d1ed 100644
--- a/packages/devtools_app/lib/src/shared/charts/chart_controller.dart
+++ b/packages/devtools_app/lib/src/shared/charts/chart_controller.dart
@@ -221,19 +221,17 @@ class ChartController extends DisposableController
       if (lastDT.difference(firstDT).inMinutes >= duration.inMinutes) {
         // Grab the duration in minutes passed in.
         final startOfLastNMinutes =
-            // We need this cast to be able to return null if nothing is found.
-            // ignore: unnecessary_cast
-            timestamps
-            .reversed
-            .firstWhereOrNull((timestamp) {
-              final currentDT = DateTime.fromMillisecondsSinceEpoch(timestamp);
-              final diff = lastDT.difference(currentDT);
-              if (diff.inMinutes >= duration.inMinutes) {
-                return true;
-              }
-
-              return false;
-            });
+        // We need this cast to be able to return null if nothing is found.
+        // ignore: unnecessary_cast
+        timestamps.reversed.firstWhereOrNull((timestamp) {
+          final currentDT = DateTime.fromMillisecondsSinceEpoch(timestamp);
+          final diff = lastDT.difference(currentDT);
+          if (diff.inMinutes >= duration.inMinutes) {
+            return true;
+          }
+
+          return false;
+        });
 
         final ticksVisible =
             startOfLastNMinutes != null
diff --git a/packages/devtools_app/lib/src/shared/framework/screen.dart b/packages/devtools_app/lib/src/shared/framework/screen.dart
index 8d5c93ec6fb..e43b1af9953 100644
--- a/packages/devtools_app/lib/src/shared/framework/screen.dart
+++ b/packages/devtools_app/lib/src/shared/framework/screen.dart
@@ -393,7 +393,9 @@ abstract class Screen {
                   size:
                       iconAsset != null
                           // Add 1.0 to adjust for margins on the screen icon assets.
-                          ? scaleByFontFactor(defaultIconSizeBeforeScaling + 1.0)
+                          ? scaleByFontFactor(
+                            defaultIconSizeBeforeScaling + 1.0,
+                          )
                           : defaultIconSize,
                 ),
               if (title.isNotEmpty)
diff --git a/packages/devtools_app/lib/src/shared/memory/classes.dart b/packages/devtools_app/lib/src/shared/memory/classes.dart
index 5dc0c498eab..f7d4f15d7c5 100644
--- a/packages/devtools_app/lib/src/shared/memory/classes.dart
+++ b/packages/devtools_app/lib/src/shared/memory/classes.dart
@@ -194,8 +194,7 @@ class SingleClassData extends ClassData {
 
   @override
   // ignore: avoid-explicit-type-declaration, required to override base class.
-  final ObjectSet
-  objects = ObjectSet();
+  final ObjectSet objects = ObjectSet();
 
   @override
   final byPath = <PathFromRoot, ObjectSetStats>{};
diff --git a/packages/devtools_app/lib/src/standalone_ui/vs_code/devtools/devtools_view.dart b/packages/devtools_app/lib/src/standalone_ui/vs_code/devtools/devtools_view.dart
index fbc62f73524..eff55643700 100644
--- a/packages/devtools_app/lib/src/standalone_ui/vs_code/devtools/devtools_view.dart
+++ b/packages/devtools_app/lib/src/standalone_ui/vs_code/devtools/devtools_view.dart
@@ -177,12 +177,10 @@ class SidebarDevToolsScreens extends StatelessWidget {
       ScreenMetaData.debugger ||
       ScreenMetaData.vmTools ||
       // This screen will be removed from the first party DevTools screens soon.
-          // If the user depends on package:provider, the provider extension should
-          // show up in the DevTools extensions list instead.
-          ScreenMetaData
-          .provider ||
-      ScreenMetaData.simple =>
-        false,
+      // If the user depends on package:provider, the provider extension should
+      // show up in the DevTools extensions list instead.
+      ScreenMetaData.provider ||
+      ScreenMetaData.simple => false,
       _ => true,
     };
   }
diff --git a/packages/devtools_app/pubspec.yaml b/packages/devtools_app/pubspec.yaml
index dcae8ce0a42..249e60c13cd 100644
--- a/packages/devtools_app/pubspec.yaml
+++ b/packages/devtools_app/pubspec.yaml
@@ -4,7 +4,7 @@ publish_to: none
 
 # Note: this version should only be updated by running the 'dt update-version'
 # command that updates the version here and in 'devtools.dart'.
-version: 2.42.0-dev.1
+version: 2.42.0
 
 repository: https://github.com/flutter/devtools/tree/master/packages/devtools_app
 
diff --git a/packages/devtools_app/release_notes/NEXT_RELEASE_NOTES.md b/packages/devtools_app/release_notes/NEXT_RELEASE_NOTES.md
index 1f9b806720e..19325a0fb58 100644
--- a/packages/devtools_app/release_notes/NEXT_RELEASE_NOTES.md
+++ b/packages/devtools_app/release_notes/NEXT_RELEASE_NOTES.md
@@ -20,46 +20,6 @@ To learn more about DevTools, check out the
 * Enabled auto-refreshes of the widget tree on hot-reloads and navigation events by default. This can be disabled in the inspector settings. - [#8646](https://github.com/flutter/devtools/pull/8646)
     ![Auto-refresh setting](images/inspector_auto_refresh_setting.png "Inspector auto-refresh setting")
 
-## Performance updates
-
-TODO: Remove this section if there are not any general updates.
-
-## CPU profiler updates
-
-TODO: Remove this section if there are not any general updates.
-
-## Memory updates
-
-TODO: Remove this section if there are not any general updates.
-
-## Debugger updates
-
-TODO: Remove this section if there are not any general updates.
-
-## Network profiler updates
-
-TODO: Remove this section if there are not any general updates.
-
-## Logging updates
-
-TODO: Remove this section if there are not any general updates.
-
-## App size tool updates
-
-TODO: Remove this section if there are not any general updates.
-
-## Deep links tool updates
-
-TODO: Remove this section if there are not any general updates.
-
-## VS Code Sidebar updates
-
-TODO: Remove this section if there are not any general updates.
-
-## DevTools Extension updates
-
-TODO: Remove this section if there are not any general updates.
-
 ## Full commit history
 
 To find a complete list of changes in this release, check out the
diff --git a/packages/devtools_app/test/test_infra/goldens/settings_dialog_default.png b/packages/devtools_app/test/test_infra/goldens/settings_dialog_default.png
index 85eafe962e8931e1adc37a988b8c9adbebc2d446..e394284c04f7979ea057798494420df87d39a50d 100644
GIT binary patch
delta 3008
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

delta 4023
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
TyF9%Fe!$>%y6j+X$DjQL2-=`4

diff --git a/packages/devtools_app/test/test_infra/goldens/settings_dialog_modified.png b/packages/devtools_app/test/test_infra/goldens/settings_dialog_modified.png
index 2d48e121803b702ee042b2ca9f2acf4f534045bf..5439001a8accb58cf486fc5a3c43652fe2423e6e 100644
GIT binary patch
delta 3221
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

delta 3216
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

diff --git a/packages/devtools_app/test/test_infra/test_data/memory/heap/heap_graph_fakes.dart b/packages/devtools_app/test/test_infra/test_data/memory/heap/heap_graph_fakes.dart
index d33a587124c..ec6714acba0 100644
--- a/packages/devtools_app/test/test_infra/test_data/memory/heap/heap_graph_fakes.dart
+++ b/packages/devtools_app/test/test_infra/test_data/memory/heap/heap_graph_fakes.dart
@@ -24,16 +24,14 @@ class FakeHeapSnapshotGraph extends Fake implements HeapSnapshotGraph {
 
   @override
   // ignore: avoid-explicit-type-declaration, required to override base class.
-  final List<HeapSnapshotClass>
-  classes = <HeapSnapshotClass>[
+  final List<HeapSnapshotClass> classes = <HeapSnapshotClass>[
     _FakeHeapSnapshotClass(),
     _FakeHeapSnapshotClass.weak(),
   ];
 
   @override
   // ignore: avoid-explicit-type-declaration, required to override base class.
-  final List<FakeSnapshotObject>
-  objects = <FakeSnapshotObject>[
+  final List<FakeSnapshotObject> objects = <FakeSnapshotObject>[
     _sentinelObject,
     FakeSnapshotObject(shallowSize: 1), // root
   ];
diff --git a/packages/devtools_test/lib/src/mocks/fake_service_manager.dart b/packages/devtools_test/lib/src/mocks/fake_service_manager.dart
index d430dd1d715..33af9d074d3 100644
--- a/packages/devtools_test/lib/src/mocks/fake_service_manager.dart
+++ b/packages/devtools_test/lib/src/mocks/fake_service_manager.dart
@@ -180,8 +180,8 @@ class FakeServiceManager extends Fake
 
   @override
   // ignore: avoid-explicit-type-declaration, required to override base class.
-  final FakeServiceExtensionManager
-  serviceExtensionManager = FakeServiceExtensionManager();
+  final FakeServiceExtensionManager serviceExtensionManager =
+      FakeServiceExtensionManager();
 
   @override
   ConnectedApp? connectedApp = MockConnectedApp();
diff --git a/tool/lib/commands/run.dart b/tool/lib/commands/run.dart
index 1ceade6b621..e0ecc6f7454 100644
--- a/tool/lib/commands/run.dart
+++ b/tool/lib/commands/run.dart
@@ -10,7 +10,7 @@ import '../utils.dart';
 
 /// Runs the DevTools web app in debug mode with `flutter run` and connects it
 /// to a locally running instance of the DevTools server.
-/// 
+///
 /// To open a debug connection to the DevTools server, pass the `--debug-server`
 /// flag to this command.
 class RunCommand extends Command {
diff --git a/tool/lib/model.dart b/tool/lib/model.dart
index bfa84cd28f8..8d481e6f8f9 100644
--- a/tool/lib/model.dart
+++ b/tool/lib/model.dart
@@ -122,10 +122,10 @@ class DevToolsRepo {
       } else {
         final ancestor = result.firstWhereOrNull(
           (p) =>
-              // Remove the last segment of [dir]'s pathSegments to ensure we
-              // are only checking ancestors and not sibling directories with
-              // similar names.
-              (List.from(dir.uri.pathSegments)..safeRemoveLast())
+          // Remove the last segment of [dir]'s pathSegments to ensure we
+          // are only checking ancestors and not sibling directories with
+          // similar names.
+          (List.from(dir.uri.pathSegments)..safeRemoveLast())
               // TODO(kenz): this may cause issues for Windows paths.
               .join('/')
               .startsWith(p.packagePath),