dart-sdk/pkg
Brian Wilkerson 3621c6a02f Add a flag to the bulk fix protocol to support testing
I think it makes more sense for the server to read the config file than
for `dart fix` to read it and then pass the data to server as part of
the protocol, which it would effectively need to be parsed a second time.

But I don't want config files to be used outside of test mode, so I
added the flag to the protocol. Let me know if you can think of a better
approach.

Change-Id: I1c53bc995272451247e84914f2cd6b75a837ee1e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/180082
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2021-01-19 23:16:14 +00:00
..
_fe_analyzer_shared [kernel,front_end] Migrate first wave of pkg/kernel and pkg/front_end 2021-01-18 15:40:21 +00:00
_js_interop_checks [pkg:js] Revert revert of @Native/@JS conflicts and cache native 2021-01-15 01:18:02 +00:00
analysis_server Add a flag to the bulk fix protocol to support testing 2021-01-19 23:16:14 +00:00
analysis_server_client Add a flag to the bulk fix protocol to support testing 2021-01-19 23:16:14 +00:00
analyzer Update super-bounded types for null safety. 2021-01-19 20:31:03 +00:00
analyzer_cli analyzer_cli: Remove unnecessary imports 2020-12-30 23:42:50 +00:00
analyzer_plugin [Analyzer] suggest type names in field declarations where fields may have been parsed as field names 2021-01-19 22:26:14 +00:00
analyzer_utilities Enable package:pedantic/analysis_options.1.9.0.yaml and fixes. 2020-12-29 23:41:45 +00:00
async_helper Update pkg dependencies on pkg:analyzer 2020-10-26 19:30:06 +00:00
build_integration Add additional validations to the pkg/ package pubspecs. 2020-12-02 17:27:18 +00:00
compiler Prepare for breaking change in package:http 2021-01-15 16:35:01 +00:00
dart2js_tools update the pubspec.yaml files to reflect actual package usage 2020-08-20 16:08:59 +00:00
dart2native [cfe,dart2js,dartdev] Show null safety mode for dart compile 2021-01-15 11:28:13 +00:00
dart_internal Support the latest SDK with pkg:dart_internal 2020-11-02 21:51:39 +00:00
dartdev [dartdev] remove the disclaimer for dart fix 2021-01-19 19:28:12 +00:00
dds [ package:dds ] Fix issue where handling a StateError due to a VM 2021-01-17 23:08:18 +00:00
dev_compiler [dartdevc] Unwrapping container objects. 2021-01-19 23:02:54 +00:00
diagnostic
expect Add additional validations to the pkg/ package pubspecs. 2020-12-02 17:27:18 +00:00
front_end [cfe] Refactor ClassHierarchyBuilder to use Tuple for computation 2021-01-19 19:52:13 +00:00
frontend_server [frontend_server] Export to_string_transformer from frontend_server.dart 2021-01-15 14:13:28 +00:00
js [ddc] Change is checks for JS types 2020-12-10 01:38:26 +00:00
js_ast [dart2js/js_ast] cleanup: Simplify LiteralExpression 2021-01-12 01:28:10 +00:00
kernel [cfe] Refactor ClassHierarchyBuilder to use Tuple for computation 2021-01-19 19:52:13 +00:00
language_versioning_2.7_test
meta remove redundant experiment 2020-11-11 16:55:22 +00:00
modular_test Update to the latest package:yaml 2020-11-16 22:16:50 +00:00
native_stack_traces Roll args and dart2js_info into the SDK. 2020-12-04 22:58:22 +00:00
nnbd_migration dart migrate: Do not attempt to edit migration status icons for external files 2021-01-19 19:11:22 +00:00
scrape Add a script to scrape string literal quotation data. 2020-12-11 00:13:08 +00:00
smith [test_runner] support testing dartdevk with d8 2021-01-06 01:53:30 +00:00
sourcemap_testing Update List constructor documentation, deprecate constructor. 2020-12-07 16:20:28 +00:00
status_file Update List constructor documentation, deprecate constructor. 2020-12-07 16:20:28 +00:00
telemetry telemetry: Remove unnecessary imports 2020-12-30 22:38:50 +00:00
test_runner [test] Use test configuration name to name generated test directories 2021-01-14 10:12:56 +00:00
testing [cfe] Mention update_expectations.dart in failure log 2021-01-14 12:06:59 +00:00
vm [vm/aot/tfa] Add statistics for analysis time per TFA summary 2021-01-19 18:55:42 +00:00
vm_service Makes _propagateToListeners not recurse unboundedly. 2021-01-19 16:47:32 +00:00
vm_snapshot_analysis Update List constructor documentation, deprecate constructor. 2020-12-07 16:20:28 +00:00
wasm Add an example to package:wasm 2021-01-15 20:58:12 +00:00
.gitignore
BUILD.gn
pkg.status Remove obsolete dartfix build target and scripts 2020-11-13 09:18:36 +00:00
README.md Add additional validations to the pkg/ package pubspecs. 2020-12-02 17:27:18 +00:00

Package validation

The packages in pkg/ are automatically validated on the LUCI CI bots. The validation is largely done by the tools/package_deps package; it can be tested locally via:

dart tools/package_deps/bin/package_deps.dart

Packages which are published

There are several packages developed in pkg/ which are published to pub. Validation of these packages is particularly important because the pub tools are not used for these packages during development; we get our dependency versions from the DEPS file. Its very easy for the dependencies specified in a package's pubspec file to get out of date wrt the packages and versions actually used.

In order to better ensure we're publishing correct packages, we validate some properties of the pubspec files on our CI system. These validations include:

  • that the dependencies listed in the pubspec are used in the package
  • that all the packages used by the source are listed in the pubspec
  • that we don't use relative path deps to pkg/ or third_party/ packages

Packages which are not published

For packages in pkg/ which we do not intend to be published, we put the following comment in the pubspec.yaml file:

# This package is not intended for consumption on pub.dev. DO NOT publish.
publish_to: none

These pubspecs are still validated by the package validation tool. The contents are more informational as the pubspecs for these packages are not consumed by the pub tool or ecosystem.

We validate:

  • that the dependencies listed in the pubspec are used in the package
  • that all the packages used by the source are listed in the pubspec
  • that a reference to a pkg/ package is done via a relative path dependency