Skip to content

Commit b8499c7

Browse files
authored
chore(release): 1.117.0 (#4957)
See [CHANGELOG](https://github.com/aws/jsii/blob/bump/1.117.0/CHANGELOG.md)
2 parents 0eddcff + 3202d0f commit b8499c7

File tree

45 files changed

+2282
-86
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+2282
-86
lines changed

.github/workflows/main.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ jobs:
3939
distribution: 'zulu'
4040
java-version: '8'
4141
- name: Set up Node LTS
42-
uses: actions/setup-node@v5
42+
uses: actions/setup-node@v6
4343
with:
4444
cache: yarn
4545
node-version: 'lts/*'
@@ -121,7 +121,7 @@ jobs:
121121
distribution: 'zulu'
122122
java-version: '8'
123123
- name: Set up Node LTS
124-
uses: actions/setup-node@v5
124+
uses: actions/setup-node@v6
125125
with:
126126
cache: yarn
127127
node-version: 'lts/*'
@@ -356,7 +356,7 @@ jobs:
356356
distribution: 'zulu'
357357
java-version: ${{ matrix.java }}
358358
- name: Set up Node ${{ matrix.node }}
359-
uses: actions/setup-node@v5
359+
uses: actions/setup-node@v6
360360
with:
361361
cache: yarn
362362
node-version: ${{ matrix.node }}
@@ -450,7 +450,7 @@ jobs:
450450
distribution: 'corretto'
451451
java-version: '20'
452452
- name: Set up Node 20
453-
uses: actions/setup-node@v5
453+
uses: actions/setup-node@v6
454454
with:
455455
node-version: '20'
456456
- name: Set up Python 3.11

.github/workflows/yarn-upgrade.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717
uses: actions/checkout@v5
1818

1919
- name: Set up Node
20-
uses: actions/setup-node@v5
20+
uses: actions/setup-node@v6
2121
with:
2222
cache: yarn
2323
node-version: 'lts/*'

.mergify/config.yml

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,10 @@ merge_queue:
44
max_parallel_checks: 1
55
queue_rules:
66
- name: default-squash
7-
conditions:
7+
queue_conditions:
8+
- status-success=Unit Tests
9+
- status-success=Integration test (jsii-pacmak)
10+
merge_conditions:
811
- status-success=Unit Tests
912
- status-success=Integration test (jsii-pacmak)
1013
commit_message_template: |-
@@ -15,7 +18,10 @@ queue_rules:
1518
batch_size: 1
1619

1720
- name: default-merge
18-
conditions:
21+
queue_conditions:
22+
- status-success=Unit Tests
23+
- status-success=Integration test (jsii-pacmak)
24+
merge_conditions:
1925
- status-success=Unit Tests
2026
- status-success=Integration test (jsii-pacmak)
2127
commit_message_template: |-

CHANGELOG.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,18 @@
22

33
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
44

5+
## [1.117.0](https://github.com/aws/jsii/compare/v1.116.0...v1.117.0) (2025-10-22)
6+
7+
8+
### Features
9+
10+
* support class covariant overrides in kernel, tools and docs ([#4925](https://github.com/aws/jsii/issues/4925)) ([cf4a0b6](https://github.com/aws/jsii/commit/cf4a0b6f2789705ea63df9f305a7ea721c84baf0))
11+
12+
13+
### Bug Fixes
14+
15+
* **jsii-reflect:** statically guarantee JsiiFeature subset ([#4956](https://github.com/aws/jsii/issues/4956)) ([17bf498](https://github.com/aws/jsii/commit/17bf498bfb744ac080d2f7ee14a308d8cf81f174))
16+
517
## [1.116.0](https://github.com/aws/jsii/compare/v1.115.0...v1.116.0) (2025-10-14)
618

719

gh-pages/content/user-guides/lib-author/typescript-restrictions.md

Lines changed: 29 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ coexist in the same closure, it is recommended to also declare all such dependen
1818

1919
Occasionally, a dependency on a *non-jsii module* is useful. Since such dependencies do not have generated bindings in
2020
all the supported languages, they must be bundled with the *jsii module* that depends on them, by adding the library
21-
into the `bundleDependencies` array in `package.json`.
21+
into the `bundleDependencies` array in `package.json`.
2222

2323
The API of the *jsii module* can not expose any type from bundled dependencies, since those types would not be available in other languages.
2424
TypeScript files that include a non-jsii dependency (e.g. a lambda handler for an AWS CDK Construct) cannot be exported from the `main`/`types` entry point.
@@ -137,40 +137,53 @@ export class Subclass extends Base {
137137
### Covariant Overrides & Parameter List Changes
138138

139139
In **TypeScript**, overriding members can have a signature that differs from the overridden member as long as the new
140-
signature is compatible with the parent. This is however not supported as:
140+
signature is compatible with the parent. This is only partially supported in jsii as:
141141

142-
- **Java** and **C#** do not support omitting parameters when overriding or implementing a member
143-
- **C#** does not support overriding or implementing a member using covariant parameter or return types
142+
- In **C#** when implementing interfaces, you cannot override members or change return types
143+
- **C#** only supports covariant overrides to `readonly` properties
144+
- Both **Java** and **C#** do not support omitting parameters when overriding or implementing a method
145+
- In **C#** you cannot override method parameters
144146

145-
!!! note
146-
**C# 9** introduces support for covariant return types, which would allow relaxing this restriction, however `jsii`
147-
must build code targetting the `.NET Core 3.1` runtime, which only supports **C# 8**. Once `.NET Core 3.1` becomes
148-
end-of-life, this may change.
147+
As a consequence, changes to member signatures are only allowed in very few cases.
148+
All overrides must be covariant to the parent type.
149+
150+
- Return type of (non-static) methods
151+
- `readonly` properties
152+
153+
```ts hl_lines="10-11 13-14 16-17 19-20 22-23"
154+
export class SuperClass {}
155+
export class SubClass extends SuperClass {}
149156

150-
```ts hl_lines="6-7 9-10 12-13"
151157
export class Base {
152-
public method(param: any): any { /* ... */ }
158+
public readonly prop: SuperClass;
159+
public method(param: SuperClass): SuperClass { /* ... */ }
153160
}
154161

155162
export class Child extends Base {
156163
// 💥 Parameter signatures do not match
157164
public method(): any { /* ... */ }
158165

159166
// 💥 Parameter types do not match, even though they are covariant
160-
public method(param: string): any { /* ... */ }
167+
public method(param: SubClass): any { /* ... */ }
168+
169+
// 💥 Property types do not match
170+
public readonly prop: string;
171+
172+
// ✅ Return type is covariant
173+
public method(param: SuperClass): SubClass { /* ... */ }
161174

162-
// 💥 Return type does not match, even though it is covariant
163-
public method(param: any): string { /* ... */ }
175+
// ✅ Property is readonly and override type is covariant
176+
public readonly prop: SubClass;
164177
}
165178
```
166179

167180
## Index Signatures
168181

169-
**TypeScript** allows declaring _additional properties_ through the use of index signatures. These are however not
170-
supported by the _jsii type system_ and are rejected by the compiler.
182+
**TypeScript** allows declaring *additional properties* through the use of index signatures. These are however not
183+
supported by the *jsii type system* and are rejected by the compiler.
171184

172185
!!! info
173-
Version `1.x` of the compiler _silently ignores_ index signatures instead of reporting a compilation error. Users
186+
Version `1.x` of the compiler *silently ignores* index signatures instead of reporting a compilation error. Users
174187
with offending APIs migrating from `[email protected]` to `[email protected]` or newer need to either remove those declarations, or
175188
explicitly ignore them using the [`@jsii ignore` tag](./hints.md#excluding-a-declaration-from-multi-language-support).
176189

gh-pages/requirements-dev.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
mkdocs~=1.6.1
22
mkdocs-awesome-pages-plugin~=2.10.1
3-
mkdocs-material~=9.6.20
3+
mkdocs-material~=9.6.22
44
mkdocs-git-revision-date-plugin~=0.3.2

lerna.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,6 @@
1212
"rejectCycles": true
1313
}
1414
},
15-
"version": "1.116.0",
15+
"version": "1.117.0",
1616
"$schema": "node_modules/lerna/schemas/lerna-schema.json"
1717
}

packages/@jsii/check-node/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
"scripts": {
3030
"build": "tsc --build && yarn lint",
3131
"watch": "tsc --build -w",
32-
"lint": "ESLINT_USE_FLAT_CONFIG=false eslint . --ext .js,.ts --ignore-path=.gitignore",
32+
"lint": "ESLINT_USE_FLAT_CONFIG=false NODE_OPTIONS='--disable-warning=ESLintRCWarning' eslint . --ext .js,.ts --ignore-path=.gitignore",
3333
"lint:fix": "yarn lint --fix",
3434
"test": "jest",
3535
"test:update": "jest -u",

packages/@jsii/kernel/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
"scripts": {
2525
"build": "tsc --build && yarn lint",
2626
"watch": "tsc --build -w",
27-
"lint": "ESLINT_USE_FLAT_CONFIG=false eslint . --ext .js,.ts --ignore-path=.gitignore",
27+
"lint": "ESLINT_USE_FLAT_CONFIG=false NODE_OPTIONS='--disable-warning=ESLintRCWarning' eslint . --ext .js,.ts --ignore-path=.gitignore",
2828
"lint:fix": "yarn lint --fix",
2929
"test": "jest",
3030
"test:update": "jest -u",

packages/@jsii/kernel/src/kernel.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import * as tar from './tar-cache';
1414

1515
export const ASSEMBLY_SUPPORTED_FEATURES: spec.JsiiFeature[] = [
1616
'intersection-types',
17+
'class-covariant-overrides',
1718
];
1819

1920
export const enum JsiiErrorType {

0 commit comments

Comments
 (0)