Skip to content

Conversation

stnguyen90
Copy link
Contributor

@stnguyen90 stnguyen90 commented Oct 9, 2025

What does this PR do?

Install the dependencies so that the full analysis options are used when formatting.

Test Plan

Generated the SDK and tested it locally.

Note

The score is not 100% because the SDK I generated was missing the CHANGELOG.md

Flutter
$ flutter pub get && dart format . && pana
Resolving dependencies... 
Downloading packages... 
  _fe_analyzer_shared 85.0.0 (89.0.0 available)
  analyzer 7.7.1 (8.2.0 available)
  build 3.0.2 (4.0.2 available)
  build_resolvers 3.0.2 (3.0.4 available)
  build_runner 2.7.0 (2.9.0 available)
  build_runner_core 9.3.0 (9.3.2 available)
  built_value 8.11.1 (8.12.0 available)
  characters 1.4.0 (1.4.1 available)
  code_builder 4.10.1 (4.11.0 available)
  dart_style 3.1.1 (3.1.2 available)
  device_info_plus 11.5.0 (12.1.0 available)
  leak_tracker 11.0.1 (11.0.2 available)
  material_color_utilities 0.11.1 (0.13.0 available)
  meta 1.16.0 (1.17.0 available)
  mockito 5.5.0 (5.5.1 available)
  package_info_plus 8.3.1 (9.0.0 available)
  path_provider_android 2.2.17 (2.2.19 available)
  path_provider_foundation 2.4.1 (2.4.2 available)
  pool 1.5.1 (1.5.2 available)
  source_gen 3.1.0 (4.0.1 available)
  test_api 0.7.6 (0.7.7 available)
  url_launcher_android 6.3.17 (6.3.24 available)
  url_launcher_ios 6.3.3 (6.3.4 available)
  url_launcher_macos 3.2.2 (3.2.3 available)
  watcher 1.1.2 (1.1.4 available)
  win32 5.14.0 (5.15.0 available)
Got dependencies!
26 packages have newer versions incompatible with dependency constraints.
Try `flutter pub outdated` for more information.
Resolving dependencies in `./example`... 
Downloading packages... 
Got dependencies in `./example`.
Formatted 179 files (0 changed) in 0.72 seconds.
2025-10-08 16:53:53.980099 WARNING: Flutter SDK path was not specified, pana will use the default Dart SDK to run `dart analyze` on Flutter packages.
2025-10-08 16:53:53.989960 INFO: Running `dart --version`...
2025-10-08 16:53:54.084272 INFO: Running `flutter --no-version-check --version --machine`...
2025-10-08 16:53:54.236015 INFO: Running `git rev-parse --show-toplevel`...
2025-10-08 16:54:31.610661 INFO: Running `flutter --no-version-check pub pub get --no-example`...
2025-10-08 16:54:35.126775 INFO: Running `flutter --no-version-check pub pub get --no-example`...
2025-10-08 16:54:36.044253 INFO: Running `flutter --no-version-check pub pub outdated --json --up-to-date --no-dev-dependencies --no-dependency-overrides`...
2025-10-08 16:54:37.185658 INFO: Analyzing package...
2025-10-08 16:54:37.203132 INFO: Running `dart analyze --format machine lib`...
2025-10-08 16:54:48.285928 INFO: Running `git init`...
2025-10-08 16:54:48.309014 INFO: Running `git remote add origin https://github.com/appwrite/sdk-for-flutter`...
2025-10-08 16:54:48.324836 INFO: Running `git remote show origin`...
2025-10-08 16:54:48.831488 INFO: Running `git fetch --depth 1 --no-recurse-submodules origin main`...
2025-10-08 16:54:49.525813 INFO: Running `git ls-tree -r --name-only --full-tree origin/main`...
2025-10-08 16:54:49.542088 INFO: Running `git show origin/main:example/pubspec.yaml`...
2025-10-08 16:54:49.558795 INFO: Running `git show origin/main:pubspec.yaml`...
2025-10-08 16:54:53.454479 INFO: Running `dart format --output=none --set-exit-if-changed /private/var/folders/6k/km2h3sl17mbdds6b__2gxzcc0000gn/T/pana_E4iACD/examples/flutter/lib`...
2025-10-08 16:54:54.201844 FINE: Downloading: https://pub.dartlang.org/api/packages/device_info_plus
2025-10-08 16:54:54.381472 FINE: Downloading: https://pub.dartlang.org/api/packages/package_info_plus
2025-10-08 16:54:54.556113 INFO: Analyzing pub downgrade...
2025-10-08 16:54:54.560499 INFO: Running `flutter --no-version-check packages pub downgrade --no-example`...
2025-10-08 16:54:57.272865 INFO: Running `dart analyze --format machine lib`...
2025-10-08 16:54:59.155425 INFO: [pub-downgrade-success]
2025-10-08 16:54:59.159249 INFO: Running `flutter --no-version-check packages pub upgrade --no-example`...
2025-10-08 16:55:00.827857 INFO: Running `flutter --no-version-check pub global activate dartdoc`...
2025-10-08 16:55:08.901932 INFO: Running `flutter --no-version-check pub global run dartdoc --output /private/var/folders/6k/km2h3sl17mbdds6b__2gxzcc0000gn/T/pana.1759967633964.d9QLZv/doc --sanitize-html --max-file-count 10000000 --max-total-size 2147483648 --no-validate-links`...
2025-10-08 16:56:06.180310 INFO: `dartdoc` completed:
                                 Documenting appwrite...
                                 Discovering libraries...
                                 Linking elements...
                                 Precaching local docs for 1392245 elements...
                                 Initialized dartdoc with 1559 libraries
                                 Generating docs for library realtime_io.dart from package:appwrite/realtime_io.dart...
                                 Generating docs for library realtime_browser.dart from package:appwrite/realtime_browser.dart...
                                 Generating docs for library enums.dart from package:appwrite/enums.dart...
                                 Generating docs for library client_browser.dart from package:appwrite/client_browser.dart...
                                 Generating docs for library appwrite.dart from package:appwrite/appwrite.dart...
                                 Generating docs for library client_io.dart from package:appwrite/client_io.dart...
                                 Generating docs for library models.dart from package:appwrite/models.dart...
                                 Documented 7 public libraries in 56.3 seconds
                                 Success! Docs generated into /private/var/folders/6k/km2h3sl17mbdds6b__2gxzcc0000gn/T/pana.1759967633964.d9QLZv/doc
                                 Found 0 warnings and 0 errors.

