dart-sdk/pkg
Sam Rawlins e1414089cf Analyzer: avoid dynamic calls while examining Yaml
Change-Id: If569c74bad1d3762deb4cc74ea617d291ec33619
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/190727
Commit-Queue: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2021-03-12 16:50:37 +00:00
..
_fe_analyzer_shared [parser] Recovery of of new/const/Map/Set/List with said literals 2021-03-12 10:41:06 +00:00
_js_interop_checks Clean up arguments in getProperty lowering. 2021-03-09 17:52:30 +00:00
analysis_server Clean up some code in analysis_server 2021-03-12 04:45:39 +00:00
analysis_server_client [analyzer] Suggest arg names in front of positionals 2021-03-04 18:21:19 +00:00
analyzer Analyzer: avoid dynamic calls while examining Yaml 2021-03-12 16:50:37 +00:00
analyzer_cli Move updateAnalysisOptions() to CommandLineOptions. 2021-03-10 00:34:32 +00:00
analyzer_plugin Keep more specific types for AnalysisContextCollectionImpl to avoid downcasts. 2021-03-06 06:23:25 +00:00
analyzer_utilities [sdk] Bump version to 2.13 2021-02-04 12:10:17 +00:00
async_helper [sdk] Bump version to 2.13 2021-02-04 12:10:17 +00:00
build_integration [CFE] Make standard filesystem more synchronous by default; add async versions 2021-02-17 10:28:00 +00:00
compiler [dart2js] Ensure RTI need/checks account for instantiations. 2021-03-12 04:47:59 +00:00
dart2js_tools
dart2native Add --[no-]sound-null-safety option to dart2native and dart compile exe 2021-01-26 19:16:30 +00:00
dart_internal Bump dart_internal to allow 2.12.0. 2021-02-23 00:37:06 +00:00
dartdev Support for single file analysis in 'dart analyze'. 2021-03-11 17:21:50 +00:00
dds Update to the latest package:sse 2021-02-05 20:57:38 +00:00
dev_compiler [kernel] Refactor CanonicalName/Reference integration 2021-03-10 15:39:28 +00:00
diagnostic
expect [sdk] Bump version to 2.13 2021-02-04 12:10:17 +00:00
front_end [cfe] Const function tests removed SharedOptions. 2021-03-12 16:20:17 +00:00
frontend_server Fix expression evaluation failure after hot restart 2021-03-11 23:16:41 +00:00
js Prepare to publish js and meta for null safety 2021-02-02 21:33:17 +00:00
js_ast [dart2js/js_ast] cleanup: Simplify LiteralExpression 2021-01-12 01:28:10 +00:00
js_runtime [dart2js] make js_runtime a proper package 2021-01-25 22:39:23 +00:00
kernel [kernel] Refactor CanonicalName/Reference integration 2021-03-10 15:39:28 +00:00
language_versioning_2.7_test
meta Prepare to publish js and meta for null safety 2021-02-02 21:33:17 +00:00
modular_test Prepare for switching to null safe package_config 2021-01-21 05:04:33 +00:00
native_stack_traces [pkg/native_stack_traces] Create stable null safety version. 2021-02-23 10:27:39 +00:00
nnbd_migration Change "could not" to "couldn't" in error messages 2021-03-10 15:26:38 +00:00
scrape Add a script to scrape string literal quotation data. 2020-12-11 00:13:08 +00:00
smith [infra] Add new compressed architectures to the test matrix. 2021-02-04 17:44:37 +00:00
sourcemap_testing Update List constructor documentation, deprecate constructor. 2020-12-07 16:20:28 +00:00
status_file [test] Apply simarm64 status file entries to simarm64c. 2021-02-25 21:18:02 +00:00
telemetry telemetry: Remove unnecessary imports 2020-12-30 22:38:50 +00:00
test_runner [vm] Allow garbage in the upper-half of compressed Smis. 2021-03-11 19:39:01 +00:00
testing [CFE] Shard front-end try bots better 2021-01-28 14:16:25 +00:00
vm [kernel] Refactor CanonicalName/Reference integration 2021-03-10 15:39:28 +00:00
vm_service vm_service: Remove unnecessary '?' from dynamic types 2021-03-11 20:14:41 +00:00
vm_snapshot_analysis [vm_snapshot_analysis] Publish a new version 2021-02-22 09:16:01 +00:00
wasm Port package:wasm to new FFI Opaque structs and Allocator API 2021-03-03 22:35:14 +00:00
.gitignore
BUILD.gn
pkg.status [test] Apply simarm64 status file entries to simarm64c. 2021-02-25 21:18:02 +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