package:native_assets_builder and package:native_assets_cli/native_assets_cli_internal.dart are used in package:dartdev and package:flutter_tools.

Dartdev and Flutter Tools are the commandline interfaces for dart ... and flutter ... commands.

Downstream builds

Both Dartdev and Flutter Tools are built in open source, and inside g3.

  • Dartdev as part of the Dart SDK build on the Dart CI.
  • Dartdev as part of the g3 build (see CBuild comments on CLs on Gerrit).
  • Flutter Tools as part of the workflows on GitHub.

The versions used in these different places are as follows:

  • The Dart SDK uses pinned dependencies in DEPS, the current hash is in native_rev.
  • The Flutter build on GitHub ussed published dependencies in its pubspec.yaml.

Rolling

The above means the following.

Breaking changes to native_assets_cli, native_assets_builder, and native_toolchain_c have to be rolled into the Dart SDK with a CL that runs all the pkg bots:

Cq-Include-Trybots: luci.dart.try:pkg-win-release-try,pkg-win-release-arm64-try,pkg-mac-release-try,pkg-mac-release-arm64-try,pkg-linux-release-try,pkg-linux-release-arm64-try,pkg-linux-debug-try

The CI on this repo runs with path dependencies between these packages which corresponds to the path dependencies used in the DEPS file in the Dart SDK.

Breaking changes to native_assets_cli and native_assets_builder have to be rolled into the packages/flutter_tools in the flutter/flutter repo. This package uses published dependencies. So this requires:

  1. Land a commit that sets the native_assets_cli to a stable version.
  2. Publish native_assets_cli on pub.dev.
  3. Land a commit that sets native_assets_builder to a stable version, depends on the published version of native_assets_cli, and removes the publish_to: none.
  4. Publish native_assets_builder on pub.dev.
  5. (Repeat these steps for native_toolchain_c.)
  6. Finally, land a commit that sets all versions to WIP, and adds publish_to: none back in.

The roll status can be seen on internal corp links only: