Skip to content

November 2023

Release Notes November 2023 (2023-11-07)

See TypeSpec Core release notes

New Features

@azure-tools/typespec-autorest New Features

  • Add support for ARM common definitions versioning.
  • Add better support for @sharedRoutes by automatically disambiguating x-ms-paths when operation signatures don’t differ by query params.

@azure-tools/typespec-azure-core New Features

  • Add new linter rules discouraging misuse of inheritance and composition. Warn when extending a model without a discriminator or alternatively when composing a model with a discriminator.

@azure-tools/typespec-azure-resource-manager New Features

  • ARM common-types versions can now be selected for each service specification version using the Azure.ResourceManager.CommonTypes.Versions enum with the new @armCommonTypesVersion decorator.
  • Add support for Private Links v5 common types.
  • Add support for Customer Managed Keys v5 common-types.

@azure-tools/typespec-client-generator-core New Features

  • Add parent enum as type on SdkEnumValueType.
  • Add emitterName and emitterContext to SdkContext.

@azure-tools/typespec-providerhub-controller New Features

  • Add extensibility point to generated enum struct - marked generated struct as readonly partial.
  • Added common base class for ResourceControllerBase classes.

Bug Fixes

@azure-tools/typespec-autorest Bug Fixes

  • Fix: Stops emitting an error when using @body _: void in operation parameters and treat it as no body.

@azure-tools/typespec-azure-core Bug Fixes

  • Fix: getLroMetadata did not return the correct logicalResult when the @finalLocation was a ResourceLocation.
  • Fix: Correct property validation for @lroResult and @lroErrorResult.

@azure-tools/typespec-client-generator-core Bug Fixes

  • Fix: @access does not propagate.
  • Fix: usage override for orphan enum.

@azure-tools/typespec-msbuild-target Bug Fixes

  • Fix: Removed condition Language==C#.

@azure-tools/typespec-providerhub-controller Bug Fixes

  • Fix: Ensure models referenced only in derived types are generated.

Deprecations

@azure-tools/typespec-client-generator-core Deprecations

  • Deprecate @include, @exclude, @internal, @clientFormat.

Breaking Changes

  • There are breaking changes in the TypeSpec core libraries, see the release notes for details.

Typescript types breaking change

The package.json files for all packages have been changed to use the standard types field instead of the legacy typesVersions field to specify types for subpath exports. This means that packages consuming TypeSpec must use the moduleResolution setting with node16 or nodenext in their tsconfig.json. You might see the following error:

Terminal window
Cannot find module '@typespec/compiler/testing'. Did you mean to set the 'moduleResolution' option to 'nodenext'

This can be resolved by changing the following in tsconfig.json:

"moduleResolution": "ESNext",
"moduleResolution": "node16",

Dropped Support for Node version 16

  • All typespec packages now specify node 18 as the minimum version. Consuming packages should no longer use node 16 and update the node specification in the engines section of their package.json file appropriately.

@azure-tools/typespec-azure-core Breaking Changes

  • Removed Inprogress from OperationState enum. Added Running, NotStarted states. All APIs that use this enumeration for operation status values will now include these states.