diff --git a/docs/release-notes/release-2023-11-07.md b/docs/release-notes/release-2023-11-07.md new file mode 100644 index 0000000000..d984180c81 --- /dev/null +++ b/docs/release-notes/release-2023-11-07.md @@ -0,0 +1,85 @@ +--- +title: November 2023 +--- + +# Release Notes November 2023 (2023-11-07) + +:::danger +This release contains **breaking changes** +::: + +## New Features + +### `@typespec/bundler` New Features + +- Add a new cli for `typespec-bundler` +- Expose a bundle manifest with the relative importmap, package name and version. +- Add new hook in emitter famework for handling circular references. +- `TypeEmitter` now supports Tuples. +- Emit error diagnostic if a model spreads itself within its declaration. +- Stop showing empty code frame when diagnostic has no location. + +### `@typespec/compiler` New Features + +- Add new `unixTimestamp32` scalar to standard library. + +### `@typespec/json-schema` New Features + +- Add support for `TupleLiteral`. + +### `@typespec/openapi3` New Features + +- Support `@summary` on data types which emit the JSON Schema `title` property. + +### `@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. +- Add resizable panes for the editor and output. +- Add ability to configure 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. +- [vite plugin] Provide the ability to configure bundling local libraries with the playground or manage the `importmap` yourself with `skipBundleLibraries` option. + +## Bug Fixes + +### `@typespec/compiler` Bug Fixes + +- Fix: `@doc` and jsdoc comments disappear from multi-segment or nested namespaces. +- Fix: Using `@overload` could result in incorrect `unassignable` type errors. +- Fix: Referencing a template in an alias might cause augment decorators to not be applied on types referenced in the aliased type. +- Fix: Issues with removing keys from `RekeyableMap`. +- Fix: Properties filtered with `@withVisibility` will have their visibility removed. This prevent visibility from being applied twice and rendering invalid models. + +### `@typespec/openapi3` Bug Fixes + +- Fix: Stops emitting an error when using `@body _: void` in operation parameters and treat it as no body. +- Fix: Using shared routes would, in some cases, result in a `duplicate-header` error. + +## Breaking Changes + +### 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: + +```bash +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`: + +```diff +-"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. + +### `@typespec/playground` Breaking Changes + +- Styles must be imported seperately with `import \"@typespec/playground/styles.css\";`. + +### `@typespec/versioning` Breaking Changes + +- Update targets for `@added`, `@removed`, `@renamedFrom`, `@madeOptional` and `@typeChangedFrom` to more clearly communicate where they can be used. Specs that applied these decorators to types that could not be versioned (like `namespace`) will now receive an error diagnostic.