## ✗ Follow Dart file conventions (25 / 30)
### [*] 10/10 points: Provide a valid `pubspec.yaml`

### [*] 5/5 points: Provide a valid `README.md`

### [x] 0/5 points: Provide a valid `CHANGELOG.md`

<details>
<summary>
`CHANGELOG.md` does not contain reference to the current version ("0.0.1").
</summary>

Changelog entries help developers follow the progress of your package. Check out the Dart conventions for [Maintaining a package changelog](https://dart.dev/tools/pub/package-layout#changelog).
</details>

### [*] 10/10 points: Use an OSI-approved license

Detected license: `BSD-3-Clause`.


## ✓ Provide documentation (20 / 20)
### [*] 10/10 points: 20% or more of the public API has dartdoc comments

608 out of 869 API elements (70.0 %) have documentation comments.

Some symbols that are missing documentation: `appwrite.Account.client`, `appwrite.AppwriteException.code`, `appwrite.AppwriteException.response`, `appwrite.Avatars.client`, `appwrite.Databases.client`.

### [*] 10/10 points: Package has an example


## ✓ Platform support (20 / 20)
### [*] 20/20 points: Supports 6 of 6 possible platforms (**iOS**, **Android**, **Web**, **Windows**, **macOS**, **Linux**)

* ✓ Android

* ✓ iOS

* ✓ Windows

* ✓ Linux

* ✓ macOS

* ✓ Web


These issues are present but do not affect the score, because they may not originate in your package:

<details>
<summary>
Package does not support platform `Android`.
</summary>

Because:
* `package:appwrite/appwrite.dart` that imports:
* `package:appwrite/src/realtime.dart` that imports:
* `package:appwrite/src/client.dart` that imports:
* `package:appwrite/src/client_io.dart` that imports:
* `package:flutter_web_auth_2/flutter_web_auth_2.dart` that imports:
* `package:flutter_web_auth_2/src/linows.dart` that imports:
* `package:flutter_web_auth_2/src/webview.dart` that imports:
* `package:desktop_webview_window/desktop_webview_window.dart` that declares support for platforms: `Windows`, `Linux`, `macOS`.
</details>

<details>
<summary>
Package does not support platform `iOS`.
</summary>

Because:
* `package:appwrite/appwrite.dart` that imports:
* `package:appwrite/src/realtime.dart` that imports:
* `package:appwrite/src/client.dart` that imports:
* `package:appwrite/src/client_io.dart` that imports:
* `package:flutter_web_auth_2/flutter_web_auth_2.dart` that imports:
* `package:flutter_web_auth_2/src/linows.dart` that imports:
* `package:flutter_web_auth_2/src/webview.dart` that imports:
* `package:desktop_webview_window/desktop_webview_window.dart` that declares support for platforms: `Windows`, `Linux`, `macOS`.
</details>

<details>
<summary>
Package does not support platform `Linux`.
</summary>

Because:
* `package:appwrite/appwrite.dart` that imports:
* `package:appwrite/src/realtime.dart` that imports:
* `package:appwrite/src/client.dart` that imports:
* `package:appwrite/src/client_io.dart` that imports:
* `package:package_info_plus/package_info_plus.dart` that imports:
* `package:package_info_plus/src/package_info_plus_windows.dart` that imports:
* `package:package_info_plus/src/file_version_info.dart` that imports:
* `package:win32/win32.dart` that declares support for platforms: `Windows`.
</details>

<details>
<summary>
Package does not support platform `macOS`.
</summary>

Because:
* `package:appwrite/appwrite.dart` that imports:
* `package:appwrite/src/realtime.dart` that imports:
* `package:appwrite/src/client.dart` that imports:
* `package:appwrite/src/client_io.dart` that imports:
* `package:package_info_plus/package_info_plus.dart` that imports:
* `package:package_info_plus/src/package_info_plus_windows.dart` that imports:
* `package:package_info_plus/src/file_version_info.dart` that imports:
* `package:win32/win32.dart` that declares support for platforms: `Windows`.
</details>

### [*] 0/0 points: WASM compatibility

This package is compatible with runtime `wasm`, and will be rewarded additional points in a future version of the scoring model.

See https://dart.dev/web/wasm for details.


## ✓ Pass static analysis (50 / 50)
### [*] 50/50 points: code has no errors, warnings, lints, or formatting issues


## ✓ Support up-to-date dependencies (40 / 40)
### [~] 10/10 points: All of the package dependencies are supported in the latest version

|Package|Constraint|Compatible|Latest|Notes|
|:-|:-|:-|:-|:-|
|[`cookie_jar`]|`^4.0.8`|4.0.8|4.0.8||
|[`device_info_plus`]|`^11.5.0`|11.5.0|**12.1.0**||
|[`flutter_web_auth_2`]|`^4.1.0`|4.1.0|4.1.0||
|[`http`]|`>=0.13.6 <2.0.0`|1.5.0|1.5.0||
|[`package_info_plus`]|`^8.0.2`|8.3.1|**9.0.0**||
|[`path_provider`]|`^2.1.4`|2.1.5|2.1.5||
|[`web`]|`^1.0.0`|1.1.1|1.1.1||
|[`web_socket_channel`]|`^3.0.1`|3.0.3|3.0.3||

<details><summary>Transitive dependencies</summary>

|Package|Constraint|Compatible|Latest|Notes|
|:-|:-|:-|:-|:-|
|[`async`]|-|2.13.0|2.13.0||
|[`characters`]|-|1.4.0|1.4.1||
|[`clock`]|-|1.1.2|1.1.2||
|[`collection`]|-|1.19.1|1.19.1||
|[`crypto`]|-|3.0.6|3.0.6||
|[`desktop_webview_window`]|-|0.2.3|0.2.3||
|[`device_info_plus_platform_interface`]|-|7.0.3|7.0.3||
|[`ffi`]|-|2.1.4|2.1.4||
|[`file`]|-|7.0.1|7.0.1||
|[`flutter_web_auth_2_platform_interface`]|-|4.1.0|4.1.0||
|[`http_parser`]|-|4.1.2|4.1.2||
|[`material_color_utilities`]|-|0.11.1|0.13.0||
|[`meta`]|-|1.16.0|1.17.0||
|[`package_info_plus_platform_interface`]|-|3.2.1|3.2.1||
|[`path`]|-|1.9.1|1.9.1||
|[`path_provider_android`]|-|2.2.19|2.2.19||
|[`path_provider_foundation`]|-|2.4.2|2.4.2||
|[`path_provider_linux`]|-|2.2.1|2.2.1||
|[`path_provider_platform_interface`]|-|2.1.2|2.1.2||
|[`path_provider_windows`]|-|2.3.0|2.3.0||
|[`platform`]|-|3.1.6|3.1.6||
|[`plugin_platform_interface`]|-|2.1.8|2.1.8||
|[`source_span`]|-|1.10.1|1.10.1||
|[`stream_channel`]|-|2.1.4|2.1.4||
|[`string_scanner`]|-|1.4.1|1.4.1||
|[`term_glyph`]|-|1.2.2|1.2.2||
|[`typed_data`]|-|1.4.0|1.4.0||
|[`universal_io`]|-|2.2.2|2.2.2||
|[`url_launcher`]|-|6.3.2|6.3.2||
|[`url_launcher_android`]|-|6.3.24|6.3.24||
|[`url_launcher_ios`]|-|6.3.4|6.3.4||
|[`url_launcher_linux`]|-|3.2.1|3.2.1||
|[`url_launcher_macos`]|-|3.2.3|3.2.3||
|[`url_launcher_platform_interface`]|-|2.3.2|2.3.2||
|[`url_launcher_web`]|-|2.4.1|2.4.1||
|[`url_launcher_windows`]|-|3.1.4|3.1.4||
|[`vector_math`]|-|2.2.0|2.2.0||
|[`web_socket`]|-|1.0.1|1.0.1||
|[`win32`]|-|5.15.0|5.15.0||
|[`win32_registry`]|-|2.1.0|2.1.0||
|[`window_to_front`]|-|0.0.3|0.0.3||
|[`xdg_directories`]|-|1.1.0|1.1.0||
</details>

To reproduce run `dart pub outdated --no-dev-dependencies --up-to-date --no-dependency-overrides`.

[`cookie_jar`]: https://pub.dev/packages/cookie_jar
[`device_info_plus`]: https://pub.dev/packages/device_info_plus
[`flutter_web_auth_2`]: https://pub.dev/packages/flutter_web_auth_2
[`http`]: https://pub.dev/packages/http
[`package_info_plus`]: https://pub.dev/packages/package_info_plus
[`path_provider`]: https://pub.dev/packages/path_provider
[`web`]: https://pub.dev/packages/web
[`web_socket_channel`]: https://pub.dev/packages/web_socket_channel
[`async`]: https://pub.dev/packages/async
[`characters`]: https://pub.dev/packages/characters
[`clock`]: https://pub.dev/packages/clock
[`collection`]: https://pub.dev/packages/collection
[`crypto`]: https://pub.dev/packages/crypto
[`desktop_webview_window`]: https://pub.dev/packages/desktop_webview_window
[`device_info_plus_platform_interface`]: https://pub.dev/packages/device_info_plus_platform_interface
[`ffi`]: https://pub.dev/packages/ffi
[`file`]: https://pub.dev/packages/file
[`flutter_web_auth_2_platform_interface`]: https://pub.dev/packages/flutter_web_auth_2_platform_interface
[`http_parser`]: https://pub.dev/packages/http_parser
[`material_color_utilities`]: https://pub.dev/packages/material_color_utilities
[`meta`]: https://pub.dev/packages/meta
[`package_info_plus_platform_interface`]: https://pub.dev/packages/package_info_plus_platform_interface
[`path`]: https://pub.dev/packages/path
[`path_provider_android`]: https://pub.dev/packages/path_provider_android
[`path_provider_foundation`]: https://pub.dev/packages/path_provider_foundation
[`path_provider_linux`]: https://pub.dev/packages/path_provider_linux
[`path_provider_platform_interface`]: https://pub.dev/packages/path_provider_platform_interface
[`path_provider_windows`]: https://pub.dev/packages/path_provider_windows
[`platform`]: https://pub.dev/packages/platform
[`plugin_platform_interface`]: https://pub.dev/packages/plugin_platform_interface
[`source_span`]: https://pub.dev/packages/source_span
[`stream_channel`]: https://pub.dev/packages/stream_channel
[`string_scanner`]: https://pub.dev/packages/string_scanner
[`term_glyph`]: https://pub.dev/packages/term_glyph
[`typed_data`]: https://pub.dev/packages/typed_data
[`universal_io`]: https://pub.dev/packages/universal_io
[`url_launcher`]: https://pub.dev/packages/url_launcher
[`url_launcher_android`]: https://pub.dev/packages/url_launcher_android
[`url_launcher_ios`]: https://pub.dev/packages/url_launcher_ios
[`url_launcher_linux`]: https://pub.dev/packages/url_launcher_linux
[`url_launcher_macos`]: https://pub.dev/packages/url_launcher_macos
[`url_launcher_platform_interface`]: https://pub.dev/packages/url_launcher_platform_interface
[`url_launcher_web`]: https://pub.dev/packages/url_launcher_web
[`url_launcher_windows`]: https://pub.dev/packages/url_launcher_windows
[`vector_math`]: https://pub.dev/packages/vector_math
[`web_socket`]: https://pub.dev/packages/web_socket
[`win32`]: https://pub.dev/packages/win32
[`win32_registry`]: https://pub.dev/packages/win32_registry
[`window_to_front`]: https://pub.dev/packages/window_to_front
[`xdg_directories`]: https://pub.dev/packages/xdg_directories

<details>
<summary>
The constraint `^11.5.0` on device_info_plus does not support the stable version `12.0.0`, that was published 27 days ago. 

 When device_info_plus is 30 days old, this package will no longer be awarded points in this category.
</summary>

Try running `dart pub upgrade --major-versions device_info_plus` to update the constraint.
</details>

<details>
<summary>
The constraint `^8.0.2` on package_info_plus does not support the stable version `9.0.0`, that was published 27 days ago. 

 When package_info_plus is 30 days old, this package will no longer be awarded points in this category.
</summary>

Try running `dart pub upgrade --major-versions package_info_plus` to update the constraint.
</details>

### [*] 10/10 points: Package supports latest stable Dart and Flutter SDKs

### [*] 20/20 points: Compatible with dependency constraint lower bounds

`pub downgrade` does not expose any static analysis error.


Points: 155/160.
Dart
$ dart pub get && dart format . && pana
Resolving dependencies... 
Downloading packages... 
  _fe_analyzer_shared 85.0.0 (89.0.0 available)
  analyzer 7.7.1 (8.2.0 available)
  build 3.0.2 (4.0.2 available)
  build_resolvers 3.0.2 (3.0.4 available)
  build_runner 2.7.0 (2.9.0 available)
  build_runner_core 9.3.0 (9.3.2 available)
  built_value 8.11.1 (8.12.0 available)
  code_builder 4.10.1 (4.11.0 available)
  dart_style 3.1.1 (3.1.2 available)
  mockito 5.5.0 (5.5.1 available)
  pool 1.5.1 (1.5.2 available)
  source_gen 3.1.0 (4.0.1 available)
  watcher 1.1.2 (1.1.4 available)
Got dependencies!
13 packages have newer versions incompatible with dependency constraints.
Try `dart pub outdated` for more information.
Formatted 333 files (0 changed) in 0.97 seconds.
2025-10-08 16:53:59.741274 WARNING: Flutter SDK path was not specified, pana will use the default Dart SDK to run `dart analyze` on Flutter packages.
2025-10-08 16:53:59.750504 INFO: Running `dart --version`...
2025-10-08 16:53:59.846428 INFO: Running `flutter --no-version-check --version --machine`...
2025-10-08 16:54:00.004108 INFO: Running `git rev-parse --show-toplevel`...
2025-10-08 16:54:36.771284 INFO: Running `dart pub get --no-example`...
2025-10-08 16:54:37.872906 INFO: Running `dart pub outdated --json --up-to-date --no-dev-dependencies --no-dependency-overrides`...
2025-10-08 16:54:38.438765 INFO: Analyzing package...
2025-10-08 16:54:38.458417 INFO: Running `dart analyze --format machine lib`...
2025-10-08 16:54:44.631821 INFO: Running `git init`...
2025-10-08 16:54:44.666975 INFO: Running `git remote add origin https://github.com/appwrite/sdk-for-dart`...
2025-10-08 16:54:44.683434 INFO: Running `git remote show origin`...
2025-10-08 16:54:45.213636 INFO: Running `git fetch --depth 1 --no-recurse-submodules origin main`...
2025-10-08 16:54:45.961588 INFO: Running `git ls-tree -r --name-only --full-tree origin/main`...
2025-10-08 16:54:45.980077 INFO: Running `git show origin/main:pubspec.yaml`...
2025-10-08 16:54:49.921715 INFO: Running `dart format --output=none --set-exit-if-changed /private/var/folders/6k/km2h3sl17mbdds6b__2gxzcc0000gn/T/pana_ZgMo2d/examples/dart/lib`...
2025-10-08 16:54:50.789518 INFO: Analyzing pub downgrade...
2025-10-08 16:54:50.793445 INFO: Running `dart pub downgrade --no-example`...
2025-10-08 16:54:51.767010 INFO: Running `dart analyze --format machine lib`...
2025-10-08 16:54:52.805895 INFO: [pub-downgrade-success]
2025-10-08 16:54:52.808625 INFO: Running `dart pub upgrade --no-example`...
2025-10-08 16:54:53.382419 INFO: Running `dart pub global activate dartdoc`...
2025-10-08 16:55:00.630054 INFO: Running `dart pub global run dartdoc --output /private/var/folders/6k/km2h3sl17mbdds6b__2gxzcc0000gn/T/pana.1759967639726.bIRnaX/doc --sanitize-html --max-file-count 10000000 --max-total-size 2147483648 --no-validate-links`...
2025-10-08 16:55:27.464054 INFO: `dartdoc` completed:
                                 Documenting dart_appwrite...
                                 Discovering libraries...
                                 Linking elements...
                                 Precaching local docs for 702344 elements...
                                 Initialized dartdoc with 412 libraries
                                 Generating docs for library enums.dart from package:dart_appwrite/enums.dart...
                                 Generating docs for library dart_appwrite.dart from package:dart_appwrite/dart_appwrite.dart...
                                 Generating docs for library client_browser.dart from package:dart_appwrite/client_browser.dart...
                                 Generating docs for library client_io.dart from package:dart_appwrite/client_io.dart...
                                 Generating docs for library models.dart from package:dart_appwrite/models.dart...
                                 Documented 5 public libraries in 26.2 seconds
                                 Success! Docs generated into /private/var/folders/6k/km2h3sl17mbdds6b__2gxzcc0000gn/T/pana.1759967639726.bIRnaX/doc
                                 Found 0 warnings and 0 errors.

## ✗ Follow Dart file conventions (25 / 30)
### [*] 10/10 points: Provide a valid `pubspec.yaml`

### [*] 5/5 points: Provide a valid `README.md`

### [x] 0/5 points: Provide a valid `CHANGELOG.md`

<details>
<summary>
`CHANGELOG.md` does not contain reference to the current version ("0.0.1").
</summary>

Changelog entries help developers follow the progress of your package. Check out the Dart conventions for [Maintaining a package changelog](https://dart.dev/tools/pub/package-layout#changelog).
</details>

### [*] 10/10 points: Use an OSI-approved license

Detected license: `BSD-3-Clause`.


## ✓ Provide documentation (20 / 20)
### [*] 10/10 points: 20% or more of the public API has dartdoc comments

1475 out of 2008 API elements (73.5 %) have documentation comments.

Some symbols that are missing documentation: `client_browser`, `client_browser.ClientBrowser`, `client_browser.ClientBrowser.ClientBrowser.new`, `client_browser.ClientBrowser.chunkSize`, `client_browser.ClientBrowser.prepareRequest`.

### [*] 10/10 points: Package has an example


## ✓ Platform support (20 / 20)
### [*] 20/20 points: Supports 6 of 6 possible platforms (**iOS**, **Android**, **Web**, **Windows**, **macOS**, **Linux**)

* ✓ Android

* ✓ iOS

* ✓ Windows

* ✓ Linux

* ✓ macOS

* ✓ Web

### [*] 0/0 points: WASM compatibility

This package is compatible with runtime `wasm`, and will be rewarded additional points in a future version of the scoring model.

See https://dart.dev/web/wasm for details.


## ✓ Pass static analysis (50 / 50)
### [*] 50/50 points: code has no errors, warnings, lints, or formatting issues


## ✓ Support up-to-date dependencies (40 / 40)
### [*] 10/10 points: All of the package dependencies are supported in the latest version

|Package|Constraint|Compatible|Latest|Notes|
|:-|:-|:-|:-|:-|
|[`http`]|`>=0.13.6 <2.0.0`|1.5.0|1.5.0||

<details><summary>Transitive dependencies</summary>

|Package|Constraint|Compatible|Latest|Notes|
|:-|:-|:-|:-|:-|
|[`async`]|-|2.13.0|2.13.0||
|[`collection`]|-|1.19.1|1.19.1||
|[`http_parser`]|-|4.1.2|4.1.2||
|[`meta`]|-|1.17.0|1.17.0||
|[`path`]|-|1.9.1|1.9.1||
|[`source_span`]|-|1.10.1|1.10.1||
|[`string_scanner`]|-|1.4.1|1.4.1||
|[`term_glyph`]|-|1.2.2|1.2.2||
|[`typed_data`]|-|1.4.0|1.4.0||
|[`web`]|-|1.1.1|1.1.1||
</details>

To reproduce run `dart pub outdated --no-dev-dependencies --up-to-date --no-dependency-overrides`.

[`http`]: https://pub.dev/packages/http
[`async`]: https://pub.dev/packages/async
[`collection`]: https://pub.dev/packages/collection
[`http_parser`]: https://pub.dev/packages/http_parser
[`meta`]: https://pub.dev/packages/meta
[`path`]: https://pub.dev/packages/path
[`source_span`]: https://pub.dev/packages/source_span
[`string_scanner`]: https://pub.dev/packages/string_scanner
[`term_glyph`]: https://pub.dev/packages/term_glyph
[`typed_data`]: https://pub.dev/packages/typed_data
[`web`]: https://pub.dev/packages/web

### [*] 10/10 points: Package supports latest stable Dart and Flutter SDKs

### [*] 20/20 points: Compatible with dependency constraint lower bounds

`pub downgrade` does not expose any static analysis error.


Points: 155/160.

Related PRs and Issues

Have you read the Contributing Guidelines on issues?

Summary by CodeRabbit

  • Chores
    • Improved formatting workflows for Dart and Flutter: install dependencies before formatting, remove container dependency for Flutter, and include both lib and test when committing formatting changes.
  • Refactor
    • Generated client APIs now require header setters to accept string values.
    • Query/OAuth parameter encoding and related string constructions standardized to interpolation.
    • Runtime socket and realtime initialization details adjusted for clearer behavior.

Install the dependencies so that the full analysis options are used when formatting.
Copy link
Contributor

coderabbitai bot commented Oct 9, 2025

Walkthrough

The PR makes broad template updates across Dart and Flutter generators: CI format workflows now install dependencies and commit both lib and test; OAuth and query construction use string interpolation for encoded parameters; Query constructor default initializers were removed; generated client header setter parameters were typed as String; minor string/key interpolation and user-agent value fixes; a local variable rename in realtime IO; and realtime mixin changes (subscriptions made final, explicit Future return, and path built via interpolation).

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Title Check ⚠️ Warning The title only mentions ensuring full analysis options during formatting, which covers the CI workflow changes but omits the substantial template updates (string interpolation, type tightening, nullability adjustments) intended to improve the pub.dev analysis score. Because it does not clearly summarize the main code-level changes, it fails to convey the full scope of the PR. Please update the title to reflect both the CI workflow improvements and the template code changes (string interpolation, type tightening, and nullability adjustments) that collectively enhance the Dart/Flutter SDK generator’s pub.dev analysis score.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch chore-improve-dart-flutter-pub-dev-score

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between ff6eb83 and e95cd68.

📒 Files selected for processing (10)
  • templates/dart/base/requests/oauth.twig (1 hunks)
  • templates/dart/lib/query.dart.twig (1 hunks)
  • templates/dart/lib/src/client.dart.twig (1 hunks)
  • templates/dart/lib/src/client_mixin.dart.twig (1 hunks)
  • templates/flutter/base/requests/oauth.twig (1 hunks)
  • templates/flutter/lib/src/client.dart.twig (1 hunks)
  • templates/flutter/lib/src/client_io.dart.twig (1 hunks)
  • templates/flutter/lib/src/client_mixin.dart.twig (1 hunks)
  • templates/flutter/lib/src/realtime_io.dart.twig (1 hunks)
  • templates/flutter/lib/src/realtime_mixin.dart.twig (3 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (18)
  • GitHub Check: build (8.3, Ruby30)
  • GitHub Check: build (8.3, Swift56)
  • GitHub Check: build (8.3, KotlinJava17)
  • GitHub Check: build (8.3, Python311)
  • GitHub Check: build (8.3, PHP83)
  • GitHub Check: build (8.3, Python310)
  • GitHub Check: build (8.3, Go118)
  • GitHub Check: build (8.3, Node16)
  • GitHub Check: build (8.3, FlutterBeta)
  • GitHub Check: build (8.3, KotlinJava8)
  • GitHub Check: build (8.3, FlutterStable)
  • GitHub Check: build (8.3, DotNet80)
  • GitHub Check: build (8.3, KotlinJava11)
  • GitHub Check: build (8.3, Android14Java17)
  • GitHub Check: swift (server)
  • GitHub Check: build (8.3, Android5Java17)
  • GitHub Check: android (client)
  • GitHub Check: apple (client)
🔇 Additional comments (13)
templates/flutter/lib/src/realtime_io.dart.twig (1)

35-38: LGTM! Cleaner variable naming.

Removing the underscore prefix from the local variable websok improves readability without affecting functionality.

templates/flutter/lib/src/client_mixin.dart.twig (1)

48-48: LGTM! More idiomatic string construction.

String interpolation ("$key[]") is preferred over concatenation in Dart and aligns with the broader template updates across this PR.

templates/dart/lib/src/client_mixin.dart.twig (1)

48-48: LGTM! Consistent with Dart idioms.

Using string interpolation ("$key[]") instead of concatenation improves readability and aligns with the Flutter template changes.

templates/flutter/lib/src/client_io.dart.twig (1)

184-184: LGTM! Removed redundant string interpolation.

Since device is already a String, wrapping it in '$device' was unnecessary. The direct reference is cleaner and achieves the same result.

templates/dart/lib/src/client.dart.twig (1)

45-45: LGTM! Improved type safety.

Adding explicit String typing to the header setter parameters strengthens the API contract and prevents potential runtime type errors.

templates/dart/base/requests/oauth.twig (1)

19-20: LGTM! Clearer query parameter encoding.

String interpolation for both list and scalar query parameters improves readability compared to concatenation. The functional behavior remains unchanged.

Also applies to: 23-23

templates/flutter/lib/src/client.dart.twig (1)

64-64: LGTM! Type safety enhancement.

Requiring String values for header setters strengthens the type contract and aligns with the corresponding Dart client template changes.

templates/dart/lib/query.dart.twig (1)

9-9: LGTM! Removed redundant default values.

Optional positional parameters with nullable types are implicitly null by default in Dart, so the explicit = null assignments were unnecessary. This cleanup simplifies the constructor signature.

templates/flutter/base/requests/oauth.twig (2)

19-20: LGTM! String interpolation improves readability.

The change from concatenation to string interpolation for list query parameters is a good refactoring that aligns with Dart best practices.


23-23: LGTM! Consistent use of string interpolation.

The change from concatenation to string interpolation for scalar query parameters is consistent with the list handling above and follows Dart conventions.

templates/flutter/lib/src/realtime_mixin.dart.twig (3)

24-24: LGTM! Making _subscriptions final is a good practice.

The map is never reassigned (only mutated via indexing and remove()), so declaring it as final correctly tightens immutability guarantees and aligns with Dart best practices.


56-56: LGTM! Explicit return type improves clarity.

Adding the explicit Future<void> return type to this async method is a Dart best practice that improves code clarity and type safety, even though async functions implicitly return Future.


167-167: LGTM! String interpolation is preferred.

The change from concatenation to string interpolation for the path follows Dart conventions and improves readability.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (1)
templates/flutter/.github/workflows/format.yml.twig (1)

21-27: LGTM! Flutter installation and dependency management properly configured.

Removing the Dart container and using subosito/flutter-action@v2 is the correct approach for Flutter projects. The sequence of installing Flutter first, then running flutter pub get ensures dependencies and analysis options are available before formatting.

Optional: Consider pinning to a specific version for reproducibility.

While using v2 is common practice, pinning to a specific version (e.g., v2.16.0) could improve reproducibility by preventing unexpected updates.

     - name: Install Flutter
-      uses: subosito/flutter-action@v2
+      uses: subosito/flutter-action@v2.16.0
       with:
         channel: stable
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 6a75a4d and ff6eb83.

📒 Files selected for processing (2)
  • templates/dart/.github/workflows/format.yml.twig (2 hunks)
  • templates/flutter/.github/workflows/format.yml.twig (2 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (18)
  • GitHub Check: build (8.3, AppleSwift56)
  • GitHub Check: build (8.3, Ruby30)
  • GitHub Check: build (8.3, Python313)
  • GitHub Check: build (8.3, Python312)
  • GitHub Check: build (8.3, PHP80)
  • GitHub Check: build (8.3, KotlinJava11)
  • GitHub Check: build (8.3, Node16)
  • GitHub Check: build (8.3, KotlinJava17)
  • GitHub Check: build (8.3, FlutterStable)
  • GitHub Check: build (8.3, FlutterBeta)
  • GitHub Check: build (8.3, DotNet90)
  • GitHub Check: build (8.3, DartBeta)
  • GitHub Check: build (8.3, Android5Java17)
  • GitHub Check: build (8.3, Android14Java17)
  • GitHub Check: android (client)
  • GitHub Check: swift (server)
  • GitHub Check: flutter (client)
  • GitHub Check: apple (client)
🔇 Additional comments (3)
templates/dart/.github/workflows/format.yml.twig (2)

23-24: LGTM! Dependencies now installed before formatting.

Running dart pub get ensures the analysis options and dependencies are properly set up before formatting, which aligns with the PR objective to use full analysis options.


35-35: LGTM! Test directory now included in commits.

Including the test directory ensures that any formatting changes to test files are committed alongside lib directory changes.

templates/flutter/.github/workflows/format.yml.twig (1)

38-38: LGTM! Test directory now included in commits.

Including the test directory ensures that any formatting changes to test files are committed alongside lib directory changes, maintaining consistency with the Dart workflow.

@abnegate abnegate merged commit 0721992 into master Oct 9, 2025
66 of 67 checks passed
@abnegate abnegate deleted the chore-improve-dart-flutter-pub-dev-score branch October 9, 2025 00:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants