Third-party Dart packages

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

  • Extracted from pub.
  • Synced from Git.

Pub dependencies

Pub dependencies are hosted 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. Locate the dart_dependencies.yaml file in //src/dart.

  2. In dart_dependencies.yaml, append the desired dependencies to ‘dependencies’:

    name: module
    dependencies:
      foo: ^4.0.0
      bar: >=0.1.0
    
  3. Run this script:

    //scripts/dart/update_3p_packages.py
    
  4. Merge your changes to dart_dependencies.yaml to main.

  5. Merge the files, downloaded by running the update_3p_packages.py script, to main.

  6. In the //integration/fuchsia/third_party/dart manifest, update the project node third_part/dart-pkg revision attribute with the SHA from your commit of dart_dependencies.yaml..

  7. Merge your change to the //integration/fuchsia/third_party/dart manifest file to main.