From 26cbf526fc6357d714eb7f7311bb4bc68a16ff3a Mon Sep 17 00:00:00 2001 From: pq Date: Wed, 29 Oct 2025 11:15:02 -0700 Subject: [PATCH 1/5] Add new `Event.idePluginEvent` --- pkgs/unified_analytics/CHANGELOG.md | 1 + pkgs/unified_analytics/lib/src/enums.dart | 24 +++++++++++++++++++++ pkgs/unified_analytics/lib/src/event.dart | 16 ++++++++++++++ pkgs/unified_analytics/test/event_test.dart | 23 ++++++++++++++++++++ 4 files changed, 64 insertions(+) diff --git a/pkgs/unified_analytics/CHANGELOG.md b/pkgs/unified_analytics/CHANGELOG.md index 79e09f6a2..af4cff564 100644 --- a/pkgs/unified_analytics/CHANGELOG.md +++ b/pkgs/unified_analytics/CHANGELOG.md @@ -1,4 +1,5 @@ ## 8.0.8 +- Added `Event.idePluginEvent` for events reported by IDE plugins. - More data for `Event.analysisStatistics` for events from Dart Analysis Server. ## 8.0.7 diff --git a/pkgs/unified_analytics/lib/src/enums.dart b/pkgs/unified_analytics/lib/src/enums.dart index b3fb969b0..8de078322 100644 --- a/pkgs/unified_analytics/lib/src/enums.dart +++ b/pkgs/unified_analytics/lib/src/enums.dart @@ -69,6 +69,20 @@ enum DashEvent { toolOwner: DashTool.devtools, ), + // Events for IDE plugins + + intellijPluginEvent( + label: 'intellij_event', + description: 'Information for Intellij Plugin events', + toolOwner: DashTool.intellijPlugins, + ), + + vsCodePluginEvent( + label: 'vscode_event', + description: 'Information for VSCode Plugin events', + toolOwner: DashTool.vscodePlugins, + ), + // Events for the Flutter CLI appleUsageEvent( @@ -251,3 +265,13 @@ enum DevicePlatform { final String label; const DevicePlatform(this.label); } + +/// Supported IDEs. +enum IDE { + intellij(DashEvent.intellijPluginEvent), + vscode(DashEvent.vsCodePluginEvent), + ; + + final DashEvent event; + const IDE(this.event); +} diff --git a/pkgs/unified_analytics/lib/src/event.dart b/pkgs/unified_analytics/lib/src/event.dart index f3eaa0271..551b27c5c 100644 --- a/pkgs/unified_analytics/lib/src/event.dart +++ b/pkgs/unified_analytics/lib/src/event.dart @@ -794,6 +794,22 @@ final class Event { }, ); + /// Event that is sent from an IDE plugin. + /// + /// [name] - the name of the event. + /// + /// [ide] - the reporting [IDE]. + /// + /// [additionalData] - any additional data. + Event.idePluginEvent({ + required String name, + required IDE ide, + CustomMetrics? additionalData, + }) : this._(eventName: ide.event, eventData: { + 'name': name, + if (additionalData != null) ...additionalData.toMap(), + }); + /// Event that is emitted periodically to report the number of times each lint /// has been enabled. /// diff --git a/pkgs/unified_analytics/test/event_test.dart b/pkgs/unified_analytics/test/event_test.dart index 866a17f3c..54c6f5314 100644 --- a/pkgs/unified_analytics/test/event_test.dart +++ b/pkgs/unified_analytics/test/event_test.dart @@ -216,6 +216,29 @@ void main() { expect(constructedEvent.eventData.length, 1); }); + test('Event.idePluginEvent constructed', () { + Event generateEvent() => Event.idePluginEvent( + name: 'ide.command', + ide: IDE.intellij, + additionalData: _TestMetrics( + stringField: 'test', + intField: 100, + boolField: false, + ), + ); + + final constructedEvent = generateEvent(); + + expect(generateEvent, returnsNormally); + expect(constructedEvent.eventName, DashEvent.intellijPluginEvent); + + expect(constructedEvent.eventData['stringField'], 'test'); + expect(constructedEvent.eventData['intField'], 100); + expect(constructedEvent.eventData['boolField'], false); + expect(constructedEvent.eventData.containsKey('nullableField'), false); + expect(constructedEvent.eventData.length, 4); + }); + test('Event.lintUsageCount constructed', () { Event generateEvent() => Event.lintUsageCount( count: 5, From 98c65fe7031ceeaa56b5ecd216d88ea64f9f0f27 Mon Sep 17 00:00:00 2001 From: pq Date: Wed, 29 Oct 2025 11:45:23 -0700 Subject: [PATCH 2/5] test update --- pkgs/unified_analytics/lib/src/enums.dart | 2 +- pkgs/unified_analytics/test/event_test.dart | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/unified_analytics/lib/src/enums.dart b/pkgs/unified_analytics/lib/src/enums.dart index 8de078322..d87f678eb 100644 --- a/pkgs/unified_analytics/lib/src/enums.dart +++ b/pkgs/unified_analytics/lib/src/enums.dart @@ -73,7 +73,7 @@ enum DashEvent { intellijPluginEvent( label: 'intellij_event', - description: 'Information for Intellij Plugin events', + description: 'Information for IntelliJ Plugin events', toolOwner: DashTool.intellijPlugins, ), diff --git a/pkgs/unified_analytics/test/event_test.dart b/pkgs/unified_analytics/test/event_test.dart index 54c6f5314..b8b5ebcdb 100644 --- a/pkgs/unified_analytics/test/event_test.dart +++ b/pkgs/unified_analytics/test/event_test.dart @@ -802,7 +802,7 @@ void main() { // Change this integer below if your PR either adds or removes // an Event constructor - final eventsAccountedForInTests = 31; + final eventsAccountedForInTests = 32; expect(eventsAccountedForInTests, constructorCount, reason: 'If you added or removed an event constructor, ' 'ensure you have updated ' From 35f58ebb11c555d7add7532bcd05508f6fe0bc75 Mon Sep 17 00:00:00 2001 From: pq Date: Wed, 29 Oct 2025 12:43:56 -0700 Subject: [PATCH 3/5] Merged unpublished changes --- pkgs/unified_analytics/CHANGELOG.md | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/pkgs/unified_analytics/CHANGELOG.md b/pkgs/unified_analytics/CHANGELOG.md index af4cff564..6e4d3f4b4 100644 --- a/pkgs/unified_analytics/CHANGELOG.md +++ b/pkgs/unified_analytics/CHANGELOG.md @@ -1,15 +1,11 @@ -## 8.0.8 +## 9.0.0 - Added `Event.idePluginEvent` for events reported by IDE plugins. - More data for `Event.analysisStatistics` for events from Dart Analysis Server. - -## 8.0.7 - Added optional fields `contextWorkspaceType` and `numberOfPackagesInWorkspace` to `Event.contextStructure` for workspace and packages distribution from the Dart Analysis Server. - Removed `Event.contextStructure` optional fields `contextsFromBothFiles`, `contextsFromOptionsFiles`,`contextsFromPackagesFiles`,`contextsWithoutFiles`. - -## 8.0.6 - Added `Event.analysisStatistics` for events from Dart Analysis Server, about analysis. ## 8.0.5 From 3f0c5371f4d45d887fcab986fe64566f57cde0d9 Mon Sep 17 00:00:00 2001 From: pq Date: Wed, 29 Oct 2025 12:44:19 -0700 Subject: [PATCH 4/5] bump --- pkgs/unified_analytics/lib/src/constants.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/unified_analytics/lib/src/constants.dart b/pkgs/unified_analytics/lib/src/constants.dart index afebc5433..be970a292 100644 --- a/pkgs/unified_analytics/lib/src/constants.dart +++ b/pkgs/unified_analytics/lib/src/constants.dart @@ -87,7 +87,7 @@ const int kMaxLogFileSize = 25 * (1 << 20); const String kLogFileName = 'dart-flutter-telemetry.log'; /// The current version of the package, should be in line with pubspec version. -const String kPackageVersion = '8.0.8'; +const String kPackageVersion = '9.0.0'; /// The minimum length for a session. const int kSessionDurationMinutes = 30; From 8aaae6af687103316254a650c126036c4619295f Mon Sep 17 00:00:00 2001 From: pq Date: Wed, 29 Oct 2025 12:47:07 -0700 Subject: [PATCH 5/5] Bump for breaking changes --- pkgs/unified_analytics/pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/unified_analytics/pubspec.yaml b/pkgs/unified_analytics/pubspec.yaml index f88a71690..d2825b8cd 100644 --- a/pkgs/unified_analytics/pubspec.yaml +++ b/pkgs/unified_analytics/pubspec.yaml @@ -5,7 +5,7 @@ description: >- # LINT.IfChange # When updating this, keep the version consistent with the changelog and the # value in lib/src/constants.dart. -version: 8.0.8 +version: 9.0.0 # LINT.ThenChange(lib/src/constants.dart) repository: https://github.com/dart-lang/tools/tree/main/pkgs/unified_analytics issue_tracker: https://github.com/dart-lang/tools/issues?q=is%3Aissue+is%3Aopen+label%3Apackage%3Aunified_analytics