dart-sdk/pkg/vm_service/CHANGELOG.md
Ryan Macnak 5e49ea5ad8 [vm, service] Fix discrepancy between VM generating kind _TypeParameters and service.md claiming the existence of kind TypeParameters.
Fix the service type `TypeParameters` to recognize it is a heap object.

Exhaustively test that the service client libraries can handle inflating all types produced by the VM. Compare vm/cc/PrintJSON, which exhaustively tests the VM can generate any type.

TEST=ci
Bug: https://github.com/dart-lang/sdk/issues/52893
Change-Id: Id1f080656ef6e999e69f2ebb5b9961fa3b461e4a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/316862
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2023-08-01 20:34:21 +00:00

20 KiB

11.9.0

  • Update to version 4.12 of the spec.
  • Add TypeParametersRef; change supertype of TypeParameters to Obj.

11.8.0

  • Update to version 4.11 of the spec.
  • Add isGetter and isSetter properties to FuncRef and Func.

11.7.3

  • Update to version 4.10 of the spec.
  • Add deprecation notice to Breakpoint.isSyntheticAsyncContinuation.

11.7.2

  • Make Event classes abstract to permit dap event stream extensions.

11.7.1

  • Expose RPC error codes that were defined in package:dds.

11.6.0

  • Update to version 4.7 of the spec.
  • Add deprecation notice to Stack.awaiterFrames.
  • Add deprecation notice to FrameKind.kAsyncActivation.

11.5.0

  • Update to version 4.6 of the spec.
  • Add getPerfettoCpuSamples RPC.
  • Add deprecation notice to InstanceKind.TypeRef.

11.4.0

  • Update to version 4.5 of the spec.
  • Add getPerfettoVMTimeline RPC.

11.3.0

  • Update to version 4.4 of the spec.
  • Add label property to InstanceRef.
  • Add kUserTag to InstanceKind.

11.2.1

  • Prevent VmServerConnection from converting SentinelExceptions into RPCErrors.

11.2.0

  • Update to version 4.3 of the spec.
  • Add isSealed, isMixinClass, isBaseClass, isInterfaceClass, and isFinal properties to Class.

11.1.0

  • Reduce number of type checks in toJson() methods.
  • Update to version 4.2 of the spec.
  • Add getInstancesAsList RPC.

11.0.1

  • Fix bug where code would try to call .toJson() on ints.

11.0.0

  • Change HttpProfileRequestRef.id type from int to String.
  • Change SocketStatistic.id type from int to String.
  • Change ext.dart.io.getHttpProfileRequest id parameter type from int to String.
  • Change ext.dart.io.socketProfilingEnabled parameter from 'enable' to 'enabled'.

10.1.2

  • Fix bug where code would try to call .toJson() on Strings.

10.1.0

  • Update to version 4.1 of the spec.
  • Add optional includeSubclasses and includeImplementers parameters to getInstances.

10.0.0

  • Update to version 4.0 of the spec.
  • Update for incorrectly documented types for WeakReference's target, WeakProperty's key and value, and MirrorReference's mirrorReferent.
  • Add Set, Record, and RecordType to InstanceKind.
  • Add deprecation notice to the decl property of BoundField.
  • Add name property to BoundField.
  • Add deprecation notice to the parentListIndex property of InboundReference.
  • Change the type of the parentField property of InboundReference from FieldRef to FieldRef|String|int.
  • Add deprecation notice to the parentListIndex property of RetainingObject.
  • Change the type of the parentField property of RetainingObject from String to String|int.
  • Remove deprecated timeSpan property from CpuSamples.
  • Remove deprecated timeSpan property from CpuSamplesEvent.

9.4.0

  • Update to version 3.61 of the spec.
  • Add isolateGroupId property to @Isolate and Isolate.

9.3.0

  • Update to version 3.60 of the spec.
  • Add gcType property to Event.

9.2.0

  • Update to version 3.59 of the spec.
  • Add abstract flag to FuncRef.

9.1.0

  • Remove required keyword from most of the named parameters in the constructors of the Dart API objects.

