|
| 1 | +--- |
| 2 | +title: 0.68.0 |
| 3 | +--- |
| 4 | + |
| 5 | +import { LinkCard } from "@astrojs/starlight/components"; |
| 6 | + |
| 7 | +<LinkCard |
| 8 | + title="TypeSpec Core 1.12" |
| 9 | + description="See changes to the TypeSpec language and core libraries" |
| 10 | + href="https://typespec.io/release-notes/typespec-1-12-0/" |
| 11 | +/> |
| 12 | + |
| 13 | +# 0.67.0 |
| 14 | + |
| 15 | +## Breaking Changes |
| 16 | + |
| 17 | +### @azure-tools/typespec-client-generator-core |
| 18 | + |
| 19 | +- [#3997](https://github.com/Azure/typespec-azure/pull/3997) Consolidated `SdkOperationGroup` into `SdkClient`. The `SdkOperationGroup` interface has been removed. All operation groups are now represented as `SdkClient` instances. |
| 20 | + |
| 21 | + **Migration Guide:** |
| 22 | + - Replace all references to `SdkOperationGroup` with `SdkClient` |
| 23 | + - Replace `subOperationGroups` with `subClients` |
| 24 | + - Replace `groupPath` with `clientPath` |
| 25 | + - Replace `SdkClient.service` (removed) with `SdkClient.services` (array of namespaces) |
| 26 | + - Replace `listOperationGroups()` with `listSubClients()` |
| 27 | + - Replace `listOperationsInOperationGroup()` with `listOperationsInClient()` |
| 28 | + - Replace `isOperationGroup()` / `getOperationGroup()` — use `getClient()` and check `parent` instead |
| 29 | + |
| 30 | +- [#3997](https://github.com/Azure/typespec-azure/pull/3997) For multiple service case, removed the use of `@useDependency` to declare each service's API version, using the latest version instead. |
| 31 | + |
| 32 | +- [#3997](https://github.com/Azure/typespec-azure/pull/3997) Added multi-service client support with `autoMergeService` property on `@client` decorator. The `service` property now accepts an array of services (e.g., `service: [ServiceA, ServiceB]`). When `autoMergeService: true`, all services' operations and sub clients are auto-merged into the client. Supports advanced scenarios including services as direct children (nested `@client` with `autoMergeService: true` on children) and fully customized client hierarchies using explicit `is` operation mapping. |
| 33 | + |
| 34 | +## Deprecations |
| 35 | + |
| 36 | +### @azure-tools/typespec-azure-resource-manager |
| 37 | + |
| 38 | +- [#4132](https://github.com/Azure/typespec-azure/pull/4132) Updated `@locationResource` documentation to mark it as deprecated and recommend using `@parentResource(ArmLocationResource<...>)` instead. |
| 39 | + |
| 40 | +### @azure-tools/typespec-client-generator-core |
| 41 | + |
| 42 | +- [#3997](https://github.com/Azure/typespec-azure/pull/3997) Deprecated `@operationGroup` decorator in favor of `@client`. The `@operationGroup` decorator now delegates to `@client` internally and will be removed in a future release. Use `@client` to define sub clients instead. |
| 43 | + |
| 44 | +## Features |
| 45 | + |
| 46 | +### @azure-tools/typespec-azure-resource-manager |
| 47 | + |
| 48 | +- [#4188](https://github.com/Azure/typespec-azure/pull/4188) Add GenericResource template in Azure.ResourceManager.Legacy with new "Generic" resource kind |
| 49 | +- [#4004](https://github.com/Azure/typespec-azure/pull/4004) Add new templates to support operationStatus endpoints |
| 50 | + |
| 51 | +### @azure-tools/typespec-client-generator-core |
| 52 | + |
| 53 | +- [#3995](https://github.com/Azure/typespec-azure/pull/3995) Add experimental extern functions for operation transformations: `replaceParameter`, `removeParameter`, `addParameter`, and `reorderParameters`. These functions enable composable transformations that work with `@@override` to customize method signatures in client SDKs. |
| 54 | +- [#4063](https://github.com/Azure/typespec-azure/pull/4063) Add `.crossLanguageVersion` to `SdkPackage` to track equivalent API surfaces across different language SDKs |
| 55 | + |
| 56 | +## Bug Fixes |
| 57 | + |
| 58 | +### @azure-tools/typespec-autorest |
| 59 | + |
| 60 | +- [#4088](https://github.com/Azure/typespec-azure/pull/4088) Fix sorting of x-ms-paths entries that start with `?` (query-only paths). Previously these paths were not sorted alphabetically. |
| 61 | + |
| 62 | +### @azure-tools/typespec-azure-resource-manager |
| 63 | + |
| 64 | +- [#4005](https://github.com/Azure/typespec-azure/pull/4005) Fix `resolveArmResources` returning duplicate resources for versioned specs. |
| 65 | +- [#4072](https://github.com/Azure/typespec-azure/pull/4072) Fix `resolveArmResources` incorrectly merging cross-scope `LegacyOperations` into a single resource. Operations at different scopes (e.g., subscription vs tenant) with the same model but no explicit resource name are now resolved as separate resources. |
| 66 | +- [#4183](https://github.com/Azure/typespec-azure/pull/4183) Fix default resource name for extension resources using `Extension.ScopeParameter` scope. Previously the name was incorrectly prefixed with "ScopeParameter", now it uses just the extension resource name. |
| 67 | +- [#4184](https://github.com/Azure/typespec-azure/pull/4184) Support singleton resources in `resolveArmResources` |
| 68 | + |
| 69 | +### @azure-tools/typespec-client-generator-core |
| 70 | + |
| 71 | +- [#4164](https://github.com/Azure/typespec-azure/pull/4164) Fix `@clientLocation` not working for subscriptionId parameter when another operation had already elevated it to client level |
| 72 | +- [#4135](https://github.com/Azure/typespec-azure/pull/4135) Fix synthetic union created from split HTTP union responses not getting generated name and creating union-of-union when there are more than 2 response types. |
| 73 | +- [#4124](https://github.com/Azure/typespec-azure/pull/4124) Fixed `@clientLocation` operations being lost when targeting a sub client that gets merged in multi-service `autoMergeService` scenarios |
| 74 | +- [#4030](https://github.com/Azure/typespec-azure/pull/4030) Fix File type contentType/accept header handling: add a new branch in `createContentTypeOrAcceptHeader` for File type bodies to produce constant (single content type) or enum (multiple content types) for both contentType and accept params, and fix response contentType header serializedName fallback to "Content-Type" when `@header` is missing |
| 75 | +- [#4177](https://github.com/Azure/typespec-azure/pull/4177) Multi services' client should not honor the specific `api-version` set in config. The `api-version` config value is now cleared when dealing with multi-service clients during the versioning mutation and cache steps. |
| 76 | +- [#4111](https://github.com/Azure/typespec-azure/pull/4111) Add support to use `@scope` to specify generation of parameters for certain languages |
| 77 | +- [#4125](https://github.com/Azure/typespec-azure/pull/4125) Synthetic content type and accept parameters now honor HTTP library's result directly. Single content type produces a constant, multiple content types produce an enum, for both File and non-File body types. |
0 commit comments