---
title: August 2023
---

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

## New Features

### `@typespec/compiler` New Features

- Allow unnamed variants in named unions
- Add `#deprecated` directive to replace `@deprecated` decorator, allowing deprecation any language element
- Add a new util `resolveCompilerOptions` to resolve compiler options from a given entrypoint. This will resolve the options from the tspconfig.yaml in the same way the cli would.
- Improvements to compiler watch mode. Files loaded in previous compilation will be watched for changes.
- Allow library dependency versions to be specified in init templates using the form `{ name: \"the-lib\", version: \"1.0.0\" }`
- Update init template version compare to be greaterThanAndEqual instead of greaterThan.

### `@typespec/http` New Features

- Update model, operation and template docs for OpenAPI developers
- Add collection format support for query and header properties: simple, form, ssv, tsv, pipes

### `@typespec/openapi` and `@typespec/openapi3` New Features

- Add new `@info` decorator providing the ability to specify the additional fields from openapi info object.
- Support collection format support for query and header properties: simple, form, ssv, tsv, pipes
- Change datetimes encoded with `rfc7231` to produce format `http-date` instead of `date-time-rfc7231` to be inline with [Openapi format registry](https://spec.openapis.org/registry/format/)

## Bug Fixes

### `@typespec/compiler` Bug Fixes

- Fix: Compiler version mismatch error would fire incorrectly
- Fix some issues with not reporting deprecation on template constraints
- Fix issue where using augment decorators on spread model properties, enum members or operations extended from parent interface would have no effect.
- Fix issue where using augment decorator on operation parameters applied to source operation parameter as well.
- Fix `warn-as-error` configuration in `tspconfig.yaml` was ignored
- Emit diagnostic for an unresolved metatype property reference
- Fix crash when `using` argument is not a namespace

### `@typespec/openapi3` Bug Fixes

- Fix: Emit clear diagnostics for empty unions and enum types
- Fix: Apply `@minItems` and `@maxItems` decorators on model array

### `@typespec/jsonschema`

- Fix: Crash when using interfaces inside a `@jsonSchema` namespace

## Breaking Changes

### `@typespec/compiler` Breaking Changes

- Emitter Framework: `sourceFile` method can return a `Promise`. This allows running async processes when generating the file content, such as a formatter. This results in a potential breaking change if calling `emitSourceFile` where you'll have to add `await` before.
- The helper function `formatTypeSpec` is now async. Formatter was updated to use prettier 3.0.
