dart-sdk/pkg
Sam Rawlins 7320da0d19 linter: Add a PRESUBMIT check for example/all.yaml
Work towards https://github.com/dart-lang/sdk/issues/53578

Change-Id: Ia07d999abc2fcf4b8195c9f7688799bc099a1d88
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/341385
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Reviewed-by: Alexander Thomas <athom@google.com>
Reviewed-by: Jonas Termansen <sortie@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
2023-12-15 04:04:28 +00:00
..
_fe_analyzer_shared Revert "Revert "[analyzer] new warning for nullable '==' parameter type"" 2023-12-14 23:58:12 +00:00
_js_interop_checks [dart2wasm] Fix handling of generic callbacks in trampoline 2023-12-12 04:50:13 +00:00
analysis_server Revert "Revert "[analyzer] new warning for nullable '==' parameter type"" 2023-12-14 23:58:12 +00:00
analysis_server_client Remove support for the older legacy completion protocol 2023-12-12 00:54:48 +00:00
analyzer Macro. Support enums introspection. 2023-12-15 00:44:49 +00:00
analyzer_cli deprecate analysis options sdkVersionConstraint getter 2023-12-12 00:20:50 +00:00
analyzer_plugin Remove WithoutNullSafety tests in DAS and analyzer_plugin tests 2023-11-27 21:40:11 +00:00
analyzer_utilities Macro. Fix for 'add constructor', 'augment constructor' sequence. 2023-11-30 01:56:14 +00:00
async_helper [deps] roll package:lints to the latest 2023-10-05 03:36:59 +00:00
bisect_dart Remove the legacy "_2" tests. \o/ 2023-11-17 20:17:23 +00:00
build_integration
compiler Revert "Revert "[analyzer] new warning for nullable '==' parameter type"" 2023-12-14 23:58:12 +00:00
dap [dds/dap] Use super-params in generated code 2023-09-26 20:31:43 +00:00
dart2js_info Update references of dart2js to dart compile js in dart2js info 2023-12-02 21:58:53 +00:00
dart2js_runtime_metrics [ddc] Update for extra null safety checks in RTI 2023-10-19 21:32:15 +00:00
dart2js_tools [pkg] switches the default linting for pkg/ packages to dart_flutter_team_lints 2023-11-11 01:52:16 +00:00
dart2native Also add global owners to CFE/VM packages 2023-11-27 14:35:52 +00:00
dart2wasm [dart2wasm] Add support for compile-time/code-size/memory-use benchmarks of dart2wasm compiler 2023-12-14 14:59:33 +00:00
dart_internal
dart_service_protocol_shared Fix streamNotify so that it works with binary data 2023-11-22 21:06:50 +00:00
dartdev Revert^2 "Bump dartdoc to f05afb4e95767825e52b99dc84eae6eda08a7d8f" 2023-12-14 20:57:13 +00:00
dds Always specify showUser: true when responding an error message in DAP. 2023-12-07 05:19:39 +00:00
dds_service_extensions [package:dds_service_extensions] Prepare to publish version 1.6.3 2023-12-13 16:11:12 +00:00
dev_compiler [ddc] Re-enable 'variance' experiment flag. 2023-12-14 21:01:10 +00:00
dtd [pkg/dtd] minor updates to package:dtd 2023-12-06 18:53:19 +00:00
expect [deps] roll package:lints to the latest 2023-10-05 03:36:59 +00:00
front_end Remove kernel flag Procedure.isAbstractFieldAccessor. 2023-12-14 18:06:52 +00:00
frontend_server [ddc] Add macro flags, add test coverage for basic compile. 2023-12-12 10:07:42 +00:00
heap_snapshot [pkg] switches the default linting for pkg/ packages to dart_flutter_team_lints 2023-11-11 01:52:16 +00:00
js [pkg] remove duplicate config from the analysis options files 2023-11-14 00:37:53 +00:00
js_ast [dart2js] Manually add braces for dangling else. 2023-11-17 20:48:27 +00:00
js_runtime [deps] roll package:lints to the latest 2023-10-05 03:36:59 +00:00
js_shared [dart2js][ddc] Make rti universe field names const 2023-10-09 21:12:48 +00:00
kernel Remove kernel flag Procedure.isAbstractFieldAccessor. 2023-12-14 18:06:52 +00:00
language_versioning_2_12_test Upgrade pkg/language_versioning_2_7_test to 2.12/2.13. 2023-12-12 17:45:13 +00:00
linter linter: Add a PRESUBMIT check for example/all.yaml 2023-12-15 04:04:28 +00:00
meta Fix a few typos 2023-12-12 19:16:13 +00:00
mmap [pkg] Make package:mmap's manually created finalizer compatible with UBSAN. 2023-12-06 17:00:59 +00:00
modular_test [deps] roll package:lints to the latest 2023-10-05 03:36:59 +00:00
native_stack_traces Also add global owners to CFE/VM packages 2023-11-27 14:35:52 +00:00
scrape [scrape] Use dart_flutter_team_lints as base for analysis 2023-12-07 17:57:31 +00:00
smith [dart2wasm] Make tools/test.py -n dart2wasm-linux-jsshell ... work 2023-11-27 15:51:55 +00:00
sourcemap_testing Include ARM64 when uploading d8. 2023-11-21 17:15:20 +00:00
status_file [test] Remove ARM64-specific status entries. 2023-10-09 19:30:29 +00:00
telemetry
test_runner [ test matrix ] Run package:vm_service tests on VM configurations 2023-12-08 15:58:52 +00:00
testing Fix incorrect file reference in license headers 2023-09-18 06:44:08 +00:00
vm [ffi]: Add extension operator methods(+,-) for pointer arithmetic 2023-12-14 11:42:38 +00:00
vm_service [ package:vm_service ] Add logging to get_allocation_traces_test 2023-12-12 17:11:27 +00:00
vm_service_interface [package:vm_service_interface] Prepare to publish version 1.0.1 2023-12-13 16:12:24 +00:00
vm_service_protos Also add global owners to CFE/VM packages 2023-11-27 14:35:52 +00:00
vm_snapshot_analysis Also add global owners to CFE/VM packages 2023-11-27 14:35:52 +00:00
wasm_builder [dart2wasm] Fix table.get/set instruction builders 2023-12-07 15:05:14 +00:00
.gitignore
analysis_options.yaml [pkg] switches the default linting for pkg/ packages to dart_flutter_team_lints 2023-11-11 01:52:16 +00:00
BUILD.gn
OWNERS
pkg.dart [pkg] switches the default linting for pkg/ packages to dart_flutter_team_lints 2023-11-11 01:52:16 +00:00
pkg.status [ package:vm_service ] Mark some tests as slow 2023-12-11 18:52:27 +00:00
README.md

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