From c9c877967284b392d81cc4e25babd93afd3c1353 Mon Sep 17 00:00:00 2001 From: Stuart Morgan Date: Thu, 19 Mar 2026 16:30:17 -0400 Subject: [PATCH 1/6] Add the new analysis options --- analysis_options.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/analysis_options.yaml b/analysis_options.yaml index 7a97623b839..b607bd5e3e6 100644 --- a/analysis_options.yaml +++ b/analysis_options.yaml @@ -196,6 +196,7 @@ linter: - type_annotate_public_apis - type_init_formals - type_literal_in_constant_pattern + - unintended_html_in_doc_comment # DIFFERENT FROM FLUTTER/FLUTTER: Disable due to an issue that has been fixed, so just hasn't been adopted there yet. - unawaited_futures # DIFFERENT FROM FLUTTER/FLUTTER: It's disabled there for "too many false positives"; that's not an issue here, and missing awaits have caused production issues in plugins. - unnecessary_await_in_return - unnecessary_brace_in_string_interps From 166523bf3cf938bf8401a43edba6dcc95e668827 Mon Sep 17 00:00:00 2001 From: Stuart Morgan Date: Thu, 19 Mar 2026 16:34:11 -0400 Subject: [PATCH 2/6] Fix violations --- .../pigeons/camerax_library.dart | 2 +- .../integration_test/helpers/mocks.dart | 47 +++++++++---------- .../pigeons/messages.dart | 6 +-- packages/metrics_center/lib/src/skiaperf.dart | 2 +- packages/pigeon/lib/src/ast.dart | 4 +- .../pigeon/lib/src/dart/dart_generator.dart | 4 ++ .../pigeon/lib/src/java/java_generator.dart | 2 + .../lib/src/flutter/argument_decoders.dart | 5 +- .../lib/src/shared_preferences_async.dart | 10 ++-- .../pigeons/messages.dart | 12 ++--- .../pigeons/messages_async.dart | 16 +++---- ..._preferences_async_platform_interface.dart | 14 +++--- .../example/lib/legacy/web_view.dart | 2 +- .../lib/src/legacy/types/webview_cookie.dart | 2 +- .../example/lib/legacy/web_view.dart | 2 +- 15 files changed, 67 insertions(+), 63 deletions(-) diff --git a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart index 2aa23c062bc..611157f6524 100644 --- a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart +++ b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart @@ -112,7 +112,7 @@ enum CameraStateType { unknown, } -/// The types (T) properly wrapped to be used as a LiveData. +/// The types (T) properly wrapped to be used as a `LiveData`. enum LiveDataSupportedType { cameraState, zoomState } /// Immutable class for describing the range of two integer values. diff --git a/packages/camera/camera_web/example/integration_test/helpers/mocks.dart b/packages/camera/camera_web/example/integration_test/helpers/mocks.dart index aafdcc0895a..fa5c35214e9 100644 --- a/packages/camera/camera_web/example/integration_test/helpers/mocks.dart +++ b/packages/camera/camera_web/example/integration_test/helpers/mocks.dart @@ -8,15 +8,12 @@ import 'dart:async'; import 'dart:js_interop'; import 'dart:ui'; -// ignore_for_file: implementation_imports import 'package:camera_web/src/camera.dart'; import 'package:camera_web/src/camera_service.dart'; import 'package:camera_web/src/shims/dart_js_util.dart'; import 'package:camera_web/src/types/types.dart'; import 'package:mockito/annotations.dart'; import 'package:mockito/mockito.dart'; -// TODO(srujzs): This is exported in `package:web` 0.6.0. Remove this when it is available. -import 'package:web/src/helpers/events/streams.dart'; import 'package:web/web.dart' as web; @GenerateNiceMocks(>[ @@ -80,12 +77,12 @@ class MockScreen { @JSExport() class MockScreenOrientation { - /// JSPromise Function(web.OrientationLockType orientation) + /// `JSPromise Function(web.OrientationLockType orientation)` JSFunction lock = (web.OrientationLockType orientation) { return Future.value().toJS; }.toJS; - /// void Function() + /// `void Function()` late JSFunction unlock; late web.OrientationType type; } @@ -97,7 +94,7 @@ class MockDocument { @JSExport() class MockElement { - /// JSPromise Function([FullscreenOptions options]) + /// `JSPromise Function([FullscreenOptions options])` JSFunction requestFullscreen = ([web.FullscreenOptions? options]) { return Future.value().toJS; }.toJS; @@ -110,30 +107,30 @@ class MockNavigator { @JSExport() class MockMediaDevices { - /// JSPromise Function([web.MediaStreamConstraints? constraints]) + /// `JSPromise Function([web.MediaStreamConstraints? constraints])` late JSFunction getUserMedia; - /// web.MediaTrackSupportedConstraints Function() + /// `web.MediaTrackSupportedConstraints Function()` late JSFunction getSupportedConstraints; - /// JSPromise> Function() + /// `JSPromise> Function()` late JSFunction enumerateDevices; } @JSExport() class MockMediaStreamTrack { - /// web.MediaTrackCapabilities Function(); + /// `web.MediaTrackCapabilities Function()` late JSFunction getCapabilities; - /// web.MediaTrackSettings Function() + /// `web.MediaTrackSettings Function()` JSFunction getSettings = () { return web.MediaTrackSettings(); }.toJS; - /// JSPromise Function([web.MediaTrackConstraints? constraints]) + /// `JSPromise Function([web.MediaTrackConstraints? constraints])` late JSFunction applyConstraints; - /// void Function() + /// `void Function()` JSFunction stop = () {}.toJS; } @@ -145,24 +142,24 @@ class MockVideoElement { @JSExport() class MockMediaRecorder { - /// void Function(String type, web.EventListener? callback, [JSAny options]) + /// `void Function(String type, web.EventListener? callback, [JSAny options])` JSFunction addEventListener = (String type, web.EventListener? callback, [JSAny? options]) {}.toJS; - /// void Function(String type, web.EventListener? callback, [JSAny options]) + /// `void Function(String type, web.EventListener? callback, [JSAny options])` JSFunction removeEventListener = (String type, web.EventListener? callback, [JSAny? options]) {}.toJS; - /// void Function([int timeslice]) + /// `void Function([int timeslice])` JSFunction start = ([int? timeslice]) {}.toJS; - /// void Function() + /// `void Function()` JSFunction pause = () {}.toJS; - /// void Function() + /// `void Function()` JSFunction resume = () {}.toJS; - /// void Function() + /// `void Function()` JSFunction stop = () {}.toJS; web.RecordingState state = 'inactive'; @@ -197,9 +194,9 @@ class FakeMediaError { final String message; } -/// A fake [ElementStream] that listens to the provided [_stream] on [listen]. +/// A fake [web.ElementStream] that listens to the provided [_stream] on [listen]. class FakeElementStream extends Fake - implements ElementStream { + implements web.ElementStream { FakeElementStream(this._stream); final Stream _stream; @@ -220,7 +217,7 @@ class FakeElementStream extends Fake } } -/// A fake [BlobEvent] that returns the provided blob [data]. +/// A fake [web.BlobEvent] that returns the provided blob [data]. @JSExport() class FakeBlobEvent { FakeBlobEvent(this.data); @@ -228,7 +225,7 @@ class FakeBlobEvent { final web.Blob? data; } -/// A fake [DomException] that returns the provided error [_name] and [_message]. +/// A fake [web.DomException] that returns the provided error [_name] and [_message]. @JSExport() class FakeErrorEvent { FakeErrorEvent(this.type, [this.message = '']); @@ -272,7 +269,7 @@ class MockEventStreamProvider extends Mock } @override - ElementStream forElement(web.Element? e, {bool? useCapture = false}) { + web.ElementStream forElement(web.Element? e, {bool? useCapture = false}) { return super.noSuchMethod( Invocation.method( #forElement, @@ -281,7 +278,7 @@ class MockEventStreamProvider extends Mock ), returnValue: FakeElementStream(Stream.empty()), ) - as ElementStream; + as web.ElementStream; } } diff --git a/packages/in_app_purchase/in_app_purchase_android/pigeons/messages.dart b/packages/in_app_purchase/in_app_purchase_android/pigeons/messages.dart index 90f987cc8df..c1e04bffdeb 100644 --- a/packages/in_app_purchase/in_app_purchase_android/pigeons/messages.dart +++ b/packages/in_app_purchase/in_app_purchase_android/pigeons/messages.dart @@ -447,12 +447,12 @@ abstract class InAppPurchaseApi { @FlutterApi() abstract class InAppPurchaseCallbackApi { - /// Called for BillingClientStateListener#onBillingServiceDisconnected(). + /// Called for `BillingClientStateListener#onBillingServiceDisconnected()`. void onBillingServiceDisconnected(int callbackHandle); - /// Called for PurchasesUpdatedListener#onPurchasesUpdated(BillingResult, List). + /// Called for `PurchasesUpdatedListener#onPurchasesUpdated(BillingResult, List)`. void onPurchasesUpdated(PlatformPurchasesResponse update); - /// Called for UserChoiceBillingListener#userSelectedAlternativeBilling(UserChoiceDetails). + /// Called for `UserChoiceBillingListener#userSelectedAlternativeBilling(UserChoiceDetails)`. void userSelectedalternativeBilling(PlatformUserChoiceDetails details); } diff --git a/packages/metrics_center/lib/src/skiaperf.dart b/packages/metrics_center/lib/src/skiaperf.dart index caa57319cd4..7f3b98afee6 100644 --- a/packages/metrics_center/lib/src/skiaperf.dart +++ b/packages/metrics_center/lib/src/skiaperf.dart @@ -126,7 +126,7 @@ class SkiaPerfPoint extends MetricPoint { ); } - /// In the format of '/' such as 'flutter/flutter' or + /// In the format of `/` such as 'flutter/flutter' or /// 'flutter/engine'. final String githubRepo; diff --git a/packages/pigeon/lib/src/ast.dart b/packages/pigeon/lib/src/ast.dart index b51f66bb67a..aba0e0891ca 100644 --- a/packages/pigeon/lib/src/ast.dart +++ b/packages/pigeon/lib/src/ast.dart @@ -496,13 +496,13 @@ class TypeDeclaration { associatedProxyApi = null, typeArguments = const []; - /// The base name of the [TypeDeclaration] (ex 'Foo' to 'Foo?'). + /// The base name of the [TypeDeclaration] (ex `Foo` to `Foo?`). final String baseName; /// Whether the declaration represents 'void'. bool get isVoid => baseName == 'void'; - /// Whether the type arguments to the entity (ex 'Bar' to 'Foo?'). + /// Whether the type arguments to the entity (ex `Bar` to `Foo?`). final List typeArguments; /// Whether the type is nullable. diff --git a/packages/pigeon/lib/src/dart/dart_generator.dart b/packages/pigeon/lib/src/dart/dart_generator.dart index 5ebf6dd01f2..6ea89e12458 100644 --- a/packages/pigeon/lib/src/dart/dart_generator.dart +++ b/packages/pigeon/lib/src/dart/dart_generator.dart @@ -523,6 +523,7 @@ class DartGenerator extends StructuredGenerator { /// Writes the code for host [Api], [api]. /// Example: + /// ```dart /// class FooCodec extends StandardMessageCodec {...} /// /// abstract class Foo { @@ -530,6 +531,7 @@ class DartGenerator extends StructuredGenerator { /// int add(int x, int y); /// static void setUp(Foo api, {BinaryMessenger? binaryMessenger}) {...} /// } + /// ``` @override void writeFlutterApi( InternalDartOptions generatorOptions, @@ -599,6 +601,7 @@ class DartGenerator extends StructuredGenerator { /// Writes the code for host [Api], [api]. /// Example: + /// ```dart /// class FooCodec extends StandardMessageCodec {...} /// /// class Foo { @@ -606,6 +609,7 @@ class DartGenerator extends StructuredGenerator { /// static const MessageCodec codec = FooCodec(); /// Future add(int x, int y) async {...} /// } + /// ``` /// /// Messages will be sent and received in a list. /// diff --git a/packages/pigeon/lib/src/java/java_generator.dart b/packages/pigeon/lib/src/java/java_generator.dart index af6181e91d2..ea90f530923 100644 --- a/packages/pigeon/lib/src/java/java_generator.dart +++ b/packages/pigeon/lib/src/java/java_generator.dart @@ -728,6 +728,7 @@ if (wrapped == null) { /// Writes the code for a flutter [Api], [api]. /// Example: + /// ```java /// public static final class Foo { /// public Foo(BinaryMessenger argBinaryMessenger) {...} /// public interface Result { @@ -735,6 +736,7 @@ if (wrapped == null) { /// } /// public int add(int x, int y, Result result) {...} /// } + /// ``` @override void writeFlutterApi( InternalJavaOptions generatorOptions, diff --git a/packages/rfw/lib/src/flutter/argument_decoders.dart b/packages/rfw/lib/src/flutter/argument_decoders.dart index b40702fc7d2..8da61794e49 100644 --- a/packages/rfw/lib/src/flutter/argument_decoders.dart +++ b/packages/rfw/lib/src/flutter/argument_decoders.dart @@ -614,8 +614,9 @@ class ArgumentDecoders { /// The first argument must be the `values` list for that enum; this is the /// list of values that is searched. /// - /// For example, `enumValue(TileMode.values, source, ['tileMode']) ?? - /// TileMode.clamp` reads the `tileMode` key of `source`, and looks for the + /// For example, + /// `enumValue(TileMode.values, source, ['tileMode']) ?? TileMode.clamp` + /// reads the `tileMode` key of `source`, and looks for the /// first match in [TileMode.values], defaulting to [TileMode.clamp] if /// nothing matches; thus, the string `mirror` would return [TileMode.mirror]. static T? enumValue(List values, DataSource source, List key) { diff --git a/packages/shared_preferences/shared_preferences/lib/src/shared_preferences_async.dart b/packages/shared_preferences/shared_preferences/lib/src/shared_preferences_async.dart index d6d9e326708..5fd079d7a96 100644 --- a/packages/shared_preferences/shared_preferences/lib/src/shared_preferences_async.dart +++ b/packages/shared_preferences/shared_preferences/lib/src/shared_preferences_async.dart @@ -61,31 +61,31 @@ class SharedPreferencesAsync { } /// Reads a value from the platform, throwing a [TypeError] if the value is - /// not a bool. + /// not a `bool`. Future getBool(String key) async { return _platform.getBool(key, _options); } /// Reads a value from the platform, throwing a [TypeError] if the value is - /// not an int. + /// not an `int`. Future getInt(String key) async { return _platform.getInt(key, _options); } /// Reads a value from the platform, throwing a [TypeError] if the value is - /// not a double. + /// not a `double`. Future getDouble(String key) async { return _platform.getDouble(key, _options); } /// Reads a value from the platform, throwing a [TypeError] if the value is - /// not a String. + /// not a `String`. Future getString(String key) async { return _platform.getString(key, _options); } /// Reads a list of string values from the platform, throwing a [TypeError] - /// if the value not a List. + /// if the value is not a `List`. Future?> getStringList(String key) async { return _platform.getStringList(key, _options); } diff --git a/packages/shared_preferences/shared_preferences_android/pigeons/messages.dart b/packages/shared_preferences/shared_preferences_android/pigeons/messages.dart index c42810f609f..282e1b547aa 100644 --- a/packages/shared_preferences/shared_preferences_android/pigeons/messages.dart +++ b/packages/shared_preferences/shared_preferences_android/pigeons/messages.dart @@ -23,27 +23,27 @@ abstract class SharedPreferencesApi { @TaskQueue(type: TaskQueueType.serialBackgroundThread) bool remove(String key); - /// Adds property to shared preferences data set of type bool. + /// Adds property to shared preferences data set of type `bool`. @TaskQueue(type: TaskQueueType.serialBackgroundThread) bool setBool(String key, bool value); - /// Adds property to shared preferences data set of type String. + /// Adds property to shared preferences data set of type `String`. @TaskQueue(type: TaskQueueType.serialBackgroundThread) bool setString(String key, String value); - /// Adds property to shared preferences data set of type int. + /// Adds property to shared preferences data set of type `int`. @TaskQueue(type: TaskQueueType.serialBackgroundThread) bool setInt(String key, int value); - /// Adds property to shared preferences data set of type double. + /// Adds property to shared preferences data set of type `double`. @TaskQueue(type: TaskQueueType.serialBackgroundThread) bool setDouble(String key, double value); - /// Adds property to shared preferences data set of type List. + /// Adds property to shared preferences data set of type `List`. @TaskQueue(type: TaskQueueType.serialBackgroundThread) bool setEncodedStringList(String key, String value); - /// Adds property to shared preferences data set of type List. + /// Adds property to shared preferences data set of type `List`. /// /// Deprecated, this is only here for testing purposes. @TaskQueue(type: TaskQueueType.serialBackgroundThread) diff --git a/packages/shared_preferences/shared_preferences_android/pigeons/messages_async.dart b/packages/shared_preferences/shared_preferences_android/pigeons/messages_async.dart index 9b32c0c2a1d..a0b0ec0b8ed 100644 --- a/packages/shared_preferences/shared_preferences_android/pigeons/messages_async.dart +++ b/packages/shared_preferences/shared_preferences_android/pigeons/messages_async.dart @@ -50,11 +50,11 @@ class StringListResult { @HostApi() abstract class SharedPreferencesAsyncApi { - /// Adds property to shared preferences data set of type bool. + /// Adds property to shared preferences data set of type `bool`. @TaskQueue(type: TaskQueueType.serialBackgroundThread) void setBool(String key, bool value, SharedPreferencesPigeonOptions options); - /// Adds property to shared preferences data set of type String. + /// Adds property to shared preferences data set of type `String`. @TaskQueue(type: TaskQueueType.serialBackgroundThread) void setString( String key, @@ -62,11 +62,11 @@ abstract class SharedPreferencesAsyncApi { SharedPreferencesPigeonOptions options, ); - /// Adds property to shared preferences data set of type int. + /// Adds property to shared preferences data set of type `int`. @TaskQueue(type: TaskQueueType.serialBackgroundThread) void setInt(String key, int value, SharedPreferencesPigeonOptions options); - /// Adds property to shared preferences data set of type double. + /// Adds property to shared preferences data set of type `double`. @TaskQueue(type: TaskQueueType.serialBackgroundThread) void setDouble( String key, @@ -74,7 +74,7 @@ abstract class SharedPreferencesAsyncApi { SharedPreferencesPigeonOptions options, ); - /// Adds property to shared preferences data set of type List. + /// Adds property to shared preferences data set of type `List`. @TaskQueue(type: TaskQueueType.serialBackgroundThread) void setEncodedStringList( String key, @@ -82,7 +82,7 @@ abstract class SharedPreferencesAsyncApi { SharedPreferencesPigeonOptions options, ); - /// Adds property to shared preferences data set of type List. + /// Adds property to shared preferences data set of type `List`. /// /// Deprecated, this is only here for testing purposes. @TaskQueue(type: TaskQueueType.serialBackgroundThread) @@ -108,14 +108,14 @@ abstract class SharedPreferencesAsyncApi { @TaskQueue(type: TaskQueueType.serialBackgroundThread) int? getInt(String key, SharedPreferencesPigeonOptions options); - /// Gets individual List value stored with [key], if any. + /// Gets individual `List` value stored with [key], if any. @TaskQueue(type: TaskQueueType.serialBackgroundThread) List? getPlatformEncodedStringList( String key, SharedPreferencesPigeonOptions options, ); - /// Gets the JSON-encoded List value stored with [key], if any. + /// Gets the JSON-encoded `List` value stored with [key], if any. @TaskQueue(type: TaskQueueType.serialBackgroundThread) StringListResult? getStringList( String key, diff --git a/packages/shared_preferences/shared_preferences_platform_interface/lib/shared_preferences_async_platform_interface.dart b/packages/shared_preferences/shared_preferences_platform_interface/lib/shared_preferences_async_platform_interface.dart index f86e69dfd3a..77dec7f04d1 100644 --- a/packages/shared_preferences/shared_preferences_platform_interface/lib/shared_preferences_async_platform_interface.dart +++ b/packages/shared_preferences/shared_preferences_platform_interface/lib/shared_preferences_async_platform_interface.dart @@ -38,40 +38,40 @@ abstract base class SharedPreferencesAsyncPlatform { /// Stores the int [value] associated with the [key]. Future setInt(String key, int value, SharedPreferencesOptions options); - /// Stores the List [value] associated with the [key]. + /// Stores the `List` [value] associated with the [key]. Future setStringList( String key, List value, SharedPreferencesOptions options, ); - /// Retrieves the String [value] associated with the [key], if any. + /// Retrieves the `String` [value] associated with the [key], if any. /// /// Throws a [TypeError] if the returned type is not a String. /// May return null for unsupported types. Future getString(String key, SharedPreferencesOptions options); - /// Retrieves the bool [value] associated with the [key], if any. + /// Retrieves the `bool` [value] associated with the [key], if any. /// /// Throws a [TypeError] if the returned type is not a bool. /// May return null for unsupported types. Future getBool(String key, SharedPreferencesOptions options); - /// Retrieves the double [value] associated with the [key], if any. + /// Retrieves the `double` [value] associated with the [key], if any. /// /// Throws a [TypeError] if the returned type is not a double. /// May return null for unsupported types. Future getDouble(String key, SharedPreferencesOptions options); - /// Retrieves the int [value] associated with the [key], if any. + /// Retrieves the `int` [value] associated with the [key], if any. /// /// Throws a [TypeError] if the returned type is not an int. /// May return null for unsupported types. Future getInt(String key, SharedPreferencesOptions options); - /// Retrieves the List [value] associated with the [key], if any. + /// Retrieves the `List` [value] associated with the [key], if any. /// - /// Throws a [TypeError] if the returned type is not a List. + /// Throws a [TypeError] if the returned type is not a `List`. /// May return null for unsupported types. Future?> getStringList( String key, diff --git a/packages/webview_flutter/webview_flutter_android/example/lib/legacy/web_view.dart b/packages/webview_flutter/webview_flutter_android/example/lib/legacy/web_view.dart index 5b40feac014..06ecd148e86 100644 --- a/packages/webview_flutter/webview_flutter_android/example/lib/legacy/web_view.dart +++ b/packages/webview_flutter/webview_flutter_android/example/lib/legacy/web_view.dart @@ -202,7 +202,7 @@ class WebView extends StatefulWidget { /// /// To debug WebViews on iOS: /// - Enable developer options (Open Safari, go to Preferences -> Advanced and make sure "Show Develop Menu in Menubar" is on.) - /// - From the Menu-bar (of Safari) select Develop -> iPhone Simulator -> + /// - From the Menu-bar (of Safari) select Develop -> iPhone Simulator -> your webview page /// /// By default `debuggingEnabled` is false. final bool debuggingEnabled; diff --git a/packages/webview_flutter/webview_flutter_platform_interface/lib/src/legacy/types/webview_cookie.dart b/packages/webview_flutter/webview_flutter_platform_interface/lib/src/legacy/types/webview_cookie.dart index 022d8d63821..aae8984a908 100644 --- a/packages/webview_flutter/webview_flutter_platform_interface/lib/src/legacy/types/webview_cookie.dart +++ b/packages/webview_flutter/webview_flutter_platform_interface/lib/src/legacy/types/webview_cookie.dart @@ -38,7 +38,7 @@ class WebViewCookie { /// https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis-02#section-4.1.1 final String path; - /// Serializes the [WebViewCookie] to a Map. + /// Serializes the [WebViewCookie] to a `Map`. Map toJson() { return { 'name': name, diff --git a/packages/webview_flutter/webview_flutter_wkwebview/example/lib/legacy/web_view.dart b/packages/webview_flutter/webview_flutter_wkwebview/example/lib/legacy/web_view.dart index cd98cb6119e..ebf848c1b58 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/example/lib/legacy/web_view.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/example/lib/legacy/web_view.dart @@ -193,7 +193,7 @@ class WebView extends StatefulWidget { /// /// To debug WebViews on iOS: /// - Enable developer options (Open Safari, go to Preferences -> Advanced and make sure "Show Develop Menu in Menubar" is on.) - /// - From the Menu-bar (of Safari) select Develop -> iPhone Simulator -> + /// - From the Menu-bar (of Safari) select Develop -> iPhone Simulator -> your webview page /// /// By default `debuggingEnabled` is false. final bool debuggingEnabled; From 5ce1825121b946d98aa1f15861386550be6e551e Mon Sep 17 00:00:00 2001 From: Stuart Morgan Date: Thu, 19 Mar 2026 16:38:07 -0400 Subject: [PATCH 3/6] Version bumps --- packages/camera/camera_android_camerax/CHANGELOG.md | 6 +++++- packages/camera/camera_android_camerax/pubspec.yaml | 2 +- .../in_app_purchase/in_app_purchase_android/CHANGELOG.md | 4 ++++ .../in_app_purchase/in_app_purchase_android/pubspec.yaml | 2 +- packages/metrics_center/CHANGELOG.md | 3 ++- packages/metrics_center/pubspec.yaml | 2 +- packages/pigeon/CHANGELOG.md | 4 ++++ packages/pigeon/pubspec.yaml | 2 +- packages/rfw/CHANGELOG.md | 4 ++++ packages/rfw/pubspec.yaml | 2 +- packages/shared_preferences/shared_preferences/CHANGELOG.md | 4 ++++ packages/shared_preferences/shared_preferences/pubspec.yaml | 2 +- .../shared_preferences_android/CHANGELOG.md | 4 ++++ .../shared_preferences_android/pubspec.yaml | 2 +- .../shared_preferences_platform_interface/CHANGELOG.md | 3 ++- .../shared_preferences_platform_interface/pubspec.yaml | 2 +- .../webview_flutter/webview_flutter_android/CHANGELOG.md | 4 ++++ .../webview_flutter/webview_flutter_android/pubspec.yaml | 2 +- .../webview_flutter_platform_interface/CHANGELOG.md | 3 ++- .../webview_flutter_platform_interface/pubspec.yaml | 2 +- .../webview_flutter/webview_flutter_wkwebview/CHANGELOG.md | 4 ++++ .../webview_flutter/webview_flutter_wkwebview/pubspec.yaml | 2 +- 22 files changed, 50 insertions(+), 15 deletions(-) diff --git a/packages/camera/camera_android_camerax/CHANGELOG.md b/packages/camera/camera_android_camerax/CHANGELOG.md index 4e9229a78da..782b4f07873 100644 --- a/packages/camera/camera_android_camerax/CHANGELOG.md +++ b/packages/camera/camera_android_camerax/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.7.1+1 + +* Fixes dartdoc comments that accidentally used HTML. + ## 0.7.1 * Removes outdated restrictions against concurrent camera use cases. @@ -518,4 +522,4 @@ this plugin should now be compatible with [google_ml_kit_flutter](https://github * Displaying a live camera preview * Image streaming - See [`README.md`](README.md) for more details on the limitations of this implementation. \ No newline at end of file + See [`README.md`](README.md) for more details on the limitations of this implementation. diff --git a/packages/camera/camera_android_camerax/pubspec.yaml b/packages/camera/camera_android_camerax/pubspec.yaml index 83ccda21ad1..4125c02c589 100644 --- a/packages/camera/camera_android_camerax/pubspec.yaml +++ b/packages/camera/camera_android_camerax/pubspec.yaml @@ -2,7 +2,7 @@ name: camera_android_camerax description: Android implementation of the camera plugin using the CameraX library. repository: https://github.com/flutter/packages/tree/main/packages/camera/camera_android_camerax issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+camera%22 -version: 0.7.1 +version: 0.7.1+1 environment: sdk: ^3.9.0 diff --git a/packages/in_app_purchase/in_app_purchase_android/CHANGELOG.md b/packages/in_app_purchase/in_app_purchase_android/CHANGELOG.md index 5769150bf7f..b282185e60f 100644 --- a/packages/in_app_purchase/in_app_purchase_android/CHANGELOG.md +++ b/packages/in_app_purchase/in_app_purchase_android/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.4.0+9 + +* Fixes dartdoc comments that accidentally used HTML. + ## 0.4.0+8 * Bumps com.android.tools.build:gradle from 8.12.1 to 8.13.1. diff --git a/packages/in_app_purchase/in_app_purchase_android/pubspec.yaml b/packages/in_app_purchase/in_app_purchase_android/pubspec.yaml index 06a91eb3cfa..e6fc2a4efa5 100644 --- a/packages/in_app_purchase/in_app_purchase_android/pubspec.yaml +++ b/packages/in_app_purchase/in_app_purchase_android/pubspec.yaml @@ -3,7 +3,7 @@ description: An implementation for the Android platform of the Flutter `in_app_p repository: https://github.com/flutter/packages/tree/main/packages/in_app_purchase/in_app_purchase_android issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+in_app_purchase%22 -version: 0.4.0+8 +version: 0.4.0+9 environment: sdk: ^3.9.0 diff --git a/packages/metrics_center/CHANGELOG.md b/packages/metrics_center/CHANGELOG.md index 59359e9fef0..6f1d561d244 100644 --- a/packages/metrics_center/CHANGELOG.md +++ b/packages/metrics_center/CHANGELOG.md @@ -1,5 +1,6 @@ -## NEXT +## 1.0.15 +* Fixes dartdoc comments that accidentally used HTML. * Updates minimum supported SDK version to Flutter 3.35/Dart 3.9. ## 1.0.14 diff --git a/packages/metrics_center/pubspec.yaml b/packages/metrics_center/pubspec.yaml index 89e52f6e4e1..04a69d21304 100644 --- a/packages/metrics_center/pubspec.yaml +++ b/packages/metrics_center/pubspec.yaml @@ -1,5 +1,5 @@ name: metrics_center -version: 1.0.14 +version: 1.0.15 description: Support multiple performance metrics sources/formats and destinations. repository: https://github.com/flutter/packages/tree/main/packages/metrics_center diff --git a/packages/pigeon/CHANGELOG.md b/packages/pigeon/CHANGELOG.md index 7286aedf68c..9eb627c12a9 100644 --- a/packages/pigeon/CHANGELOG.md +++ b/packages/pigeon/CHANGELOG.md @@ -1,3 +1,7 @@ +## 26.2.4 + +* Fixes dartdoc comments that accidentally used HTML. + ## 26.2.3 * Produces a helpful error message when a method return type is missing or an diff --git a/packages/pigeon/pubspec.yaml b/packages/pigeon/pubspec.yaml index d727a236870..95061dcabc2 100644 --- a/packages/pigeon/pubspec.yaml +++ b/packages/pigeon/pubspec.yaml @@ -2,7 +2,7 @@ name: pigeon description: Code generator tool to make communication between Flutter and the host platform type-safe and easier. repository: https://github.com/flutter/packages/tree/main/packages/pigeon issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+pigeon%22 -version: 26.2.3 # This must match the version in lib/src/generator_tools.dart +version: 26.2.4 # This must match the version in lib/src/generator_tools.dart environment: sdk: ^3.9.0 diff --git a/packages/rfw/CHANGELOG.md b/packages/rfw/CHANGELOG.md index f9538956d3c..2aa690d15f0 100644 --- a/packages/rfw/CHANGELOG.md +++ b/packages/rfw/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.1.3 + +* Fixes dartdoc comments that accidentally used HTML. + ## 1.1.2 * Removes outdated call for feedback from the README. diff --git a/packages/rfw/pubspec.yaml b/packages/rfw/pubspec.yaml index 72341a9f846..f4233d22e32 100644 --- a/packages/rfw/pubspec.yaml +++ b/packages/rfw/pubspec.yaml @@ -2,7 +2,7 @@ name: rfw description: "Remote Flutter widgets: a library for rendering declarative widget description files at runtime." repository: https://github.com/flutter/packages/tree/main/packages/rfw issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+rfw%22 -version: 1.1.2 +version: 1.1.3 environment: sdk: ^3.9.0 diff --git a/packages/shared_preferences/shared_preferences/CHANGELOG.md b/packages/shared_preferences/shared_preferences/CHANGELOG.md index 5cf4a09e2cb..07f50a0778d 100644 --- a/packages/shared_preferences/shared_preferences/CHANGELOG.md +++ b/packages/shared_preferences/shared_preferences/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.5.5 + +* Fixes dartdoc comments that accidentally used HTML. + ## 2.5.4 * Updates dependencies for the `shared_preferences_tool` DevTools extension and fixes related deprecations. diff --git a/packages/shared_preferences/shared_preferences/pubspec.yaml b/packages/shared_preferences/shared_preferences/pubspec.yaml index d3c8a52238f..ef4ffbc6d62 100644 --- a/packages/shared_preferences/shared_preferences/pubspec.yaml +++ b/packages/shared_preferences/shared_preferences/pubspec.yaml @@ -3,7 +3,7 @@ description: Flutter plugin for reading and writing simple key-value pairs. Wraps NSUserDefaults on iOS and SharedPreferences on Android. repository: https://github.com/flutter/packages/tree/main/packages/shared_preferences/shared_preferences issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+shared_preferences%22 -version: 2.5.4 +version: 2.5.5 environment: sdk: ^3.9.0 diff --git a/packages/shared_preferences/shared_preferences_android/CHANGELOG.md b/packages/shared_preferences/shared_preferences_android/CHANGELOG.md index d9d83230286..b6ef6720105 100644 --- a/packages/shared_preferences/shared_preferences_android/CHANGELOG.md +++ b/packages/shared_preferences/shared_preferences_android/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.4.22 + +* Fixes dartdoc comments that accidentally used HTML. + ## 2.4.21 * Reverts `androidx.datastore:datastore` to 1.1.7 due to a regression 16 KB diff --git a/packages/shared_preferences/shared_preferences_android/pubspec.yaml b/packages/shared_preferences/shared_preferences_android/pubspec.yaml index 8ef265cd3b9..67998482ecd 100644 --- a/packages/shared_preferences/shared_preferences_android/pubspec.yaml +++ b/packages/shared_preferences/shared_preferences_android/pubspec.yaml @@ -2,7 +2,7 @@ name: shared_preferences_android description: Android implementation of the shared_preferences plugin repository: https://github.com/flutter/packages/tree/main/packages/shared_preferences/shared_preferences_android issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+shared_preferences%22 -version: 2.4.21 +version: 2.4.22 environment: sdk: ^3.9.0 diff --git a/packages/shared_preferences/shared_preferences_platform_interface/CHANGELOG.md b/packages/shared_preferences/shared_preferences_platform_interface/CHANGELOG.md index 49dd411c6db..b986626e8f9 100644 --- a/packages/shared_preferences/shared_preferences_platform_interface/CHANGELOG.md +++ b/packages/shared_preferences/shared_preferences_platform_interface/CHANGELOG.md @@ -1,5 +1,6 @@ -## NEXT +## 2.4.2 +* Fixes dartdoc comments that accidentally used HTML. * Updates minimum supported SDK version to Flutter 3.35/Dart 3.9. ## 2.4.1 diff --git a/packages/shared_preferences/shared_preferences_platform_interface/pubspec.yaml b/packages/shared_preferences/shared_preferences_platform_interface/pubspec.yaml index c1156c11537..5d470626f56 100644 --- a/packages/shared_preferences/shared_preferences_platform_interface/pubspec.yaml +++ b/packages/shared_preferences/shared_preferences_platform_interface/pubspec.yaml @@ -2,7 +2,7 @@ name: shared_preferences_platform_interface description: A common platform interface for the shared_preferences plugin. repository: https://github.com/flutter/packages/tree/main/packages/shared_preferences/shared_preferences_platform_interface issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+shared_preferences%22 -version: 2.4.1 +version: 2.4.2 environment: sdk: ^3.9.0 diff --git a/packages/webview_flutter/webview_flutter_android/CHANGELOG.md b/packages/webview_flutter/webview_flutter_android/CHANGELOG.md index 088dcb547c3..24e8837de58 100644 --- a/packages/webview_flutter/webview_flutter_android/CHANGELOG.md +++ b/packages/webview_flutter/webview_flutter_android/CHANGELOG.md @@ -1,3 +1,7 @@ +## 4.10.14 + +* Fixes dartdoc comments that accidentally used HTML. + ## 4.10.13 * Bumps androidx.webkit:webkit from 1.14.0 to 1.15.0. diff --git a/packages/webview_flutter/webview_flutter_android/pubspec.yaml b/packages/webview_flutter/webview_flutter_android/pubspec.yaml index 4415fcfbbae..1657eeb4af9 100644 --- a/packages/webview_flutter/webview_flutter_android/pubspec.yaml +++ b/packages/webview_flutter/webview_flutter_android/pubspec.yaml @@ -2,7 +2,7 @@ name: webview_flutter_android description: A Flutter plugin that provides a WebView widget on Android. repository: https://github.com/flutter/packages/tree/main/packages/webview_flutter/webview_flutter_android issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+webview%22 -version: 4.10.13 +version: 4.10.14 environment: sdk: ^3.9.0 diff --git a/packages/webview_flutter/webview_flutter_platform_interface/CHANGELOG.md b/packages/webview_flutter/webview_flutter_platform_interface/CHANGELOG.md index cc16a26cb2f..70426820c30 100644 --- a/packages/webview_flutter/webview_flutter_platform_interface/CHANGELOG.md +++ b/packages/webview_flutter/webview_flutter_platform_interface/CHANGELOG.md @@ -1,5 +1,6 @@ -## NEXT +## 2.14.1 +* Fixes dartdoc comments that accidentally used HTML. * Updates minimum supported SDK version to Flutter 3.35/Dart 3.9. ## 2.14.0 diff --git a/packages/webview_flutter/webview_flutter_platform_interface/pubspec.yaml b/packages/webview_flutter/webview_flutter_platform_interface/pubspec.yaml index 2b755499a9d..4e97de045ab 100644 --- a/packages/webview_flutter/webview_flutter_platform_interface/pubspec.yaml +++ b/packages/webview_flutter/webview_flutter_platform_interface/pubspec.yaml @@ -4,7 +4,7 @@ repository: https://github.com/flutter/packages/tree/main/packages/webview_flutt issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+webview_flutter%22 # NOTE: We strongly prefer non-breaking changes, even at the expense of a # less-clean API. See https://flutter.dev/go/platform-interface-breaking-changes -version: 2.14.0 +version: 2.14.1 environment: sdk: ^3.9.0 diff --git a/packages/webview_flutter/webview_flutter_wkwebview/CHANGELOG.md b/packages/webview_flutter/webview_flutter_wkwebview/CHANGELOG.md index 5a451100836..efaab280aef 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/CHANGELOG.md +++ b/packages/webview_flutter/webview_flutter_wkwebview/CHANGELOG.md @@ -1,3 +1,7 @@ +## 3.24.2 + +* Fixes dartdoc comments that accidentally used HTML. + ## 3.24.1 * Updates platform views on iOS to only have a weak reference to the native view. This is a diff --git a/packages/webview_flutter/webview_flutter_wkwebview/pubspec.yaml b/packages/webview_flutter/webview_flutter_wkwebview/pubspec.yaml index d61c43b4012..7330bbae7e6 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/pubspec.yaml +++ b/packages/webview_flutter/webview_flutter_wkwebview/pubspec.yaml @@ -2,7 +2,7 @@ name: webview_flutter_wkwebview description: A Flutter plugin that provides a WebView widget based on Apple's WKWebView control. repository: https://github.com/flutter/packages/tree/main/packages/webview_flutter/webview_flutter_wkwebview issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+webview%22 -version: 3.24.1 +version: 3.24.2 environment: sdk: ^3.9.0 From e07c3a46973b4d18b540aae92bb7ae360fde0a9a Mon Sep 17 00:00:00 2001 From: Stuart Morgan Date: Thu, 19 Mar 2026 18:33:43 -0400 Subject: [PATCH 4/6] Pigeon version bump correction --- packages/pigeon/lib/src/generator_tools.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/pigeon/lib/src/generator_tools.dart b/packages/pigeon/lib/src/generator_tools.dart index aadb022bd24..a07c3d651b2 100644 --- a/packages/pigeon/lib/src/generator_tools.dart +++ b/packages/pigeon/lib/src/generator_tools.dart @@ -15,7 +15,7 @@ import 'generator.dart'; /// The current version of pigeon. /// /// This must match the version in pubspec.yaml. -const String pigeonVersion = '26.2.3'; +const String pigeonVersion = '26.2.4'; /// Default plugin package name. const String defaultPluginPackageName = 'dev.flutter.pigeon'; From 8840bb481764758341118700d36eb1a6ad51848c Mon Sep 17 00:00:00 2001 From: Stuart Morgan Date: Thu, 19 Mar 2026 18:34:09 -0400 Subject: [PATCH 5/6] Typo --- analysis_options.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/analysis_options.yaml b/analysis_options.yaml index b607bd5e3e6..5a160d9d858 100644 --- a/analysis_options.yaml +++ b/analysis_options.yaml @@ -196,7 +196,7 @@ linter: - type_annotate_public_apis - type_init_formals - type_literal_in_constant_pattern - - unintended_html_in_doc_comment # DIFFERENT FROM FLUTTER/FLUTTER: Disable due to an issue that has been fixed, so just hasn't been adopted there yet. + - unintended_html_in_doc_comment # DIFFERENT FROM FLUTTER/FLUTTER: Disabled due to an issue that has been fixed, so just hasn't been adopted there yet. - unawaited_futures # DIFFERENT FROM FLUTTER/FLUTTER: It's disabled there for "too many false positives"; that's not an issue here, and missing awaits have caused production issues in plugins. - unnecessary_await_in_return - unnecessary_brace_in_string_interps From b92282d7696779ebe57cdc286780575e0f677784 Mon Sep 17 00:00:00 2001 From: Stuart Morgan Date: Thu, 19 Mar 2026 18:35:21 -0400 Subject: [PATCH 6/6] Fix violations in tool --- script/tool/lib/src/common/package_command.dart | 10 +++++----- script/tool/lib/src/publish_command.dart | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/script/tool/lib/src/common/package_command.dart b/script/tool/lib/src/common/package_command.dart index 77f91c069bb..838256acb7e 100644 --- a/script/tool/lib/src/common/package_command.dart +++ b/script/tool/lib/src/common/package_command.dart @@ -253,27 +253,27 @@ abstract class PackageCommand extends Command { return gitDir; } - /// Convenience accessor for boolean arguments. + /// Convenience accessor for `bool` arguments. bool getBoolArg(String key) { return (argResults![key] as bool?) ?? false; } - /// Convenience accessor for boolean arguments. + /// Convenience accessor for nullable `bool` arguments. bool? getNullableBoolArg(String key) { return argResults![key] as bool?; } - /// Convenience accessor for String arguments. + /// Convenience accessor for `String` arguments. String getStringArg(String key) { return (argResults![key] as String?) ?? ''; } - /// Convenience accessor for String arguments. + /// Convenience accessor for nullable `String` arguments. String? getNullableStringArg(String key) { return argResults![key] as String?; } - /// Convenience accessor for List arguments. + /// Convenience accessor for `List` arguments. List getStringListArg(String key) { // Clone the list so that if a caller modifies the result it won't change // the actual arguments list for future queries. diff --git a/script/tool/lib/src/publish_command.dart b/script/tool/lib/src/publish_command.dart index d043da0a60c..c45d847b3d1 100644 --- a/script/tool/lib/src/publish_command.dart +++ b/script/tool/lib/src/publish_command.dart @@ -39,7 +39,7 @@ class _RemoteInfo { /// /// 1. Checks for any modified files in git and refuses to publish if there's an /// issue. -/// 2. Tags the release with the format -v. +/// 2. Tags the release with the format `-v`. /// 3. Pushes the release to a remote. /// /// Both 2 and 3 are optional, see `plugin_tools help publish` for full