Skip to content

Releases: aws/jsii-compiler

v5.0.2

30 Mar 13:18
v5.0.2
fc559a8
Compare
Choose a tag to compare

What's Changed

Full Changelog: v5.0.1...v5.0.2

v5.0.1

28 Mar 14:34
35acaf9
Compare
Choose a tag to compare

What's Changed

Full Changelog: v5.0.0...v5.0.1

v5.0.0

20 Mar 12:37
v5.0.0
4ff1caa
Compare
Choose a tag to compare

Announcing [email protected]

Starting with this release, all packages in the jsii toolchain that internally use the TypeScript compiler (i.e: jsii and jsii-rosetta) will be released on a new release line that uses the same major.minor number as the TypeScript compiler they are built against. All other packages (such as @jsii/spec, jsii-pacmak, etc...) will continue to be released against the same 1.x release line they are currently released in.

The TypeScript compiler does not conform to semantic versioning), and instead guarantees the absence of breaking changes within a given major.minor release line. We recommend developers model their dependencies on jsii and jsii-rosetta using a minor-pinned version range (e.g: ~5.0.0) in order to avoid new TypeScript language versions breaking their codebases at undesirable times.

New features will be introduced only in the latest major.minor release line of jsii and jsii-rosetta (typically corresponding to the current stable release of the TypeScript compiler). Breaking changes may be introduced with every new major.minor release line and will continue to be documented in the CHANGELOG.

Users may need to modify their code when upgrading from one major.minor release line to another (addressing TypeScript language evolutions and jsii feature evolutions). While upgrading to the latest release line of jsii helps minimize the effort required for these updates, the release strategy allows developers to do so on their own schedule.

This change is made to allow developers to benefit from the latest and greatest features of the TypeScript language without requiring the entire ecosystem to make the switch at the same time.

The complete support policy applicable for this release of jsii-rosetta can be found on GitHub.

Breaking Changes

In order to allow developers to use the latest & greatest features of TypeScript, the jsii compiler and jsii-rosetta are now made in-line with those of the typescript compiler (e.g: [email protected] is built on TypeScript 5.0.x). Since the TypeScript compiler does not follow semantic versioning, we strongly recommend you upgrade your devDependency on jsii and jsii-rosetta to use a tilde range (e.g: ~5.0.0) to be able to control when you migrate to future TypeScript language versions. New jsii and jsii-rosetta features will only be introduced in the latest release line, while older release lines only receive bug fixes until they are declared end-of-life.

The [email protected] release line silently ignored index signatures, which were consequently not available in non-Javascript/TypeScript APIs. These are now an error with [email protected]. Users can explicitly opt index signatures out of their multi-language api by using the @jsii ignore doc-tag.

The [email protected] release incorrectly interpreted tuple types as synonyms to object, resulting in the API being unusable from non-Javascript/TypeScript languages (attempting to use would result in a runtime error). These are now an error with [email protected].

TypeScript Updates

This release of jsii-rosetta is built on TypeScript 5.0. The TypeScript language includes syntax breaking changes since TypeScript 3.9 that is used by [email protected]. More information can be found in the TypeScript release nodes:

Full Changelog: https://github.com/aws/jsii-rosetta/commits/v5.0.0