Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
87 changes: 87 additions & 0 deletions docs/release-notes/release-2023-09-12.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
---
title: September 2023
---

# Release Notes September 2023 (2023-09-12)

:::danger
This release contains **breaking changes**
:::

## New Features

### `@typespec/compiler` New Features

- Allow library authors to precisely define the visibility of operation templates with new decorators `@parameterVisibility` and `@returnTypeVisibility`, paired with corresponding accessor methods `getParameterVisibility` and `getReturnTypeVisibility`.
- Add coloring for documentation comments in Visual Studio and Visual Studio Code language extensions.
- Change yaml parser from `js-yaml` to `yaml`, enabling more precise validation and error reporting in `tspconfig.yaml`
- Added validation to ensure that properties of a derived model (using `extends`) are compatible with the base model indexer.
- Export `CompilerOptions` TypeScript type.
- Report library information when library code crashes during `$onValidate` execution.
- Diagnostics reported on a node with an `id` property will highlight the id instead of the entire node. For example, if a diagnostic is reported on a `model` type, the model name will be highlighted, instead of the entire model definition.

### `@typespec/http` New Features

- Add new helper method `resolveRequestVisibility` which incorporates settings from new core decorators `@parameterVisibility` and `@returnTypeVisibility`. This replaces the deprecated `getRequestVisibility` helper.
- Add new helper method `getDefaultVisibilityForVerb` which returns the default visibility for Http verbs.
- Add validation step to issue a warning when an `operation is` statement does not include route information from the original operation container (`interface` or `namespace`). This helps to prevent unexpected route changes when using operation references.
- Add validation to prevent runtime errors when `OAuth2Auth` is given invalid `OAuth2Flow` arguments.

### `@typespec/json-schema` New Features

- Support decimal scalar types.

### `@typespec/openapi3` New Features

- Allow library authors to override default Http verb visibility in operation declarations.

### `@typespec/protobuf` New features

- Support `omit-unreachable-types` option.
- Automatically convert empty operation parameters into a reference to `google.protobuf.Empty` instead of synthesizing an empty model.

### `typespec-vscode` New features

- Add color definition for `@param` tag in documentation comments

## Bug Fixes

### `@typespec/compiler` Bug Fixes

- Fix issue where specifying a directory using the `--config` command line option would search the parent folder hierarchy looking for `tspconfig.yaml`.
- Fix Stack overflow when a model property references itself.
- Fix compiler crash when using the alias of a namespace that has decorators.
- Fix compiler freeze when an invalid token appears between doc comment and type.
- Fix compiler crash when relating recursive types.
- Fix typo in format error diagnostic.

### `@typespec/openapi3` Bug Fixes

- Fixed issue where parameters marked with visibility \"create\" did not appear in a `PATCH` request body.
- Fixed incorrect usage of `exclusiveMinimum` and `exclusiveMaximum` boolean properties.
- Use `anyOf` instead of `oneOf` for operations with shared routes and different request or response bodies.
- Fix handling of `Record<T>` in `model is` and `model extends` statements.

### `@typespec/versioning` Bug Fixes

- Fixed validation in `@typeChangedFrom` for incorrect versioned references.

## Deprecations

### `@typespec/compiler` Deprecations

- The `@deprecated` decorator has been marked as deprecated. Use `#deprecated` directive instead.

### `@typespec/http` Deprecations

- The `getRequestVisibility` helper function is now deprecated. Use `resolveRequestVisibility` or `getDefaultVisibilityForVerb` instead.

## Breaking Changes

### `@typespec/compiler` Breaking Changes

- A semicolon is now required at the end of augment decorator statements. The formatter was already inserting the semicolon, if omitted. For example:

```tsp
@@doc(MyType.myProperty, "Documentation for myProperty");
```