Update release notes for December release (#2732)

This commit is contained in:
Mark Cowlishaw 2023-12-05 17:00:31 -08:00 коммит произвёл GitHub
Родитель 211ca4fda3
Коммит 3fbfbda9a4
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
1 изменённых файлов: 88 добавлений и 0 удалений

Просмотреть файл

@ -0,0 +1,88 @@
---
title: December 2023
---
# Release Notes December 2023 (2023-12-05)
:::danger
This release contains **breaking changes**
:::
## New Features
### `@typespec/compiler` New Features
- **New Language Feature** Added string template literal in typespec. Single and multi-line strings can be interpolated with `${` and `}`. Example `\\Doc for url ${url} is here: ${location}\\`
- [Emitter Framework]: `emitTypeReference` function takes an optional reference context that can be used to patch the context for the target.
- [Emitter Framework]: Added `absolute-path` as a known format for emitter options which will validate the value passed by the user resolve to an absolute path.
- [Emitter Framework]: Allow scalar and enum declarations to provide a reference context.
- [Emitter Framework]: Allow passing a custom context when calling `emitType`.
- Linter rules can now supply a full url to documentation.
- Upgrade formatter to `prettier` version 3.1.
### `@typespec/http` New Features
- Add diagnostic when a namespace exists with routes, but no namespace is marked with `@service`.
### `@typespec/json-schema` New Features
- Add support for simple literal default on model properties.
- Add support for `StringTemplate` literals.
### `@typespec/openapi3` New Features
- Now emits all properties of unreferenced schemas.
- Treat union variants as Discriminator.
- Emitter will now emit all properties of unreferenced schemas.
### `@typespec/playground` New features
- Add a format button to the playground command bar.
- Add a notification to the standalone playground when the playground has been saved.
- Enable changing the theme.
- Add resizable panes for the editor and output
- Add ability to pass a custom footer and use `Footer` and `FooterItem` component to build your own.
- Add `noopener noreferrer` to footer external link
- Move errors and warnings to a dedicated expandable banner at the bottom of the playground.
- **BREAKING CHANGE** Styles must be imported seperately with `import \"@typespec/playground/styles.css\";`
- Allow standalone playground to show a loading fallback.
- Upgrade swagger-ui component.
### `@typespec/rest` New Features
- Fix issue with `ResourceCreateModel` template collecting \"update\" properties instead of \"create\" properties.
## Bug Fixes
### `@typespec/compiler` Bug Fixes
- [Formatter]: Fix: Preserve parentheses in `valueof` expressions inside a union or array (e.g. `(value of strring) | Model`).
- Fix: Union variants are now assigned to the parent union.
### `@typespec/json-schema` Bug Fixes
- Fix: Enum with a value of `0` would have resulted in `type` of `string` and `number`.
- Fix: Scalar constraints combine with base scalar constraints.
- Fix `@maxValueExclusive` setting `minimumExclusive` instead of `maximumExclusive`
### `@typespec/openapi3` Bug Fixes
- Fix: Report diagnostic instead of throwing errors in the case of duplicate ids or unknown scalar.
- FIX: Handle `bytes` as a multipart part type correctly and produce `type: string, format: binary`
### `@typespec/playground` Bug Fixes
- Configure the program viewer to respect the color theme",
### `@typespec/versioning` Bug Fixes
- Fix crash in versioning library`.
## Breaking Changes
- **New Language Feature** string interpolation to strings in TypeSpec. Strings that use the sequence `${` are now expected to start a reference to an interpolated value. Strings that contain `${` and are not meant for interpolation must now be escaped with a `\`, like this: `\${`.
### Semantic Changes in OpenApi3 Output
- Previously, unreferenced `Model` types (types not used in any operation) were emitted using `read` visibility, meaning that properties that had only `create` or `update` visibility would not be included in the corresponding schema in the `@typespec/openapi3` emitter. In this release, all properties of unreferenced Model types will appear in the output.
- Previously, `bytes` types that appeared in a `multipart/form-data` request or response would be marked as a base64 encoded string. In this release, `multipart/form-data` `bytes` types appearing in parts with an `object` type will be treated as a base64-encoded string, while those in non-model parts will appear as raw binary data.