dart-sdk/pkg
Ben Konyi 8e00ebc689 [ CLI ] Fix snapshot detection logic for google3
google3 makes heavy use of symlinks, with no guarantee that the relative
location of files with respect to each other will be maintained after
the symlinks are resolved. This causes issues when trying to locate the
DartDev snapshot using the VM executables resolved path as a base.

This change updates the DartDev snapshot detection logic to first try to
find the snapshot using the resolved executable path before falling back
to using the unresolved path used to launch the VM (e.g., the path
specified by argv[0]).

TEST=pkg/dartdev/test/

Change-Id: I19a41c440ac82cbc671dafb3bda23a31fb4cdc0c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/370000
Reviewed-by: Derek Xu <derekx@google.com>
Commit-Queue: Ben Konyi <bkonyi@google.com>
2024-06-06 19:10:19 +00:00
..
_fe_analyzer_shared [cfe] Remove agnostic mode 2024-06-06 11:02:37 +00:00
_js_interop_checks [dart2wasm] Simplify calculateTransitiveImportsOfJsInteropIfUsed 2024-05-31 16:49:59 +00:00
_macros macros: replace unsupported [this] comment references with this. 2024-06-05 18:37:46 +00:00
analysis_server Update completions for pubspec with workspace related keywords. 2024-06-06 18:25:53 +00:00
analysis_server_client [pkg/analysis_server] remove use of package:usage 2024-05-07 22:11:29 +00:00
analysis_server_plugin DAS: Support Parse-only correction producers 2024-06-03 23:13:18 +00:00
analyzer Macro. Serialization for MacroExecutionResult(s). 2024-06-06 16:12:31 +00:00
analyzer_cli CQ. Make FileSource API, move to lib/source. 2024-06-03 00:36:59 +00:00
analyzer_plugin QuickFix. Issue 55773. Flatten FutureOr() when convert to async. 2024-06-03 23:10:09 +00:00
analyzer_utilities meta: add TargetKind to @factory 2024-06-06 15:39:56 +00:00
async_helper
bisect_dart [deps] Roll package:native_assets_builder 2024-03-14 18:06:13 +00:00
build_integration
compiler [cfe] Remove isNonNullableByDefault from class hierarchy 2024-06-03 06:42:54 +00:00
dart2js_info
dart2js_runtime_metrics
dart2js_tools
dart2native [dartdev] Add --depfile option to dart compile 2024-05-23 12:58:29 +00:00
dart2wasm [dart2wasm] Lower type constants to instance constants 2024-06-04 10:01:06 +00:00
dart_internal Bump dart_internal again to work with the latest dev builds. 2024-05-02 23:06:47 +00:00
dart_service_protocol_shared
dartdev [ CLI ] Fix snapshot detection logic for google3 2024-06-06 19:10:19 +00:00
dds Add headers to the DevTools server to enable serving DevTools with wasm. 2024-06-05 17:26:23 +00:00
dds_service_extensions [ DDS ] Rework client resume permissions API 2024-03-21 21:09:42 +00:00
dev_compiler [ddc] Rename variable used to store late value 2024-06-05 20:50:49 +00:00
dtd Bump version in dtd 2024-04-23 16:38:48 +00:00
dtd_impl Ensure that dtd handles relative paths correctly. 2024-04-15 14:29:03 +00:00
expect Reland "Tweak expect.dart library." 2024-04-26 15:28:26 +00:00
front_end [cfe] Account for compilation stage in invocations post-processing 2024-06-06 11:58:30 +00:00
frontend_server [cfe] Remove .isNonNullableByDefault from package:kernel 2024-05-15 08:31:38 +00:00
heap_snapshot
js Reland "Tweak expect.dart library." 2024-04-26 15:28:26 +00:00
js_ast Reland "Tweak expect.dart library." 2024-04-26 15:28:26 +00:00
js_runtime
js_shared
json package:json - drop vendored packages, prep to release 2024-05-24 15:41:05 +00:00
kernel [cfe] Remove agnostic mode 2024-06-06 11:02:37 +00:00
language_versioning_2_12_test
linter [linter] Publish new linter diagnostic messages 2024-06-05 22:07:03 +00:00
macros [macros]: Remove type argument from StaticTypeImpl 2024-05-30 07:51:32 +00:00
meta meta: add TargetKind to @factory 2024-06-06 15:39:56 +00:00
mmap
modular_test drop chmod operations, should not be necessary 2024-04-18 16:34:16 +00:00
native_stack_traces [vm] Add non-symbolic stack trace support for deferred loading units. 2024-04-19 08:10:18 +00:00
reload_test [reload_test] Adding support for negative tests in reload suite. 2024-04-24 12:45:44 +00:00
scrape
server_plugin DAS plugins: Move CorrectionUtils to analysis_server_plugin 2024-04-24 14:12:24 +00:00
smith Reland "Tweak expect.dart library." 2024-04-26 15:28:26 +00:00
sourcemap_testing Reland "Tweak expect.dart library." 2024-04-26 15:28:26 +00:00
status_file
telemetry [pkg/analysis_server] remove use of package:usage 2024-05-07 22:11:29 +00:00
test_runner [infra] Add configurations for ARM64 sanitizer testing. 2024-05-17 16:57:13 +00:00
testing [pkg/testing] restore analysis options settings 2024-04-19 14:45:41 +00:00
vm [cfe] Remove unnecessary use of Nullability.legacy 2024-05-30 08:10:29 +00:00
vm_service [VM/Debugger] Fix bug where breakpoints set in compiled field initializers do not resolve immediately 2024-06-04 15:06:28 +00:00
vm_service_interface [ package:vm_service* ] Prepare for release of package:vm_service 14.2.0 and package:vm_service_interface 1.1.0 2024-03-20 13:34:07 +00:00
vm_service_protos
vm_snapshot_analysis
wasm_builder [wasm_builder] Update incorrect docs, some minor refactoring 2024-05-15 09:49:02 +00:00
.gitignore
analysis_options.yaml
BUILD.gn
OWNERS
pkg.dart
pkg.status [ package:vm_service] Skip regress_55559_test on AOT configurations 2024-05-02 17:20:37 +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. It's 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