diff --git a/.dart_tool/package_config.json b/.dart_tool/package_config.json deleted file mode 100644 index 51bc8f57ad9..00000000000 --- a/.dart_tool/package_config.json +++ /dev/null @@ -1,825 +0,0 @@ -{ - "copyright": [ - "Copyright (c) 2022, the Dart project authors. Please see the AUTHORS ", - "file for details. All rights reserved. Use of this source code is ", - "governed by a BSD-style license that can be found in the LICENSE file." - ], - "comment": [ - "Package configuration for all packages in /pkg, and checked out by DEPS", - "into /third_party/pkg and /third_party/pkg_tested.", - "If you add a package to DEPS or /pkg or change a package's SDK", - "constraint, update this by running tools/generate_package_config.dart." - ], - "configVersion": 2, - "generator": "tools/generate_package_config.dart", - "packages": [ - { - "name": "_fe_analyzer_shared", - "rootUri": "../pkg/_fe_analyzer_shared", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "_fe_analyzer_shared_assigned_variables", - "rootUri": "../pkg/_fe_analyzer_shared/test/flow_analysis/assigned_variables", - "packageUri": ".nonexisting/" - }, - { - "name": "_fe_analyzer_shared_definite_assignment", - "rootUri": "../pkg/_fe_analyzer_shared/test/flow_analysis/definite_assignment", - "packageUri": ".nonexisting/" - }, - { - "name": "_fe_analyzer_shared_definite_unassignment", - "rootUri": "../pkg/_fe_analyzer_shared/test/flow_analysis/definite_unassignment", - "packageUri": ".nonexisting/" - }, - { - "name": "_fe_analyzer_shared_inheritance", - "rootUri": "../pkg/_fe_analyzer_shared/test/inheritance", - "packageUri": ".nonexisting/" - }, - { - "name": "_fe_analyzer_shared_nullability", - "rootUri": "../pkg/_fe_analyzer_shared/test/flow_analysis/nullability", - "packageUri": ".nonexisting/" - }, - { - "name": "_fe_analyzer_shared_reachability", - "rootUri": "../pkg/_fe_analyzer_shared/test/flow_analysis/reachability", - "packageUri": ".nonexisting/" - }, - { - "name": "_fe_analyzer_shared_type_promotion", - "rootUri": "../pkg/_fe_analyzer_shared/test/flow_analysis/type_promotion", - "packageUri": ".nonexisting/" - }, - { - "name": "_fe_analyzer_shared_why_not_promoted", - "rootUri": "../pkg/_fe_analyzer_shared/test/flow_analysis/why_not_promoted", - "packageUri": ".nonexisting/" - }, - { - "name": "_js_interop_checks", - "rootUri": "../pkg/_js_interop_checks", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "analysis_server", - "rootUri": "../pkg/analysis_server", - "packageUri": "lib/", - "languageVersion": "2.14" - }, - { - "name": "analysis_server_client", - "rootUri": "../pkg/analysis_server_client", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "analyzer", - "rootUri": "../pkg/analyzer", - "packageUri": "lib/", - "languageVersion": "2.14" - }, - { - "name": "analyzer_cli", - "rootUri": "../pkg/analyzer_cli", - "packageUri": "lib/", - "languageVersion": "2.14" - }, - { - "name": "analyzer_plugin", - "rootUri": "../pkg/analyzer_plugin", - "packageUri": "lib/", - "languageVersion": "2.14" - }, - { - "name": "analyzer_utilities", - "rootUri": "../pkg/analyzer_utilities", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "args", - "rootUri": "../third_party/pkg/args", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "async", - "rootUri": "../third_party/pkg/async", - "packageUri": "lib/", - "languageVersion": "2.14" - }, - { - "name": "async_helper", - "rootUri": "../pkg/async_helper", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "bazel_worker", - "rootUri": "../third_party/pkg/bazel_worker", - "packageUri": "lib/", - "languageVersion": "2.14" - }, - { - "name": "benchmark_harness", - "rootUri": "../third_party/pkg/benchmark_harness", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "boolean_selector", - "rootUri": "../third_party/pkg/boolean_selector", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "browser_launcher", - "rootUri": "../third_party/pkg/browser_launcher", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "build_integration", - "rootUri": "../pkg/build_integration", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "characters", - "rootUri": "../third_party/pkg/characters", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "charcode", - "rootUri": "../third_party/pkg/charcode", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "cli_util", - "rootUri": "../third_party/pkg/cli_util", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "clock", - "rootUri": "../third_party/pkg/clock", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "collection", - "rootUri": "../third_party/pkg/collection", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "compiler", - "rootUri": "../pkg/compiler", - "packageUri": "lib/", - "languageVersion": "2.6" - }, - { - "name": "convert", - "rootUri": "../third_party/pkg/convert", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "crypto", - "rootUri": "../third_party/pkg/crypto", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "csslib", - "rootUri": "../third_party/pkg/csslib", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "dart2js_info", - "rootUri": "../pkg/dart2js_info", - "packageUri": "lib/", - "languageVersion": "2.11" - }, - { - "name": "dart2js_runtime_metrics", - "rootUri": "../pkg/dart2js_runtime_metrics", - "packageUri": "lib/", - "languageVersion": "2.14" - }, - { - "name": "dart2js_tools", - "rootUri": "../pkg/dart2js_tools", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "dart2native", - "rootUri": "../pkg/dart2native", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "dart2wasm", - "rootUri": "../pkg/dart2wasm", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "dart_internal", - "rootUri": "../pkg/dart_internal", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "dart_style", - "rootUri": "../third_party/pkg_tested/dart_style", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "dartdev", - "rootUri": "../pkg/dartdev", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "dartdoc", - "rootUri": "../third_party/pkg/dartdoc", - "packageUri": "lib/", - "languageVersion": "2.14" - }, - { - "name": "dds", - "rootUri": "../pkg/dds", - "packageUri": "lib/", - "languageVersion": "2.13" - }, - { - "name": "dds_service_extensions", - "rootUri": "../pkg/dds_service_extensions", - "packageUri": "lib/", - "languageVersion": "2.13" - }, - { - "name": "dev_compiler", - "rootUri": "../pkg/dev_compiler", - "packageUri": "lib/", - "languageVersion": "2.15" - }, - { - "name": "devtools_shared", - "rootUri": "../third_party/devtools/devtools_shared", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "expect", - "rootUri": "../pkg/expect", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "ffi", - "rootUri": "../third_party/pkg/ffi", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "file", - "rootUri": "../third_party/pkg/file/packages/file", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "file_testing", - "rootUri": "../third_party/pkg/file/packages/file_testing", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "fixnum", - "rootUri": "../third_party/pkg/fixnum", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "front_end", - "rootUri": "../pkg/front_end", - "packageUri": "lib/", - "languageVersion": "2.13" - }, - { - "name": "front_end_testcases", - "rootUri": "../pkg/front_end/testcases", - "packageUri": ".nonexisting/" - }, - { - "name": "frontend_server", - "rootUri": "../pkg/frontend_server", - "packageUri": "lib/", - "languageVersion": "2.7" - }, - { - "name": "frontend_server_client", - "rootUri": "../third_party/pkg/webdev/frontend_server_client", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "glob", - "rootUri": "../third_party/pkg/glob", - "packageUri": "lib/", - "languageVersion": "2.15" - }, - { - "name": "html", - "rootUri": "../third_party/pkg/html", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "http", - "rootUri": "../third_party/pkg/http", - "packageUri": "lib/", - "languageVersion": "2.14" - }, - { - "name": "http_io", - "rootUri": "../third_party/pkg_tested/http_io", - "packageUri": "lib/", - "languageVersion": "2.5" - }, - { - "name": "http_multi_server", - "rootUri": "../third_party/pkg/http_multi_server", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "http_parser", - "rootUri": "../third_party/pkg/http_parser", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "intl", - "rootUri": "../third_party/pkg/intl", - "packageUri": "lib/", - "languageVersion": "2.11" - }, - { - "name": "js", - "rootUri": "../pkg/js", - "packageUri": "lib/", - "languageVersion": "2.16" - }, - { - "name": "js_ast", - "rootUri": "../pkg/js_ast", - "packageUri": "lib/", - "languageVersion": "2.10" - }, - { - "name": "js_runtime", - "rootUri": "../pkg/js_runtime", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "json_rpc_2", - "rootUri": "../third_party/pkg/json_rpc_2", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "kernel", - "rootUri": "../pkg/kernel", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "language_versioning_2.7_test", - "rootUri": "../pkg/language_versioning_2.7_test", - "languageVersion": "2.7" - }, - { - "name": "linter", - "rootUri": "../third_party/pkg/linter", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "lints", - "rootUri": "../third_party/pkg/lints", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "logging", - "rootUri": "../third_party/pkg/logging", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "markdown", - "rootUri": "../third_party/pkg/markdown", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "matcher", - "rootUri": "../third_party/pkg/matcher", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "meta", - "rootUri": "../pkg/meta", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "mime", - "rootUri": "../third_party/pkg/mime", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "mockito", - "rootUri": "../third_party/pkg/mockito", - "packageUri": "lib/", - "languageVersion": "2.0" - }, - { - "name": "modular_test", - "rootUri": "../pkg/modular_test", - "packageUri": "lib/", - "languageVersion": "2.2" - }, - { - "name": "native_stack_traces", - "rootUri": "../pkg/native_stack_traces", - "packageUri": "lib/", - "languageVersion": "2.14" - }, - { - "name": "nnbd_migration", - "rootUri": "../pkg/nnbd_migration", - "packageUri": "lib/", - "languageVersion": "2.14" - }, - { - "name": "oauth2", - "rootUri": "../third_party/pkg/oauth2", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "observatory", - "rootUri": "../runtime/observatory", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "observatory_2", - "rootUri": "../runtime/observatory_2", - "packageUri": "lib/", - "languageVersion": "2.6" - }, - { - "name": "observatory_test_package", - "rootUri": "../runtime/observatory/tests/service/observatory_test_package", - "languageVersion": "2.9" - }, - { - "name": "observatory_test_package_2", - "rootUri": "../runtime/observatory_2/tests/service_2/observatory_test_package_2", - "languageVersion": "2.7" - }, - { - "name": "package_config", - "rootUri": "../third_party/pkg_tested/package_config", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "package_deps", - "rootUri": "../tools/package_deps", - "languageVersion": "2.12" - }, - { - "name": "path", - "rootUri": "../third_party/pkg/path", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "pedantic", - "rootUri": "../third_party/pkg/pedantic", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "platform", - "rootUri": "../third_party/pkg/platform", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "pool", - "rootUri": "../third_party/pkg/pool", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "process", - "rootUri": "../third_party/pkg/process", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "protobuf", - "rootUri": "../third_party/pkg/protobuf/protobuf", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "pub", - "rootUri": "../third_party/pkg/pub", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "pub_semver", - "rootUri": "../third_party/pkg/pub_semver", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "scrape", - "rootUri": "../pkg/scrape", - "packageUri": "lib/", - "languageVersion": "2.13" - }, - { - "name": "sdk_library_metadata", - "rootUri": "../sdk/lib/_internal/sdk_library_metadata", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "shelf", - "rootUri": "../third_party/pkg/shelf", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "shelf_packages_handler", - "rootUri": "../third_party/pkg/shelf_packages_handler", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "shelf_proxy", - "rootUri": "../third_party/pkg/shelf_proxy", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "shelf_static", - "rootUri": "../third_party/pkg/shelf_static", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "shelf_web_socket", - "rootUri": "../third_party/pkg/shelf_web_socket", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "smith", - "rootUri": "../pkg/smith", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "source_map_stack_trace", - "rootUri": "../third_party/pkg/source_map_stack_trace", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "source_maps", - "rootUri": "../third_party/pkg/source_maps", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "source_span", - "rootUri": "../third_party/pkg/source_span", - "packageUri": "lib/", - "languageVersion": "2.14" - }, - { - "name": "sourcemap_testing", - "rootUri": "../pkg/sourcemap_testing", - "packageUri": "lib/", - "languageVersion": "2.1" - }, - { - "name": "sse", - "rootUri": "../third_party/pkg/sse", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "stack_trace", - "rootUri": "../third_party/pkg/stack_trace", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "status_file", - "rootUri": "../pkg/status_file", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "stream_channel", - "rootUri": "../third_party/pkg/stream_channel", - "packageUri": "lib/", - "languageVersion": "2.14" - }, - { - "name": "string_scanner", - "rootUri": "../third_party/pkg/string_scanner", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "sync_http", - "rootUri": "../third_party/pkg/sync_http", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "telemetry", - "rootUri": "../pkg/telemetry", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "term_glyph", - "rootUri": "../third_party/pkg/term_glyph", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "test", - "rootUri": "../third_party/pkg/test/pkgs/test", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "test_api", - "rootUri": "../third_party/pkg/test/pkgs/test_api", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "test_core", - "rootUri": "../third_party/pkg/test/pkgs/test_core", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "test_descriptor", - "rootUri": "../third_party/pkg/test_descriptor", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "test_package", - "rootUri": "../pkg/vm_service/test/test_package", - "languageVersion": "2.12" - }, - { - "name": "test_process", - "rootUri": "../third_party/pkg/test_process", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "test_reflective_loader", - "rootUri": "../third_party/pkg/test_reflective_loader", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "test_runner", - "rootUri": "../pkg/test_runner", - "packageUri": "lib/", - "languageVersion": "2.3" - }, - { - "name": "testing", - "rootUri": "../pkg/testing", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "typed_data", - "rootUri": "../third_party/pkg/typed_data", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "usage", - "rootUri": "../third_party/pkg/usage", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "vector_math", - "rootUri": "../third_party/pkg/vector_math", - "packageUri": "lib/", - "languageVersion": "2.14" - }, - { - "name": "vm", - "rootUri": "../pkg/vm", - "packageUri": "lib/", - "languageVersion": "2.15" - }, - { - "name": "vm_service", - "rootUri": "../pkg/vm_service", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "vm_snapshot_analysis", - "rootUri": "../pkg/vm_snapshot_analysis", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "wasm_builder", - "rootUri": "../pkg/wasm_builder", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "watcher", - "rootUri": "../third_party/pkg/watcher", - "packageUri": "lib/", - "languageVersion": "2.14" - }, - { - "name": "web_components", - "rootUri": "../third_party/pkg/web_components", - "packageUri": "lib/", - "languageVersion": "1.9" - }, - { - "name": "web_socket_channel", - "rootUri": "../third_party/pkg/web_socket_channel", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "webdriver", - "rootUri": "../third_party/pkg/webdriver", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "webkit_inspection_protocol", - "rootUri": "../third_party/pkg/webkit_inspection_protocol", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "yaml", - "rootUri": "../third_party/pkg/yaml", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "yaml_edit", - "rootUri": "../third_party/pkg/yaml_edit", - "packageUri": "lib/", - "languageVersion": "2.12" - } - ] -} diff --git a/.gitignore b/.gitignore index 1f4ccc750ee..9c674bd6ff2 100644 --- a/.gitignore +++ b/.gitignore @@ -75,6 +75,10 @@ client/tests/drt packages pubspec.lock +# The top level package files (these are auto-generated per checkout) +/.dart_tool/package_config.json +/.packages + # Local pub storage .pub diff --git a/.packages b/.packages deleted file mode 100644 index 646a63105a3..00000000000 --- a/.packages +++ /dev/null @@ -1,130 +0,0 @@ -# Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file -# for details. All rights reserved. Use of this source code is governed by a -# BSD-style license that can be found in the LICENSE file. -# -# This file is generated; do not edit. To re-generate, run: -# 'dart tools/generate_package_config.dart'. - -_fe_analyzer_shared:pkg/_fe_analyzer_shared/lib -_js_interop_checks:pkg/_js_interop_checks/lib -analysis_server:pkg/analysis_server/lib -analysis_server_client:pkg/analysis_server_client/lib -analyzer:pkg/analyzer/lib -analyzer_cli:pkg/analyzer_cli/lib -analyzer_plugin:pkg/analyzer_plugin/lib -analyzer_utilities:pkg/analyzer_utilities/lib -args:third_party/pkg/args/lib -async:third_party/pkg/async/lib -async_helper:pkg/async_helper/lib -bazel_worker:third_party/pkg/bazel_worker/lib -benchmark_harness:third_party/pkg/benchmark_harness/lib -boolean_selector:third_party/pkg/boolean_selector/lib -browser_launcher:third_party/pkg/browser_launcher/lib -build_integration:pkg/build_integration/lib -characters:third_party/pkg/characters/lib -charcode:third_party/pkg/charcode/lib -cli_util:third_party/pkg/cli_util/lib -clock:third_party/pkg/clock/lib -collection:third_party/pkg/collection/lib -compiler:pkg/compiler/lib -convert:third_party/pkg/convert/lib -crypto:third_party/pkg/crypto/lib -csslib:third_party/pkg/csslib/lib -dart2js_info:pkg/dart2js_info/lib -dart2js_runtime_metrics:pkg/dart2js_runtime_metrics/lib -dart2js_tools:pkg/dart2js_tools/lib -dart2native:pkg/dart2native/lib -dart2wasm:pkg/dart2wasm/lib -dart_internal:pkg/dart_internal/lib -dart_style:third_party/pkg_tested/dart_style/lib -dartdev:pkg/dartdev/lib -dartdoc:third_party/pkg/dartdoc/lib -dds:pkg/dds/lib -dds_service_extensions:pkg/dds_service_extensions/lib -dev_compiler:pkg/dev_compiler/lib -devtools_shared:third_party/devtools/devtools_shared/lib -expect:pkg/expect/lib -ffi:third_party/pkg/ffi/lib -file:third_party/pkg/file/packages/file/lib -file_testing:third_party/pkg/file/packages/file_testing/lib -fixnum:third_party/pkg/fixnum/lib -front_end:pkg/front_end/lib -frontend_server:pkg/frontend_server/lib -frontend_server_client:third_party/pkg/webdev/frontend_server_client/lib -glob:third_party/pkg/glob/lib -html:third_party/pkg/html/lib -http:third_party/pkg/http/lib -http_io:third_party/pkg_tested/http_io/lib -http_multi_server:third_party/pkg/http_multi_server/lib -http_parser:third_party/pkg/http_parser/lib -intl:third_party/pkg/intl/lib -js:pkg/js/lib -js_ast:pkg/js_ast/lib -js_runtime:pkg/js_runtime/lib -json_rpc_2:third_party/pkg/json_rpc_2/lib -kernel:pkg/kernel/lib -linter:third_party/pkg/linter/lib -lints:third_party/pkg/lints/lib -logging:third_party/pkg/logging/lib -markdown:third_party/pkg/markdown/lib -matcher:third_party/pkg/matcher/lib -meta:pkg/meta/lib -mime:third_party/pkg/mime/lib -mockito:third_party/pkg/mockito/lib -modular_test:pkg/modular_test/lib -native_stack_traces:pkg/native_stack_traces/lib -nnbd_migration:pkg/nnbd_migration/lib -oauth2:third_party/pkg/oauth2/lib -observatory:runtime/observatory/lib -observatory_2:runtime/observatory_2/lib -package_config:third_party/pkg_tested/package_config/lib -path:third_party/pkg/path/lib -pedantic:third_party/pkg/pedantic/lib -platform:third_party/pkg/platform/lib -pool:third_party/pkg/pool/lib -process:third_party/pkg/process/lib -protobuf:third_party/pkg/protobuf/protobuf/lib -pub:third_party/pkg/pub/lib -pub_semver:third_party/pkg/pub_semver/lib -scrape:pkg/scrape/lib -sdk_library_metadata:sdk/lib/_internal/sdk_library_metadata/lib -shelf:third_party/pkg/shelf/lib -shelf_packages_handler:third_party/pkg/shelf_packages_handler/lib -shelf_proxy:third_party/pkg/shelf_proxy/lib -shelf_static:third_party/pkg/shelf_static/lib -shelf_web_socket:third_party/pkg/shelf_web_socket/lib -smith:pkg/smith/lib -source_map_stack_trace:third_party/pkg/source_map_stack_trace/lib -source_maps:third_party/pkg/source_maps/lib -source_span:third_party/pkg/source_span/lib -sourcemap_testing:pkg/sourcemap_testing/lib -sse:third_party/pkg/sse/lib -stack_trace:third_party/pkg/stack_trace/lib -status_file:pkg/status_file/lib -stream_channel:third_party/pkg/stream_channel/lib -string_scanner:third_party/pkg/string_scanner/lib -sync_http:third_party/pkg/sync_http/lib -telemetry:pkg/telemetry/lib -term_glyph:third_party/pkg/term_glyph/lib -test:third_party/pkg/test/pkgs/test/lib -test_api:third_party/pkg/test/pkgs/test_api/lib -test_core:third_party/pkg/test/pkgs/test_core/lib -test_descriptor:third_party/pkg/test_descriptor/lib -test_process:third_party/pkg/test_process/lib -test_reflective_loader:third_party/pkg/test_reflective_loader/lib -test_runner:pkg/test_runner/lib -testing:pkg/testing/lib -typed_data:third_party/pkg/typed_data/lib -usage:third_party/pkg/usage/lib -vector_math:third_party/pkg/vector_math/lib -vm:pkg/vm/lib -vm_service:pkg/vm_service/lib -vm_snapshot_analysis:pkg/vm_snapshot_analysis/lib -wasm_builder:pkg/wasm_builder/lib -watcher:third_party/pkg/watcher/lib -web_components:third_party/pkg/web_components/lib -web_socket_channel:third_party/pkg/web_socket_channel/lib -webdriver:third_party/pkg/webdriver/lib -webkit_inspection_protocol:third_party/pkg/webkit_inspection_protocol/lib -yaml:third_party/pkg/yaml/lib -yaml_edit:third_party/pkg/yaml_edit/lib diff --git a/DEPS b/DEPS index 276e2bdd76e..783aa7b2413 100644 --- a/DEPS +++ b/DEPS @@ -697,6 +697,12 @@ deps_os = { } hooks = [ + { + # Generate the .dart_tool/package_confg.json file. + 'name': 'Generate .dart_tool/package_confg.json', + 'pattern': '.', + 'action': ['python3', 'sdk/tools/generate_package_config.py'], + }, { # Pull Debian sysroot for i386 Linux 'name': 'sysroot_i386', diff --git a/PRESUBMIT.py b/PRESUBMIT.py index fc937031073..6a47593dca6 100644 --- a/PRESUBMIT.py +++ b/PRESUBMIT.py @@ -237,31 +237,6 @@ def _CheckStatusFiles(input_api, output_api): return [] -def _CheckPackageConfigUpToDate(input_api, output_api): - """Checks that .dart_tool/package_config.json is up to date.""" - # Run only if DEPS file or package_config.json have been modified. - if not any(p == 'DEPS' or p == '.dart_tool/package_config.json' or - p.endswith('pubspec.yaml') for p in input_api.LocalPaths()): - return [] - local_root = input_api.change.RepositoryRoot() - utils = imp.load_source('utils', - os.path.join(local_root, 'tools', 'utils.py')) - - dart = utils.CheckedInSdkExecutable() - generate = os.path.join(local_root, 'tools', 'generate_package_config.dart') - cmd = [dart, generate, '--check'] - result = subprocess.run(cmd, shell=utils.IsWindows()) - if result.returncode != 0: - return [ - output_api.PresubmitError( - 'File .dart_tool/package_config.json is out of date.\n' - 'Fix these issues with:\n' - 'gclient sync -D && %s tools/generate_package_config.dart' % - (dart)) - ] - return [] - - def _CheckValidHostsInDEPS(input_api, output_api): """Checks that DEPS file deps are from allowed_hosts.""" # Run only if DEPS file has been modified to annoy fewer bystanders. @@ -382,7 +357,6 @@ def _CommonChecks(input_api, output_api): results.extend(_CheckLayering(input_api, output_api)) results.extend(_CheckClangTidy(input_api, output_api)) results.extend(_CheckTestMatrixValid(input_api, output_api)) - results.extend(_CheckPackageConfigUpToDate(input_api, output_api)) results.extend( input_api.canned_checks.CheckPatchFormatted(input_api, output_api)) return results diff --git a/tools/bots/test_matrix.json b/tools/bots/test_matrix.json index b35e47a9bb4..8845d5ccbae 100644 --- a/tools/bots/test_matrix.json +++ b/tools/bots/test_matrix.json @@ -3559,14 +3559,6 @@ "tools/package_deps/bin/package_deps.dart" ] }, - { - "name": "validate .dart_tool/package_config.json", - "script": "tools/sdks/dart-sdk/bin/dart", - "arguments": [ - "tools/generate_package_config.dart", - "--check" - ] - }, { "name": "build dart", "script": "tools/build.py", diff --git a/tools/generate_package_config.dart b/tools/generate_package_config.dart index b4ba2773ade..417b548046c 100644 --- a/tools/generate_package_config.dart +++ b/tools/generate_package_config.dart @@ -1,136 +1,80 @@ -#!/usr/bin/env dart +// Copyright (c) 2020, the Dart project authors. Please see the AUTHORS file +// for details. All rights reserved. Use of this source code is governed by a +// BSD-style license that can be found in the LICENSE file. /// Generates the repo's ".dart_tool/package_config.json" file. import 'dart:convert'; import 'dart:io'; -import 'package:args/args.dart'; -import 'package:path/path.dart' as p; -import 'package:pub_semver/pub_semver.dart'; -import 'package:yaml/yaml.dart'; +// Important! Do not add package: imports to this file. +// Do not add relative deps for libraries that themselves use package deps. +// This tool runs before the .dart_tool/package_config.json file is created, so +// can not itself use package references. -bool _parseOptions(List args) { - const usage = "Usage: dart generate_package_config.dart [flags...]"; - - var parser = ArgParser(); - - parser.addFlag("help", abbr: "h"); - - parser.addFlag("check", - abbr: "c", - help: "Return with a non-zero exit code if not up-to-date", - negatable: false); - - var results = parser.parse(args); - - if (results["help"] as bool) { - print("Regenerate the .dart_tool/package_config.json file."); - print(""); - print(usage); - print(""); - print(parser.usage); - exit(0); - } - - return results["check"] as bool; -} - -final repoRoot = p.dirname(p.dirname(p.fromUri(Platform.script))); -final configFilePath = p.join(repoRoot, '.dart_tool/package_config.json'); +final repoRoot = dirname(dirname(fromUri(Platform.script))); void main(List args) { - bool checkOnly = _parseOptions(args); - var packageDirs = [ - ...listSubdirectories('pkg'), - ...listSubdirectories('third_party/pkg'), - ...listSubdirectories('third_party/pkg_tested'), - ...listSubdirectories('third_party/pkg/file/packages'), - ...listSubdirectories('third_party/pkg/test/pkgs'), - packageDirectory('runtime/observatory'), - packageDirectory( - 'runtime/observatory/tests/service/observatory_test_package'), - packageDirectory('runtime/observatory_2'), - packageDirectory( + ...listSubdirectories(platform('pkg')), + ...listSubdirectories(platform('third_party/pkg_tested')), + ...listSubdirectories(platform('third_party/pkg')), + ...listSubdirectories(platform('third_party/pkg/file/packages')), + ...listSubdirectories(platform('third_party/pkg/test/pkgs')), + platform('pkg/vm_service/test/test_package'), + platform('runtime/observatory_2'), + platform( 'runtime/observatory_2/tests/service_2/observatory_test_package_2'), - packageDirectory('pkg/vm_service/test/test_package'), - packageDirectory('sdk/lib/_internal/sdk_library_metadata'), - packageDirectory('third_party/devtools/devtools_shared'), - packageDirectory('third_party/pkg/protobuf/protobuf'), - packageDirectory('third_party/pkg/webdev/frontend_server_client'), - packageDirectory('tools/package_deps'), + platform('runtime/observatory'), + platform('runtime/observatory/tests/service/observatory_test_package'), + platform('sdk/lib/_internal/sdk_library_metadata'), + platform('third_party/devtools/devtools_shared'), + platform('third_party/pkg/protobuf/protobuf'), + platform('third_party/pkg/webdev/frontend_server_client'), + platform('tools/package_deps'), ]; var cfePackageDirs = [ - packageDirectory('pkg/front_end/testcases/'), + platform('pkg/front_end/testcases'), ]; var feAnalyzerSharedPackageDirs = [ - packageDirectory( - 'pkg/_fe_analyzer_shared/test/flow_analysis/assigned_variables/'), - packageDirectory( - 'pkg/_fe_analyzer_shared/test/flow_analysis/definite_assignment/'), - packageDirectory( - 'pkg/_fe_analyzer_shared/test/flow_analysis/definite_unassignment/'), - packageDirectory('pkg/_fe_analyzer_shared/test/flow_analysis/nullability/'), - packageDirectory( - 'pkg/_fe_analyzer_shared/test/flow_analysis/reachability/'), - packageDirectory( - 'pkg/_fe_analyzer_shared/test/flow_analysis/type_promotion/'), - packageDirectory( - 'pkg/_fe_analyzer_shared/test/flow_analysis/why_not_promoted//'), - packageDirectory('pkg/_fe_analyzer_shared/test/inheritance/'), + platform('pkg/_fe_analyzer_shared/test/flow_analysis/assigned_variables'), + platform('pkg/_fe_analyzer_shared/test/flow_analysis/definite_assignment'), + platform( + 'pkg/_fe_analyzer_shared/test/flow_analysis/definite_unassignment'), + platform('pkg/_fe_analyzer_shared/test/flow_analysis/nullability'), + platform('pkg/_fe_analyzer_shared/test/flow_analysis/reachability'), + platform('pkg/_fe_analyzer_shared/test/flow_analysis/type_promotion'), + platform('pkg/_fe_analyzer_shared/test/flow_analysis/why_not_promoted'), + platform('pkg/_fe_analyzer_shared/test/inheritance'), ]; - var packages = [ + var packages = [ ...makePackageConfigs(packageDirs), ...makeCfePackageConfigs(cfePackageDirs), ...makeFeAnalyzerSharedPackageConfigs(feAnalyzerSharedPackageDirs) ]; - packages.sort((a, b) => a['name']!.compareTo(b['name']!)); + packages.sort((a, b) => a.name.compareTo(b.name)); - var configFile = File(p.join(repoRoot, '.dart_tool', 'package_config.json')); - var json = jsonDecode(configFile.readAsStringSync()) as Map; - var oldPackages = json['packages'] as List; + var configFile = File(join(repoRoot, '.dart_tool', 'package_config.json')); + var packageConfig = PackageConfig( + packages, + extraData: { + 'copyright': [ + 'Copyright (c) 2020, the Dart project authors. Please see the AUTHORS ', + 'file for details. All rights reserved. Use of this source code is ', + 'governed by a BSD-style license that can be found in the LICENSE file.', + ], + 'comment': [ + 'Package configuration for all packages in pkg/, third_party/pkg/, and', + 'third_party/pkg_tested/', + ], + }, + ); + writeIfDifferent(configFile, packageConfig.generateJson('..')); - if (checkOnly) { - // Validate the packages entry only, to avoid spurious failures from changes - // in the dates embedded in the other entries. - if (jsonEncode(packages) == jsonEncode(oldPackages)) { - print("Package config up to date."); - exit(0); - } else { - print("Package config out of date."); - print("Run `gclient sync -D && dart tools/generate_package_config.dart` " - "to update."); - exit(1); - } - } - - var year = DateTime.now().year; - var config = { - 'copyright': [ - 'Copyright (c) $year, the Dart project authors. Please see the AUTHORS ', - 'file for details. All rights reserved. Use of this source code is ', - 'governed by a BSD-style license that can be found in the LICENSE file.' - ], - 'comment': [ - 'Package configuration for all packages in /pkg, and checked out by DEPS', - 'into /third_party/pkg and /third_party/pkg_tested.', - 'If you add a package to DEPS or /pkg or change a package\'s SDK', - 'constraint, update this by running tools/generate_package_config.dart.' - ], - 'configVersion': 2, - 'generator': 'tools/generate_package_config.dart', - 'packages': packages, - }; - - // TODO(rnystrom): Consider using package_config_v2 to generate this instead. - var jsonString = JsonEncoder.withIndent(' ').convert(config); - configFile.writeAsStringSync('$jsonString\n'); - - // Also generate the reop's .packages file. - var packagesFile = File(p.join(repoRoot, '.packages')); + // Also generate the repo's .packages file. + var packagesFile = File(join(repoRoot, '.packages')); var buffer = StringBuffer(''' # Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file # for details. All rights reserved. Use of this source code is governed by a @@ -141,114 +85,190 @@ void main(List args) { '''); for (var package in packages) { - final name = package['name']; - var path = package['rootUri']!; - if (path.startsWith('../')) { - path = path.substring('../'.length); - } - var packageUri = package['packageUri']; - if (packageUri != null && packageUri.endsWith('/')) { - packageUri = packageUri.substring(0, packageUri.length - 1); - } + final name = package.name; + final rootUri = package.rootUri; + final packageUri = package.packageUri; + if (packageUri != null && packageUri != '.nonexisting') { - buffer.writeln('$name:$path/$packageUri'); + buffer.writeln('$name:${posix(rootUri)}/${posix(packageUri)}'); } } - packagesFile.writeAsStringSync(buffer.toString()); + writeIfDifferent(packagesFile, buffer.toString()); +} + +/// Writes the given [contents] string to [file] if the contents are different +/// than what's currently in the file. +/// +/// This updates the file to the given contents, while preserving the file +/// timestamp if there are no changes. +void writeIfDifferent(File file, String contents) { + if (!file.existsSync() || file.readAsStringSync() != contents) { + file.writeAsStringSync(contents); + } } /// Generates package configurations for each package in [packageDirs]. -Iterable> makePackageConfigs( - List packageDirs) sync* { +Iterable makePackageConfigs(List packageDirs) sync* { for (var packageDir in packageDirs) { var version = pubspecLanguageVersion(packageDir); - var hasLibDirectory = Directory(p.join(packageDir, 'lib')).existsSync(); + var hasLibDirectory = + Directory(join(repoRoot, packageDir, 'lib')).existsSync(); - yield { - 'name': p.basename(packageDir), - 'rootUri': p - .toUri(p.relative(packageDir, from: p.dirname(configFilePath))) - .toString(), - if (hasLibDirectory) 'packageUri': 'lib/', - 'languageVersion': '${version.major}.${version.minor}' - }; + yield Package( + name: basename(packageDir), + rootUri: packageDir, + packageUri: hasLibDirectory ? 'lib/' : null, + languageVersion: version, + ); } } -/// Generates package configurations for the special pseudo-packages used by -/// the CFE unit tests (`pkg/front_end/test/unit_test_suites.dart`). -Iterable> makeCfePackageConfigs( - List packageDirs) sync* { +/// Generates package configurations for the special pseudo-packages used by the +/// CFE unit tests (`pkg/front_end/test/unit_test_suites.dart`). +Iterable makeCfePackageConfigs(List packageDirs) sync* { + // TODO: Remove the use of '.nonexisting/'. for (var packageDir in packageDirs) { - yield { - 'name': 'front_end_${p.basename(packageDir)}', - 'rootUri': p - .toUri(p.relative(packageDir, from: p.dirname(configFilePath))) - .toString(), - 'packageUri': '.nonexisting/', - }; + yield Package( + name: 'front_end_${basename(packageDir)}', + rootUri: packageDir, + packageUri: '.nonexisting/', + ); } } -/// Generates package configurations for the special pseudo-packages used by -/// the _fe_analyzer_shared id tests. -Iterable> makeFeAnalyzerSharedPackageConfigs( +/// Generates package configurations for the special pseudo-packages used by the +/// _fe_analyzer_shared id tests. +Iterable makeFeAnalyzerSharedPackageConfigs( List packageDirs) sync* { + // TODO: Remove the use of '.nonexisting/'. for (var packageDir in packageDirs) { - yield { - 'name': '_fe_analyzer_shared_${p.basename(packageDir)}', - 'rootUri': p - .toUri(p.relative(packageDir, from: p.dirname(configFilePath))) - .toString(), - 'packageUri': '.nonexisting/', - }; + yield Package( + name: '_fe_analyzer_shared_${basename(packageDir)}', + rootUri: packageDir, + packageUri: '.nonexisting/', + ); } } -/// Generates a path to [relativePath] within the repo. -String packageDirectory(String relativePath) => p.join(repoRoot, relativePath); - -/// Finds the paths of the immediate subdirectories of [packagesDir] that +/// Finds the paths of the immediate subdirectories of [dir] that /// contain pubspecs. -Iterable listSubdirectories(String packagesDir) sync* { - for (var entry in Directory(p.join(repoRoot, packagesDir)).listSync()) { +Iterable listSubdirectories(String dir) sync* { + for (var entry in Directory(join(repoRoot, dir)).listSync()) { if (entry is! Directory) continue; - if (!File(p.join(entry.path, 'pubspec.yaml')).existsSync()) continue; - yield entry.path; + if (!File(join(entry.path, 'pubspec.yaml')).existsSync()) continue; + yield join(dir, basename(entry.path)); } } +final versionRE = RegExp(r"(?:\^|>=)(\d+\.\d+)"); + /// Infers the language version from the SDK constraint in the pubspec for /// [packageDir]. -Version pubspecLanguageVersion(String packageDir) { - final dartVersion2 = Version.parse('2.0.0'); - - var pubspecFile = File(p.join(packageDir, 'pubspec.yaml')); - var relative = p.relative(packageDir, from: repoRoot); +/// +/// The version is returned in the form `major.minor`. +String? pubspecLanguageVersion(String packageDir) { + var pubspecFile = File(join(repoRoot, packageDir, 'pubspec.yaml')); if (!pubspecFile.existsSync()) { - print("Error: Missing pubspec for $relative."); + print("Error: Missing pubspec for $packageDir."); exit(1); } - var pubspec = - loadYaml(pubspecFile.readAsStringSync()) as Map; - if (!pubspec.containsKey('environment')) { - print("Error: Pubspec for $relative has no SDK constraint."); + var contents = pubspecFile.readAsLinesSync(); + if (!contents.any((line) => line.contains('sdk: '))) { + print("Error: Pubspec for $packageDir has no SDK constraint."); exit(1); } - var environment = pubspec['environment'] as Map; - if (!environment.containsKey('sdk')) { - print("Error: Pubspec for $relative has no SDK constraint."); + // Handle either "sdk: >=2.14.0 <3.0.0" or "sdk: ^2.3.0". + var sdkConstraint = contents.firstWhere((line) => line.contains('sdk: ')); + sdkConstraint = sdkConstraint.trim().substring('sdk:'.length).trim(); + if (sdkConstraint.startsWith('"') || sdkConstraint.startsWith("'")) { + sdkConstraint = sdkConstraint.substring(1, sdkConstraint.length - 2); + } + + var match = versionRE.firstMatch(sdkConstraint); + if (match == null) { + print("Error: unknown version range for $packageDir: '$sdkConstraint'."); exit(1); } - - var sdkConstraint = VersionConstraint.parse(environment['sdk'] as String); - if (sdkConstraint is VersionRange) { - return sdkConstraint.min ?? dartVersion2; - } - - print("Error: SDK constraint $relative is not a version range."); - exit(1); + return match[1]!; } + +class Package { + final String name; + final String rootUri; + final String? packageUri; + final String? languageVersion; + + Package({ + required this.name, + required this.rootUri, + this.packageUri, + this.languageVersion, + }); + + Map toMap(String relativeTo) { + return { + 'name': name, + 'rootUri': posix(join(relativeTo, rootUri)), + if (packageUri != null) 'packageUri': posix(packageUri!), + if (languageVersion != null) 'languageVersion': languageVersion, + }; + } +} + +class PackageConfig { + final List packages; + final Map? extraData; + + PackageConfig(this.packages, {this.extraData}); + + String generateJson(String relativeTo) { + var config = {}; + if (extraData != null) { + for (var key in extraData!.keys) { + config[key] = extraData![key]; + } + } + config['configVersion'] = 2; + config['generator'] = 'tools/generate_package_config.dart'; + config['packages'] = + packages.map((package) => package.toMap(relativeTo)).toList(); + var jsonString = JsonEncoder.withIndent(' ').convert(config); + return '$jsonString\n'; + } +} + +// Below are some (very simplified) versions of the package:path functions. + +final String _separator = Platform.pathSeparator; + +String dirname(String s) { + return s.substring(0, s.lastIndexOf(_separator)); +} + +String join(String s1, String s2, [String? s3]) { + if (s3 != null) { + return join(join(s1, s2), s3); + } else { + return s1.endsWith(_separator) ? '$s1$s2' : '$s1$_separator$s2'; + } +} + +String basename(String s) { + while (s.endsWith(_separator)) { + s = s.substring(0, s.length - 1); + } + return s.substring(s.lastIndexOf(_separator) + 1); +} + +String fromUri(Uri uri) => uri.toFilePath(); + +/// Given a platform path, return a posix one. +String posix(String s) => + Platform.isWindows ? s.replaceAll(_separator, '/') : s; + +/// Given a posix path, return a platform one. +String platform(String s) => + Platform.isWindows ? s.replaceAll('/', _separator) : s; diff --git a/tools/generate_package_config.py b/tools/generate_package_config.py new file mode 100644 index 00000000000..b763b3d714c --- /dev/null +++ b/tools/generate_package_config.py @@ -0,0 +1,48 @@ +#!/usr/bin/env python3 +# Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file +# for details. All rights reserved. Use of this source code is governed by a +# BSD-style license that can be found in the LICENSE file. + +# Invoke the `tools/generate_package_config.dart` script. + +import os +import os.path +import platform +import subprocess +import sys + +USE_PYTHON3 = True + + +def is_windows(): + os_id = platform.system() + return os_id == 'Windows' + + +def checked_in_sdk_path(): + tools_dir = os.path.dirname(os.path.realpath(__file__)) + return os.path.join(tools_dir, 'sdks', 'dart-sdk') + + +def checked_in_sdk_executable(): + name = 'dart' + if is_windows(): + name = 'dart.exe' + return os.path.join(checked_in_sdk_path(), 'bin', name) + + +def generate_package_config(): + tools_dir = os.path.dirname(os.path.realpath(__file__)) + process = subprocess.run([ + checked_in_sdk_executable(), + os.path.join(tools_dir, 'generate_package_config.dart') + ]) + return process.returncode + + +def Main(): + sys.exit(generate_package_config()) + + +if __name__ == '__main__': + Main()