9.0.0

  • Update to version 3.58 of the spec.
  • Added optional local parameter to lookupResolvedPackageUris RPC.

8.3.0

  • Update to version 3.57 of the spec.
  • Added optional libraryFilters parameter to getSourceReport RPC.

8.2.2+1

  • Documentation update for FieldRef and FuncRef.

8.2.2

  • Updated the following optional fields to be nullable in SocketStatistic:
    • endTime
    • lastReadTime
    • lastWriteTime

8.2.1

  • Changed type of UriList.uris from dynamic to List<String?>?.
  • Remove example/vm_service_asserts.dart'

8.2.0

  • Update to version 3.56 of the spec.
  • Added optional line and column properties to SourceLocation.
  • Added a new SourceReportKind, BranchCoverage, which reports branch level coverage information.

8.1.0

  • Update to version 3.55 of the spec.
  • Added streamCpuSamplesWithUserTag RPC.

8.0.0

  • Update to version 3.54 of the spec.
  • breaking Updated type of Event.cpuSamples from CpuSamples to CpuSamplesEvent, which is less expensive to generate and serialize.
  • Added CpuSamplesEvent object.

7.5.0

  • Update to version 3.53 of the spec.
  • Added setIsolatePauseMode RPC.
  • Deprecated setExceptionPauseMode in favor of setIsolatePauseMode.

7.4.0

  • Update to version 3.52 of the spec.
  • Added lookupResolvedPackageUris and lookupPackageUris RPCs and UriList type.

7.3.0

  • Update to version 3.51 of the spec.
  • Added optional reportLines parameter to getSourceReport RPC.

