Add release notes for January release (#2813)

This commit is contained in:
Mark Cowlishaw 2024-01-23 14:04:06 -08:00 коммит произвёл GitHub
Родитель 55ea44250d
Коммит f31fae0e48
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: B5690EEEBB952194
1 изменённых файлов: 88 добавлений и 0 удалений

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

@ -0,0 +1,88 @@
---
title: January 2024
---
# Release Notes January 2024 (2024-01-23)
:::danger
This release contains **breaking changes**
:::
## New Features
### `@typespec/compiler` New Features
- **New Language Feature** Added support for named template arguments. Typespec template arguments can now be instantiated both positionally and by name. See [this issue](https://github.com/microsoft/typespec/issues/2340) for details.
- All TypeSpec libraries normalized Template parameter names in anticipation of this change.
- Renamed template parameters in preparation for named template argument instantiation.
- Added new `--template` option to `tsp init` command line action which lets user specify which template to choose from in the template list.
- Added a new init template for creating a new TypeSpec emitter.
- Added a new init template for creating a new TypeSpec library.
- **New Language Feature** Added the ability to use another template parameter as a constraint, e.g. `model Foo<A, B extends A>`.
- Added `@encodedName` decorator and `getEncodedName` accessor.
- Added support for bytes encode to the general encode type.
- Library declaration: Enabled declaration of State symbols in the library declaration, providing a central place to define state symbols used in your libraries.
- Added a new helper function to change casing to the init templates.
### `@typespec/bundler` New Features
- Support for the `types` entry under `exports` in package definitions (instead of the legacy `typesVersions`).
- All TypeSpec libraries are now using this definition style.
- Add a new cli for `typespec-bundler`.
- Expose a bundle manifest with relative importmap, package name, and version.
### `@typespec/openapi3` New Features
- Added support for `@encodedName` decorator.
### `@typespec/playground` New features
- Added a format button to the playground command bar.
- Added a notification to the standalone playground when the playground has been saved.
- Added resizable panes for the editor and output.
- Added the ability to pass a custom footer and use `Footer` and `FooterItem` component to build your own.
- Added the ability to configure the playground via `createBrowserHost` if library loading should use system `importmap` or the es-module-shim library with `importmap-shim`. This was added due to the lack of support for external source map in browsers.
- Provided the ability to configure bundling local libraries with the playground or manage the `importmap` yourself with `skipBundleLibraries` option.
- Moved errors and warnings to a dedicated expandable banner at the bottom of the playground.
- Removed `githubIssueUrl` link and replaced with a `onFileBug` callback.
- Allowed standalone playground to show a loading fallback.
## Bug Fixes
### `@typespec/compiler` Bug Fixes
- Fix: Improved performance of the language server, impacting performance of syntax highlighting and other IDE features.
- Fix: Enabled compiler file resolution for long path names (256+ characters) on windows.
- Fix: Turned off warning when `tsp init` is used with a template that does not specify `compilerVersion`.
### `@typespec/http` Bug Fixes
- Fix: Ensured `@path` custom name is respected.
- Fix: Allowed correct path generation when path parameter is not alpha numeric(Either with a different name provided in `@path` or if the property name is not an identifier)
### `@typespec/playground` Bug Fixes
- Fix: Configured the program viewer to respect the color theme.
- Fix: Provided css exports to `styles.css` in addition to `style.css`. Both are now available for backward compatibility but `styles.css` is the recommended name.
### `@typespec/rest` Bug Fixes
- Fix: Corrected handling of custom @path name in the building of the route.
### `@typespec/versioning` Bug Fixes
## Deprecations
### `@typespec-compiler` Deprecations
- Library declaration: Deprecated linter property on `$lib` in favor of a new `$linter` variable that can be exported. This was done to discourage circular references caused by referencing linter rules in `$lib`.
## Breaking Changes
### Node Version Requirement
- TypeSpec dropped support for node version 16, as this version of node is no longer generally supported. Minimum node version is 18.
### `typespec-playground` Breaking Changes
- **BREAKING CHANGE** Styles must be imported seperately with `import \"@typespec/playground/styles.css\";`.