| # This file represents a "workspace" that applies to the whole repository. | |
| # | |
| # See <https://flutter.dev/go/pub-workspace> for details. | |
| # | |
| # The `flutter/engine` repository is a quasi-monorepo, with multiple Dart tools | |
| # and packages that are all interdependent. Third party dependencies are managed | |
| # by the `DEPS` file in the root of the repository, and are synced to either the | |
| # `third_party` (i.e. `//flutter/third_party`) or `../third_party` (i.e. | |
| # `//third_party`) directories by `gclient sync`. | |
| # | |
| # Every dependency declared here are dependencies used by _one or more_ of the | |
| # packages in the repository (though there is no enforcement of this). This file | |
| # then generates a `.dart_tool/package_config.json` file that is used by the | |
| # rest of the repository to resolve dependencies. | |
| # | |
| # ============================================================================== | |
| # WORKFLOWS | |
| # ============================================================================== | |
| # | |
| # ------------------------------------------------------------------------------ | |
| # (1) ADDING A NEW DEPENDENCY | |
| # ------------------------------------------------------------------------------ | |
| # Dependencies need to be added either via the DEPS file, or by checking if they | |
| # are available in the vendored Dart SDK (see notes below on library locations). | |
| # If dependencies are available, see (4) for how to add dependencies to a package in the workspace. | |
| # | |
| # ------------------------------------------------------------------------------ | |
| # (2) CREATING A NEW PACKAGE | |
| # ------------------------------------------------------------------------------ | |
| # If creating a package, say in ./tools or ./tools/pkg, ensure the following | |
| # header in its respective `pubspec.yaml`: | |
| # ``` | |
| # # We don't publish packages to pub.dev from the engine repository. | |
| # publish_to: none | |
| # | |
| # # Required for workspace support. | |
| # environment: | |
| # sdk: ^3.5.0-294.0.dev | |
| # | |
| # # This package is managed as part of the engine workspace. | |
| # resolution: workspace | |
| # ``` | |
| # | |
| # See (4) for how to add dependencies to a package in the workspace. | |
| # | |
| # ------------------------------------------------------------------------------ | |
| # (3) MIGRATING A NON-WORKSPACE PACKAGE TO USING THE WORKSPACE | |
| # ------------------------------------------------------------------------------ | |
| # Many packages in this repo are still using a pre-workspace style pubspec.yaml, | |
| # either with manually declared `dependency_overrides` (much of ./tools) or by | |
| # using pub (./web_sdk, ./lib/web_ui). To migrate a package to the workspace: | |
| # | |
| # A. Add the `resolution: workspace` field to the pubspec.yaml. | |
| # B. Update the minimum SDK version to at least `^3.5.0-294.0.dev`. | |
| # C. Add the package to the `workspace` field in this file. | |
| # D. Ensure every dependency in the package is added to the `dependencies` field | |
| # in this file, following instructions in (4). | |
| # | |
| # Once `dart pub get` is run on the workspace, the package will be resolved as | |
| # part of the workspace, and the `dependency_overrides` in this file will be | |
| # applied to the package. | |
| # | |
| # ------------------------------------------------------------------------------ | |
| # (4) ADDING DEPENDENCIES TO A PACKAGE IN THIS WORKSPACE | |
| # ------------------------------------------------------------------------------ | |
| # When adding a dependency to a package in the workspace, add the dependency to | |
| # the `dependencies` field in this file. If the dependency is located within | |
| # the repository, use the `path` field to point to the package. | |
| # | |
| # If the dependency is a third party package, add it to the | |
| # `dependency_overrides` field in this file. The `any` version constraint is | |
| # used to indicate that the version of the package is not important, as it is | |
| # managed by the `DEPS` file. | |
| name: _engine_workspace | |
| # Required for workspace support. | |
| environment: | |
| sdk: ^3.5.0-294.0.dev | |
| # Declare all packages that are part of the workspace. | |
| workspace: | |
| - ci | |
| - flutter_frontend_server | |
| - impeller/tessellator/dart | |
| - shell/vmservice | |
| - testing/benchmark | |
| - testing/dart | |
| - testing/litetest | |
| - testing/pkg_test_demo | |
| - testing/scenario_app | |
| - testing/skia_gold_client | |
| - testing/smoke_test_failure | |
| - testing/symbols | |
| - tools/android_lint | |
| - tools/api_check | |
| - tools/build_bucket_golden_scraper | |
| - tools/clang_tidy | |
| - tools/clangd_check | |
| - tools/compare_goldens | |
| - tools/const_finder | |
| - tools/dir_contents_diff | |
| - tools/engine_tool | |
| - tools/header_guard_check | |
| - tools/gen_web_locale_keymap | |
| - tools/githooks | |
| - tools/licenses | |
| - tools/path_ops/dart | |
| - tools/golden_tests_harvester | |
| - tools/pkg/engine_build_configs | |
| - tools/pkg/engine_repo_tools | |
| - tools/pkg/git_repo_tools | |
| - tools/pkg/process_fakes | |
| # Declare all dependencies that are used by one or more packages. | |
| # | |
| # A few notes: | |
| # 1. There is no distinction between "dependencies" and "dev_dependencies"; | |
| # those notions are for *publishing* packages, not for managing a workspace. | |
| # Specific packages in the workspace itself will declare whether they are | |
| # dependencies or dev_dependencies, but here it is a union of both. | |
| # | |
| # 2. The `any` version constraint is used to indicate that the version of the | |
| # package is not important, as it is managed by the `DEPS` file. In other | |
| # words, "if the test pass, ship it". | |
| # | |
| # While not enforced by tooling, try to keep this list in alphabetical order. | |
| # TODO(matanlurey): https://dart.dev/tools/linter-rules/sort_pub_dependencies. | |
| dependencies: | |
| args: any | |
| async_helper: any | |
| expect: any | |
| file: any | |
| logging: any | |
| meta: any | |
| path: any | |
| platform: any | |
| process_runner: any | |
| smith: any | |
| dev_dependencies: | |
| litetest: | |
| path: ./testing/litetest | |
| process_fakes: | |
| path: ./tools/pkg/process_fakes | |
| skia_gold_client: | |
| path: ./testing/skia_gold_client | |
| # Instructs pub on how to resolve the dependencies that are part of "DEPS". | |
| # | |
| # For historic reasons, there are ~3 or so places packages might be located: | |
| # | |
| # - `./third_party/pkg/{name}`: for packages vended directly as part of "DEPS". | |
| # Usually these are Flutter engine specific packages, i.e. they did not exist | |
| # in the Dart vended SDK (the other options below). Typically these originate | |
| # from pub (https://pub.dev) and are mirrored into a Google Git repository: | |
| # <https://flutter.googlesource.com/>. | |
| # | |
| # - `./third_party/dart/pkg/{name}`: for packages that lives *in* the Dart SDK, | |
| # which is in turn vendored into the Flutter engine repository. You can see | |
| # a full list of available packages here: | |
| # <https://github.com/dart-lang/sdk/tree/main/pkg>. | |
| # | |
| # - `./third_party/dart/third_party/pkg/{name}`: for packages that are vendored | |
| # into the Dart SDK from pub.dev. These are often first-party packages from | |
| # the Dart team, but not part of the Dart SDK itself. You can see a full list | |
| # of available packages here: | |
| # <https://github.com/dart-lang/sdk/blob/main/DEPS>. | |
| dependency_overrides: | |
| _discoveryapis_commons: | |
| path: ./third_party/pkg/googleapis/discoveryapis_commons | |
| _fe_analyzer_shared: | |
| path: ./third_party/dart/pkg/_fe_analyzer_shared | |
| _macros: | |
| path: ./third_party/dart/pkg/_macros | |
| analyzer: | |
| path: ./third_party/dart/pkg/analyzer | |
| archive: | |
| path: ./third_party/pkg/archive | |
| args: | |
| path: ./third_party/dart/third_party/pkg/args | |
| async: | |
| path: ./third_party/dart/third_party/pkg/async | |
| async_helper: | |
| path: ./third_party/dart/pkg/async_helper | |
| boolean_selector: | |
| path: ./third_party/dart/third_party/pkg/boolean_selector | |
| collection: | |
| path: ./third_party/dart/third_party/pkg/collection | |
| convert: | |
| path: ./third_party/dart/third_party/pkg/convert | |
| coverage: | |
| path: ./third_party/pkg/coverage | |
| crypto: | |
| path: ./third_party/dart/third_party/pkg/crypto | |
| equatable: | |
| path: ./third_party/pkg/equatable | |
| expect: | |
| path: ./third_party/dart/pkg/expect | |
| file: | |
| path: ./third_party/dart/third_party/pkg/file/packages/file | |
| ffi: | |
| path: ./third_party/dart/third_party/pkg/native/pkgs/ffi | |
| fixnum: | |
| path: ./third_party/dart/third_party/pkg/fixnum | |
| frontend_server_client: | |
| path: ./third_party/dart/third_party/pkg/webdev/frontend_server_client | |
| gcloud: | |
| path: ./third_party/pkg/gcloud | |
| glob: | |
| path: ./third_party/dart/third_party/pkg/glob | |
| googleapis: | |
| path: ./third_party/pkg/googleapis/generated/googleapis | |
| googleapis_auth: | |
| path: ./third_party/pkg/googleapis/googleapis_auth | |
| http: | |
| path: ./third_party/dart/third_party/pkg/http/pkgs/http | |
| http_multi_server: | |
| path: ./third_party/dart/third_party/pkg/http_multi_server | |
| http_parser: | |
| path: ./third_party/dart/third_party/pkg/http_parser | |
| io: | |
| path: ./third_party/pkg/io | |
| js: | |
| path: ./third_party/dart/pkg/js | |
| kernel: | |
| path: ./third_party/dart/pkg/kernel | |
| logging: | |
| path: ./third_party/dart/third_party/pkg/logging | |
| macros: | |
| path: ./third_party/dart/pkg/macros | |
| matcher: | |
| path: ./third_party/dart/third_party/pkg/matcher | |
| meta: | |
| path: ./third_party/dart/pkg/meta | |
| metrics_center: | |
| path: ./third_party/pkg/flutter_packages/packages/metrics_center | |
| mime: | |
| path: ./third_party/dart/third_party/pkg/mime | |
| node_preamble: | |
| path: ./third_party/pkg/node_preamble | |
| package_config: | |
| path: ./third_party/dart/third_party/pkg/package_config | |
| path: | |
| path: ./third_party/dart/third_party/pkg/path | |
| platform: | |
| path: ./third_party/pkg/platform | |
| pool: | |
| path: ./third_party/dart/third_party/pkg/pool | |
| process: | |
| path: ./third_party/pkg/process | |
| process_runner: | |
| path: ./third_party/pkg/process_runner | |
| protobuf: | |
| path: ./third_party/dart/third_party/pkg/protobuf/protobuf | |
| pub_semver: | |
| path: ./third_party/dart/third_party/pkg/pub_semver | |
| shelf: | |
| path: ./third_party/dart/third_party/pkg/shelf/pkgs/shelf | |
| shelf_packages_handler: | |
| path: ./third_party/dart/third_party/pkg/shelf/pkgs/shelf_packages_handler | |
| shelf_static: | |
| path: ./third_party/dart/third_party/pkg/shelf/pkgs/shelf_static | |
| shelf_web_socket: | |
| path: ./third_party/dart/third_party/pkg/shelf/pkgs/shelf_web_socket | |
| smith: | |
| path: ./third_party/dart/pkg/smith | |
| source_map_stack_trace: | |
| path: ./third_party/dart/third_party/pkg/source_map_stack_trace | |
| source_maps: | |
| path: ./third_party/dart/third_party/pkg/source_maps | |
| source_span: | |
| path: ./third_party/dart/third_party/pkg/source_span | |
| stack_trace: | |
| path: ./third_party/dart/third_party/pkg/stack_trace | |
| stream_channel: | |
| path: ./third_party/dart/third_party/pkg/stream_channel | |
| string_scanner: | |
| path: ./third_party/dart/third_party/pkg/string_scanner | |
| term_glyph: | |
| path: ./third_party/dart/third_party/pkg/term_glyph | |
| test: | |
| path: ./third_party/dart/third_party/pkg/test/pkgs/test | |
| test_api: | |
| path: ./third_party/dart/third_party/pkg/test/pkgs/test_api | |
| test_core: | |
| path: ./third_party/dart/third_party/pkg/test/pkgs/test_core | |
| typed_data: | |
| path: ./third_party/dart/third_party/pkg/typed_data | |
| vector_math: | |
| path: ./third_party/pkg/vector_math | |
| vm_service: | |
| path: ./third_party/dart/pkg/vm_service | |
| vm_service_protos: | |
| path: ./third_party/dart/pkg/vm_service_protos | |
| watcher: | |
| path: ./third_party/dart/third_party/pkg/watcher | |
| web: | |
| path: ./third_party/dart/third_party/pkg/web | |
| web_socket: | |
| path: ./third_party/dart/third_party/pkg/http/pkgs/web_socket | |
| web_socket_channel: | |
| path: ./third_party/dart/third_party/pkg/web_socket_channel | |
| webkit_inspection_protocol: | |
| path: ./third_party/dart/third_party/pkg/webkit_inspection_protocol | |
| yaml: | |
| path: ./third_party/dart/third_party/pkg/yaml |