7.1.1

  • Update to version 3.48 of the spec.
  • Added shows and hides properties to LibraryDependency.
  • Added Profiler stream, UserTagChanged event kind, and updatedTag and previousTag properties to Event.
  • Fixed bug where a response without a type would cause a null type failure (dart-lang/sdk#46559).

7.1.0

  • Update to version 3.46 of the spec.
  • Move sourcePosition properties into ClassRef, FieldRef, and FuncRef.

7.0.0

  • breaking bug fix: Fixed issue where response parsing could fail for Context.
  • Add support for setBreakpointState RPC and updated Breakpoint class to include enabled property.

6.2.0

  • Added support for getHttpProfile and clearHttpProfile dart:io service extensions.

6.1.1

  • Callsite StackTraces are now attached to RPCErrors and SentinelExceptions.
  • Added identityHashCode property to InstanceRef and Instance.

6.1.0+1

  • Documentation update.

6.1.0

  • breaking bug fix: Fixed issue where the root object was omitted from HeapSnapshot.classes and the sentinel HeapSnapshotObject was omitted from HeapSnapshot.objects
  • Added identityHashCode property to HeapSnapshotObject, which can be used to compare objects across heap snapshots.
  • Added successors iterable to HeapSnapshotObject, which provides a convenient way to access children of a given object.
  • Added klass getter to HeapSnapshotObject.
  • Fixed issue where null could be returned instead of InstanceRef of type Null.
  • Added getAllocationTraces and setTraceClassAllocation RPCs.
  • Updated CpuSample to include identityHashCode and classId properties.
  • Updated Class to include traceAllocations property.

6.0.1

  • Stable null-safe release.

6.0.1-nullsafety.1

  • Fix issue where some Instance properties were not being populated correctly.

6.0.1-nullsafety.0

  • Fix versioning for pub.

6.0.0-nullsafety.4

  • Fixed issue where response parsing could fail for SourceReportRange.coverage if no coverage information was provided.

6.0.0-nullsafety.3

  • Fixed issue where Response.type and classes which override Response.type were returning the name of the package:vm_service reference object (e.g., InstanceRef) instead of the type specified in the specification (e.g., @Instance).

6.0.0-nullsafety.2

  • breaking Updated signature of Field.staticValue to dynamic in order to properly allow for uninitialized sentinel values.

6.0.0-nullsafety.1

  • breaking Null safety migration, take two. Assume all object fields are nullable.

6.0.0-nullsafety-dev

  • breaking Migrate to use null safety.

5.5.1

  • Fix issue where VmService.onDone could complete before the provided DisposeHandler had finished executing.

5.5.0

  • Update to version 3.42.0 of the spec.
  • Added optional limit parameter to getStack RPC.

5.4.0

  • Update to version 3.41.0 of the spec.
  • Added PortList class.
  • Added getPorts RPC.
  • Added optional properties portId, allocationLocation, and debugName to InstanceRef and Instance.

5.3.1

  • Rename State class to _State to avoid class name conflicts with Flutter.

5.3.0

  • Added support for dart:io extensions version 1.5.
  • Added combination getter/setter socketProfilingEnabled.
  • Deprecated startSocketProfiling and pauseSocketProfiling.
  • Update to version 3.40.0 of the spec.
  • Added IsolateFlag class.
  • Added isolateFlags property to Isolate.

5.2.0

  • Added support for dart:io extensions version 1.3.
  • Added combination getter/setter httpEnableTimelineLogging.
  • Deprecated getHttpEnableTimelineLogging and setHttpEnableTimelineLogging.

5.1.0

  • Added support for dart:io extensions version 1.2.
  • Added getOpenFiles, getOpenFileById, getSpawnedProcesses, and getSpawnedProcessById RPCs.
  • Added OpenFileList, OpenFileRef, OpenFile, SpawnedProcessList, SpawnedProcessRef, and SpawnedProcess objects.

5.0.0

  • breaking: Update to version 3.39.0 of the spec.
    • Removes ClientName and WebSocketTarget objects
    • Removes getClientName, getWebSocketTarget, requirePermissionToResume, and setClientName RPCs.
  • Added isSystemIsolate property to IsolateRef and Isolate.
  • Added isSystemIsolateGroup property to IsolateGroupRef and IsolateGroup.
  • Added serviceIsolates and serviceIsolateGroups properties to VM.
  • Fixed issue where VmServerConnection would always response with a string ID even if the request ID was not a string.

4.2.0

  • Update to version 3.37.0 of the spec.
  • Added getProcessMemoryUsage RPC and ProcessMemoryUsage and ProcessMemoryItem objects.
  • Added getWebSocketTarget RPC and WebSocketTarget object.

4.1.0

  • Update to version 3.35.0 of the spec.
  • Expose more @required parameters on the named constructors of VM service objects.

4.0.4

  • Update to version 3.34.0 of the spec.
  • Fixed issue where TimelineEvents was not a valid service event kind.
  • Fixed issue where invoking a service extension with no arguments would result in a TypeError during request routing.
  • Added TimelineStreamSubscriptionsUpdate event, which is broadcast when setVMTimelineFlags is used to change the set of currently recording timeline streams.

4.0.3

  • Update to version 3.33.0 of the spec.
  • Add static error code constants to RPCError.
  • Update the toString() method or RPCError and add a toMap() method.

4.0.2

  • Fixed issue where RPC format did not conform to the JSON-RPC 2.0 specification.
  • Added getClassList RPC.

4.0.1

  • Improved documentation.
  • Fixed analysis issues.

4.0.0

  • breaking: RPCs which can return a Sentinel will now throw a SentinelException if a Sentinel is received as a response.
  • breaking: RPCs which can return multiple values now return Future<Response> rather than Future<dynamic>.
  • RPCError now implements Exception.

3.0.0

  • breaking: RPCs which have an isolateId parameter now return Future<dynamic> as a Sentinel can be returned if the target isolate no longer exists.

2.3.3

  • Classes now implement their corresponding reference types to handle cases where the service returns a more specific type than promised.

2.3.2

  • Added getClientName, setClientName, and requireResumePermission methods.
  • Added ClientName class.

2.3.1

  • Fixed issue where dart:io extensions were not being exported.

2.3.0

  • Added getHttpEnableTimelineLogging and setHttpEnableTimelineLogging methods.
  • Added HttpTimelineLoggingState class.

2.2.1

  • Fixed issue where TimelineEvent.toJson always returned an empty map.

2.2.0

  • Added support for interacting with dart:io service extensions.
  • Bumped minimum SDK requirement to 2.6.0.

2.1.4

  • Fixed issue where TimelineEvent always had no content.

2.1.3

  • Fixed issue where exception would be thrown when attempting to parse a List entry in a response which is not present. This occurs when connected to a service which does not yet support the latest service protocol supported by this package.

2.1.2

  • Requests which have not yet completed when VmService.dispose is invoked will now complete with an RPCError exception rather than a String exception.

2.1.1

  • Added getLineNumberFromTokenPos and getColumnNumberFromTokenPos methods to Script.

2.1.0

  • Added HeapSnapshotGraph class which parses the binary events posted to the HeapSnapshot stream after a requestHeapSnapshot invocation.
  • Fixed issue where listening to EventStream.kHeapSnapshot and calling requestHeapSnapshot would throw an exception.

2.0.0

  • breaking: VM service objects which have fields now have constructors with named parameters for each field. Required fields are annotated with @required.

1.2.0

  • Support service protocol version 3.27:
    • Added getCpuSamples and clearCpuSamples methods
    • Added CpuSamples, CpuSample, and ProfileFunction classes.

1.1.2

  • Fixed issue where closureFunction and closureContext were only expected in Instance objects rather than InstanceRef.

1.1.1

  • Fixed issue serializing list arguments for certain VM service methods.
    • Issue #37872

1.1.0

  • Support service protocol version 3.25:
    • Added getInboundReferences, getRetainingPath methods
    • Added InboundReferences, InboundReference, RetainingPath, and RetainingObject objects

1.0.1

  • Support service protocol version 3.24:
    • Added operatingSystem property to VM object

1.0.0+1

  • Updated description and homepage.

1.0.0

  • Migrated vm_service_lib into the Dart SDK.
  • Renamed from package:vm_service_lib to package:vm_service.
  • Switched versioning system to follow semantic versioning standards instead of pinning versions to match the service protocol version.

3.22.2

  • Fix registerService RPC and Service stream not being handled correctly.
  • Fixed failing tests.

3.22.1

  • breaking: Changed type of library property in Class objects from ObjectRef to LibraryRef.

3.22.0

  • The registerService RPC and Service stream are now public.
  • Event has been updated to include the optional service, method, and alias properties.

3.21.1

  • breaking: Fixed issue where an InstanceRef of type null could be returned instead of null for non-InstanceRef properties and return values. As a result, some property and return types have been changed from Obj to their correct types.

3.21.0

  • support service protocol version 3.21

3.20.0+2

  • allow optional params in getVMTimeline

3.20.0+1

  • handle null isolate ids in callServiceExtension
  • add backwards compatibility for InstanceSet and AllocationProfile

3.20.0

  • rev to 3.20.0; expose public methods added in 3.17 - 3.20 VM Service Protocol versions

3.17.0+1

  • generate a list of available event streams

3.17.0

  • rev to 3.17.0; expose the Logging event and the getMemoryUsage call

3.15.1+2

  • fix handling of errors in registered service callbacks to return valid JSON-RPC errors and avoid the client getting "Service Disappeared" responses

3.15.1+1

  • rename getVmWsUriFromObservatoryUri to convertToWebSocketUrl
  • fix an assignment issue in evaluate

3.15.1

  • Add getVmWsUriFromObservatoryUri, a helper function to convert observatory URIs into the required WebSocket URI for connecting to the VM service.

3.15.0

  • support service protocol version 3.15
  • fix an issue decoding null Script.tokenPosTable values

3.14.3-dev.4

  • Add support for the _Service stream in the VmServerConnection directly.

3.14.3-dev.3

  • Add support for automatically delegating service extension requests to the client which registered them.
    • This is only for services that are registered via the vm service protocol, services registered through dart:developer should be handled by the VmServiceInterface implementation (which should invoke the registered callback directly).
  • Added a ServiceExtensionRegistry class, which tracks which clients have registered which service extensions.
  • breaking: Renamed VmServer to VmServerConnection.
    • One VmServerConnection should be created per client connection to the server. These should typically all share the same underlying VmServiceInterface instance, as well as the same ServiceExtensionRegistry instance.

3.14.3-dev.2

  • Add callServiceExtension method to the VmServiceInterface class.
    • The VmServer will delegate all requests whose methods start with ext. to that implementation.

3.14.3-dev.1

  • Add VmServiceInterface and VmServer classes, which can handle routing jsonrpc2 requests to a VmServiceInterface instance, and serializing the responses back.

3.14.3-dev.0

  • Add toJson methods to all classes.

3.14.2

  • fix code generation for the getSourceReport call

3.14.1

  • address an encoding issue with stdout / stderr text

3.14.0

  • regenerate for v3.14
  • bump to a major version numbering scheme

0.3.10+2

  • work around an issue de-serializing Instance.closureContext

0.3.10+1

  • fix an issue de-serializing some object types

0.3.10

  • regenerate for v3.12
  • expose isolate.getScripts()
  • expose isolate.getInstances()

0.3.9+2

  • handle nulls for Script.source
  • fix a decoding issue for Script.tokenPosTable

0.3.9+1

  • rev to version 3.9 of the spec
  • expose invoke

0.3.9

  • Rename the Null type to NullVal

0.3.8

  • upgrades for Dart 2 dependencies

0.3.7

  • ensure the library works with Dart 2
  • regenerate the library based on the 3.8-dev spec
  • now require a minimum of a 2.0.0-dev Dart SDK
  • update to not use deprecated dart:convert constants

0.3.6

  • workaround for an issue with the type of @Library refs for VM objects

0.3.5+1

  • bug fix for deserializing Instance objects

0.3.5

  • improve access to the profiling APIs

0.3.4

  • more strong mode runtime fixes
  • expose some undocumented (and unsupported) service protocol methods

0.3.3

  • fix strong mode issues at runtime (with JSLists and Lists)
  • expose the ability to evaluate in the scope of another object
  • expose the async causal frame info
  • expose the awaiterFrames field
  • expose the frameIndex param for the step call

0.3.2+1

  • fix a strong mode issue in the generated Dart library

0.3.2

  • expose the PausePostRequest event

0.3.1

  • fix a parsing issue with ExtensionData

0.2.4

  • expose the service protocol timeline API
  • add the new None event type

0.2.3

  • include the name of the calling method in RPC errors

0.2.2

  • fixed several strong mode analysis issues

0.2.1

  • upgrade to service protocol version 3.3

0.2.0

  • upgrade to service protocol version 3.2

0.1.2

  • fixed a bug with the ServiceExtensionAdded event

0.1.1

  • expose the new 'Extension' event information

0.1.0

  • rev to 0.1.0; declare first stable API version

0.0.13

  • improve the toString() message for RPCError

0.0.12

  • bug fix for parsing MapAssociations

0.0.11

  • bug fix to the service extension API

0.0.10

  • expose a service extension API

0.0.9

  • update to the latest spec to capture the Event.inspectee field

0.0.8

  • allow listening to arbitrary event types
  • use Strings for the enum types (to allow for unknown enum values)

0.0.7

  • make the diagnostic logging synchronous
  • remove a workaround for a VM bug (fixed in 1.13.0-dev.7.3)
  • several strong mode fixes

0.0.6

  • added exceptionPauseMode to the Isolate class
  • added hashCode and operator== methods to classes supporting object identity
  • work around a VM bug with the type field of BoundVariable and BoundField

0.0.5

  • added more dartdocs
  • moved back to using Dart enums
  • changed from optional positional params to optional named params

0.0.4

  • enum redux

0.0.3

  • update to use a custom enum class
  • upgrade to the latest service protocol spec

0.0.2

  • added the setExceptionPauseMode method
  • fixed an issue with enum parsing

0.0.1

  • first publish
  • upgraded the library to the 3.0 version of the service protocol
  • upgraded the library to the 2.0 version of the service protocol
  • copied basic Dart API generator from Atom Dart Plugin https://github.com/dart-atom/dartlang/tree/master/tool
  • refactored Dart code to generate Java client as well as Dart client