8.0.8
- 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
- Fix
Event.flutterWasmDryRun fields.
8.0.4
- Changed
Event.flutterWasmDryRun to track dart2wasm dry run metrics from Flutter.
8.0.3
- Changed
Event.contextStructure to make optional data that's no longer being collected and to add data about the size of library cycles.
8.0.2
- Added
Event.dartMCPEvent for events from the dart mcp-server command.
8.0.1
- Added
Event.flutterInjectDarwinPlugins event for plugins injected into an iOS/macOS project.
8.0.0
- Send
enabled_features as an event parameter in all events rather than as a user property.
7.0.2
- Allow
LogStatsFile to contain more granular event types (specifically property_editor events).
7.0.1
- Fixed
UnsupportedError thrown when Event.exception is called without providing a value for args.
7.0.0
- Added a required parameter
screen to the Event.devtoolsEvent constructor. - Added an optional parameter
additionalMetrics to the Event.devtoolsEvent constructor. - Added
CustomMetrics class for unified_analytics clients to define custom event metrics. - Removed parameters
uiDurationMicros, rasterDurationMicros, shaderCompilationDurationMicros, traceEventCount, cpuSampleCount, cpuStackDepth, heapDiffObjectsBefore, heapDiffObjectsAfter, heapObjectsTotal, rootSetCount, rowCount, inspectorTreeControllerId, androidAppId, iosBundleId from the Event.devtoolsEvent constructor.
6.1.5
- Remove any
data entries with a null value in the Event.exception constructor.
6.1.4
- Fix formatting and remove dependency on
package:intl. - Remove direct usage of
package:path in favor of package:file. - Added
androidAppId and iosBundleId to the Event.devtoolsEvent constructor.
6.1.3
- Require Dart 3.4.
- Added
isWasm parameter to the Event.devtoolsEvent constructor. - Added an optional parameter
data to the Event.exception constructor.
6.1.2
- Avoid opening large telemetry log files to prevent out of memory errors.
6.1.1
- Fixed bug where calling
Analytics.send could result in a FileSystemException when unable to write to a log file.
6.1.0
- Added new event constructor
Event.devtoolsEvent for the single devtools event with a new enum value DashEvent.devtoolsEvent
6.0.0
- Consolidate
Session functionality into UserProperty to prevent race condition crash where session logic crashed before initializing UserProperty - Get rid of
late variables throughout implementation class, AnalyticsImpl - Any error events (
Event.analyticsException) encountered within package will be sent when invoking Analytics.close; replacing ErrorHandler functionality - Exposing new method for
FakeAnalytics.sendPendingErrorEvents to send error events on command - Added
Event.fromJson static method to generate instance of Event from JSON - Remove unused parameters
measurementId and apiSecret from the Analytics.test constructor - Remove
Analytics.test factory constructor in favor of Analytics.fake static method to return a FakeAnalytics instance - Remove
FakeAnalytics default constructor in favor of Analytics.fake
5.8.8
- Bug fix rewrite the other call site for the session file
5.8.7
- Bug fix to rewrite the
last_ping key into the session json file
5.8.6
- Refactored session handler class to use the last modified timestamp as the last ping value to prevent writing to file with each send
- Bumping intl package to 0.19.0 to fix version solving issue with flutter_tools
5.8.5
- Fix late initialization error for
Analytics.userProperty bug
5.8.4
- Exporting all enums from
enums.dart through lib/testing.dart
5.8.3
- Fix bug when parsing session json file
5.8.2
- Added new event
Event.analyticsException to track internal errors for this package - Redirecting the
Analytics.test factory to return an instance of FakeAnalytics - Exposing new helper function that can be used to parse the Dart SDK version
5.8.1
- Refactor logic for
okToSend and shouldShowMessage - Check devtools config file for legacy opt out status
5.8.0
- Fix template string for consent message
- Add
enabledFeatures to constructor to collect features enabled for each dash tool
5.7.0
- Added the
Event.commandUsageValues constructor
5.6.0
- Added the
Event.timing constructor
5.5.0
- Edit to the
Event.flutterCommandResult constructor to add commandHasTerminal - Added timeout for
Analytics.setTelemetry to prevent the clients from hanging - Added the
Event.appleUsageEvent constructor - Added the
Event.exception constructor
5.4.0
- Added the
Event.codeSizeAnalysis constructor
5.3.0
- User property “host_os_version” added to provide detail version information about the host
- User property “locale” added to provide language related information
- User property “client_ide” (optional) added to provide the IDE used by the Dash tool using this package, if applicable
- Added the
Event.flutterCommandResult constructor
5.2.0
- Added the
Event.hotRunnerInfo constructor
5.1.0
- Added the
Event.flutterBuildInfo constructor
5.0.0
- Update to the latest version of
package:dart_flutter_team_lints - Using internal futures list to store send events
- Added the
Event.doctorValidatorResult constructor
4.0.1
- Adding constant for the NoOpAnalytics instance client ID to enable clients to reference it in tests
4.0.0
- Enhanced
LogFileStats data to include information about flutter channel counts and tool counts - Added new method to suppress telemetry collection temporarily for current invocation via
analytics.suppressTelemetry() - Added
SurveyHandler feature to Analytics instance to fetch available surveys from remote endpoint to display to users along with functionality to dismiss them - Surveys will be disabled for any users that have been opted out
- Shipping
FakeAnalytics for clients of this tool that need to ensure workflows are sending events in tests - Adding getter to
Analytics instance to fetch the client ID being sent to GA4
3.0.0
- Allow latest package versions for
file and http - Introducing new
Event class that will standardize what event data can be sent with each event - Deprecating the
sendEvent method in favor of the send method
2.0.0
- Refactoring
dateStamp utility function to be defined in utils.dart instead of having static methods in Initializer and ConfigHandler - Remove the
pddFlag now that the revisions to the PDD have been finalized to persist data in the log file and session json file - Opting out will now delete the contents of the CLIENT ID, session json, and log files; opting back in will regenerate them as events send
enableAsserts parameter added to constructors for Analytics to check body of POST request for Google Analytics 4 limitations- Now checking if write permissions are enabled for user's home directory, if not allowed,
NoOpAnalytics returned by Analytics factory constructor
1.1.0
- Added a
okToSend getter so that clients can easily and accurately check the state of the consent mechanism. - Initialize the config file with user opted out if user was opted out in legacy Flutter and Dart analytics
1.0.1
- Error handling on the
analytics.sendEvent(...) method to silently error out and return a 500 http status code to let tools using this package know Google Analytics did not receive the event (all successful requests will have a status code of 2xx provided by Google Analytics)
1.0.0
- Error handling functionality added to prevent malformed session json data from causing a crash
- Creating a new analytics constructor to point to a test instance of Google Analytics for developers
- Align supported tool list with PDD
- Exposing a new instance method that will need to be invoked when a client has successfully shown the consent message to the user
clientShowedMessage() - Adding and incrementing a tool's version will automatically use the current consent message version instead of incrementing by 1
- Default constructor has disabled the usage of local log file and session json file until revisions have landed to the privacy document
0.1.2
- Implemented fake Google Analytics Client for
Analytics.test(...) constructor; marked with visible for testing annotation
0.1.1
- Bumping intl package to 0.18.0 to fix version solving issue with flutter_tools
- LogFileStats includes more information about how many events are persisted and total count of how many times each event was sent
0.1.0