Third-party Dart packages

There are two types of third-party dependencies in the Fuchsia tree:

  • extracted from pub;
  • sync'd from Git.

Pub dependencies

Pub dependencies are host at //third-party/dart-pkg. That project is regularly kept up-to-date with a script that relies on the pub tool to resolve versions and fetch sources for the packages that are used in the tree. This script uses a set of canonical local packages which are assumed to be providing the necessary package coverage for the entire tree.

Additionally, projects may request third-party dependencies to be imported through the following procedure:

  1. create a dart_dependencies.yaml file in the project
  2. add the desired dependencies in that file:
name: my_project
dependencies:
  foo: ^4.0.0
  bar: >=0.1.0
  1. add a reference to the file in //scripts/dart/update_3p_packages.py
  2. run that script
  3. merge your changes to dart_dependencies.yaml to master
  4. merge the files downloaded by running the ‘update_3p_packages.py’ script, and the script itself, to master.
  5. in the ‘//topaz/manifest/dart’ manifest, update the project node ‘third_part/dart-pkg’ revision attribute with the SHA from your commit in step 6.
  6. merge your change to the ‘//topaz/manifest/dart’ manifest file to master.