There are two types of third-party dependencies in the Fuchsia tree:
- extracted from pub;
- sync'd from Git.
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:
- create a
dart_dependencies.yaml
file in the project - add the desired dependencies in that file:
name: my_project
dependencies:
foo: ^4.0.0
bar: >=0.1.0
- add a reference to the file in
//scripts/dart/update_3p_packages.py
- run that script
- merge your changes to
dart_dependencies.yaml
to master - merge the files downloaded by running the 'update_3p_packages.py' script, and the script itself, to master.
- 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.
- merge your change to the '//topaz/manifest/dart' manifest file to master.