Skip to content

Commit bc5c93a

Browse files
authored
chore(release): 1.86.0 (#4199)
See [CHANGELOG](https://github.com/aws/jsii/blob/bump/1.86.0/CHANGELOG.md)
2 parents 08ee592 + 503f959 commit bc5c93a

File tree

88 files changed

+3063
-2496
lines changed

Some content is hidden

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

88 files changed

+3063
-2496
lines changed

.all-contributorsrc

Lines changed: 303 additions & 581 deletions
Large diffs are not rendered by default.

.github/workflows/docker-images.yml

Lines changed: 50 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,10 @@ jobs:
2121
strategy:
2222
fail-fast: false
2323
matrix:
24+
debian:
25+
- 'buster' # 10
26+
- 'bullseye' # 11
27+
- 'bookworm' # 12
2428
node: ['14', '16', '18', '20']
2529
env:
2630
# Node version whose images will be aliased without the -nodeXX segment
@@ -139,6 +143,7 @@ jobs:
139143
--pull \
140144
--build-arg BUILD_TIMESTAMP="${{ steps.build-time.outputs.value }}" \
141145
--build-arg COMMIT_ID='${{ github.sha }}' \
146+
--build-arg DEBIAN_VERSION=${{ matrix.debian }} \
142147
--build-arg NODE_MAJOR_VERSION=${{ matrix.node }} \
143148
-f superchain/Dockerfile \
144149
.
@@ -152,6 +157,7 @@ jobs:
152157
--target superchain \
153158
--build-arg BUILD_TIMESTAMP="${{ steps.build-time.outputs.value }}" \
154159
--build-arg COMMIT_ID='${{ github.sha }}' \
160+
--build-arg DEBIAN_VERSION=${{ matrix.debian }} \
155161
--build-arg NODE_MAJOR_VERSION=${{ matrix.node }} \
156162
-f superchain/Dockerfile \
157163
.
@@ -184,11 +190,12 @@ jobs:
184190
--push \
185191
--build-arg BUILD_TIMESTAMP="${{ steps.build-time.outputs.value }}" \
186192
--build-arg COMMIT_ID='${{ github.sha }}' \
193+
--build-arg DEBIAN_VERSION=${{ matrix.debian }} \
187194
--build-arg NODE_MAJOR_VERSION=${{ matrix.node }} \
188-
--tag "${{ secrets.ECR_PUBLIC_REGISTRY }}:1-buster-slim-nightly" \
189-
--tag "${{ secrets.ECR_PUBLIC_REGISTRY }}:1-buster-slim-node${{ matrix.node }}-nightly" \
190-
--tag "jsii/superchain:1-buster-slim-nightly" \
191-
--tag "jsii/superchain:1-buster-slim-node${{ matrix.node }}-nightly" \
195+
--tag "${{ secrets.ECR_PUBLIC_REGISTRY }}:1-${{ matrix.debian }}-slim-nightly" \
196+
--tag "${{ secrets.ECR_PUBLIC_REGISTRY }}:1-${{ matrix.debian }}-slim-node${{ matrix.node }}-nightly" \
197+
--tag "jsii/superchain:1-${{ matrix.debian }}-slim-nightly" \
198+
--tag "jsii/superchain:1-${{ matrix.debian }}-slim-node${{ matrix.node }}-nightly" \
192199
-f superchain/Dockerfile \
193200
.
194201
else
@@ -199,9 +206,10 @@ jobs:
199206
--push \
200207
--build-arg BUILD_TIMESTAMP="${{ steps.build-time.outputs.value }}" \
201208
--build-arg COMMIT_ID='${{ github.sha }}' \
209+
--build-arg DEBIAN_VERSION=${{ matrix.debian }} \
202210
--build-arg NODE_MAJOR_VERSION=${{ matrix.node }} \
203-
--tag "${{ secrets.ECR_PUBLIC_REGISTRY }}:1-buster-slim-node${{ matrix.node }}-nightly" \
204-
--tag "jsii/superchain:1-buster-slim-node${{ matrix.node }}-nightly" \
211+
--tag "${{ secrets.ECR_PUBLIC_REGISTRY }}:1-${{ matrix.debian }}-slim-node${{ matrix.node }}-nightly" \
212+
--tag "jsii/superchain:1-${{ matrix.debian }}-slim-node${{ matrix.node }}-nightly" \
205213
-f superchain/Dockerfile \
206214
.
207215
fi
@@ -212,31 +220,43 @@ jobs:
212220
run: |-
213221
# If the current version is the default version, also tag this with the unqualified ':1-*' label
214222
if [[ "${{ matrix.node }}" == "$DEFAULT_NODE_MAJOR_VERSION" ]]; then
215-
docker buildx build \
216-
--builder ${{ steps.buildx.outputs.name }} \
217-
--platform linux/amd64,linux/arm64 \
218-
--target superchain \
219-
--push \
220-
--build-arg BUILD_TIMESTAMP="${{ steps.build-time.outputs.value }}" \
221-
--build-arg COMMIT_ID='${{ github.sha }}' \
222-
--build-arg NODE_MAJOR_VERSION=${{ matrix.node }} \
223-
--tag "${{ secrets.ECR_PUBLIC_REGISTRY }}:1-buster-slim" \
224-
--tag "${{ secrets.ECR_PUBLIC_REGISTRY }}:1-buster-slim-node${{ matrix.node }}" \
225-
--tag "jsii/superchain:1-buster-slim" \
226-
--tag "jsii/superchain:1-buster-slim-node${{ matrix.node }}" \
227-
-f superchain/Dockerfile \
223+
docker buildx build \
224+
--builder ${{ steps.buildx.outputs.name }} \
225+
--platform linux/amd64,linux/arm64 \
226+
--target superchain \
227+
--push \
228+
--build-arg BUILD_TIMESTAMP="${{ steps.build-time.outputs.value }}" \
229+
--build-arg COMMIT_ID='${{ github.sha }}' \
230+
--build-arg DEBIAN_VERSION=${{ matrix.debian }} \
231+
--build-arg NODE_MAJOR_VERSION=${{ matrix.node }} \
232+
--tag "${{ secrets.ECR_PUBLIC_REGISTRY }}:1-${{ matrix.debian }}-slim" \
233+
--tag "${{ secrets.ECR_PUBLIC_REGISTRY }}:1-${{ matrix.debian }}-slim-node${{ matrix.node }}" \
234+
--tag "jsii/superchain:1-${{ matrix.debian }}-slim" \
235+
--tag "jsii/superchain:1-${{ matrix.debian }}-slim-node${{ matrix.node }}" \
236+
-f superchain/Dockerfile \
228237
.
229238
else
230-
docker buildx build \
231-
--builder ${{ steps.buildx.outputs.name }} \
232-
--platform linux/amd64,linux/arm64 \
233-
--target superchain \
234-
--push \
235-
--build-arg BUILD_TIMESTAMP="${{ steps.build-time.outputs.value }}" \
236-
--build-arg COMMIT_ID='${{ github.sha }}' \
237-
--build-arg NODE_MAJOR_VERSION=${{ matrix.node }} \
238-
--tag "${{ secrets.ECR_PUBLIC_REGISTRY }}:1-buster-slim-node${{ matrix.node }}" \
239-
--tag "jsii/superchain:1-buster-slim-node${{ matrix.node }}" \
240-
-f superchain/Dockerfile \
239+
docker buildx build \
240+
--builder ${{ steps.buildx.outputs.name }} \
241+
--platform linux/amd64,linux/arm64 \
242+
--target superchain \
243+
--push \
244+
--build-arg BUILD_TIMESTAMP="${{ steps.build-time.outputs.value }}" \
245+
--build-arg COMMIT_ID='${{ github.sha }}' \
246+
--build-arg DEBIAN_VERSION=${{ matrix.debian }} \
247+
--build-arg NODE_MAJOR_VERSION=${{ matrix.node }} \
248+
--tag "${{ secrets.ECR_PUBLIC_REGISTRY }}:1-${{ matrix.debian }}-slim-node${{ matrix.node }}" \
249+
--tag "jsii/superchain:1-${{ matrix.debian }}-slim-node${{ matrix.node }}" \
250+
-f superchain/Dockerfile \
241251
.
242252
fi
253+
254+
done:
255+
name: 'Done'
256+
runs-on: ['ubuntu-latest']
257+
needs: ['superchain']
258+
steps:
259+
# This is just a join target to simplify branch protection settings...
260+
- name: 'All done'
261+
run: |-
262+
echo "All done!"

.mergify/config.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ pull_request_rules:
1111
label:
1212
add: [contribution/core]
1313
conditions:
14-
- author~=^(RomainMuller|rix0rrr|Jerry-AWS|MrArnoldPalmer|iliapolo|madeline-k|comcalvi|kaizencc|corymhall|otaviomacedo|yuth|TheRealAmazonKendra|vinayak-kukreja|mrgrain|ryparker|Naumel|colifran)$
14+
- author~=^(RomainMuller|rix0rrr|MrArnoldPalmer|iliapolo|madeline-k|comcalvi|kaizencc|corymhall|otaviomacedo|TheRealAmazonKendra|vinayak-kukreja|mrgrain|colifran)$
1515
- -label~="contribution/core"
1616
- name: Tell them we're good now
1717
actions:
@@ -33,7 +33,7 @@ pull_request_rules:
3333
- '#changes-requested-reviews-by=0'
3434
- status-success=Validate PR Title
3535
# Docker image validation
36-
- status-success~=^jsii/superchain
36+
- status-success~=^Done$
3737
- status-success=Unit Tests
3838

3939
- name: Synchronize that PR to upstream and merge it (squash)

CHANGELOG.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,22 @@
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.86.0](https://github.com/aws/jsii/compare/v1.85.0...v1.86.0) (2023-08-01)
6+
7+
8+
### Features
9+
10+
* faster, lazy-friendly runtime loading ([#4181](https://github.com/aws/jsii/issues/4181)) ([ef6e5b1](https://github.com/aws/jsii/commit/ef6e5b1ebbafe69252fc78883962b3731bbb04ef))
11+
* **jsii-pacmak:** allow disabling go build conditionally ([#4196](https://github.com/aws/jsii/issues/4196)) ([7fc7987](https://github.com/aws/jsii/commit/7fc79876889504c2eae5888baeb8525d82a4a491))
12+
* **python:** deprecation message when using Python <= 3.7 ([#4186](https://github.com/aws/jsii/issues/4186)) ([0ef7ace](https://github.com/aws/jsii/commit/0ef7acef765690f99075888d6c3e6f03d7cc2d59))
13+
14+
15+
### Bug Fixes
16+
17+
* **jsii-pacmak:** comment lines should not contain comment ending ([#4193](https://github.com/aws/jsii/issues/4193)) ([906c24d](https://github.com/aws/jsii/commit/906c24db65a0c4a581ba2727dc4ad7ca157a8995))
18+
* **jsii-pacmak:** handles 'default' doc component for go ([#4115](https://github.com/aws/jsii/issues/4115)) ([9085514](https://github.com/aws/jsii/commit/90855148990811ee90b1728b728a974e0b5a0b89))
19+
* type annotation for callable metaclass ([#4179](https://github.com/aws/jsii/issues/4179)) ([4ccbb57](https://github.com/aws/jsii/commit/4ccbb579c8f26f55f8e391ddaf1fd562f1b78c38))
20+
521
## [1.85.0](https://github.com/aws/jsii/compare/v1.84.0...v1.85.0) (2023-07-17)
622

723

CONTRIBUTING.md

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,71 @@ Each one of these scripts can be executed either from the root of the repo using
8989
`npx lerna run <script> --scope <package>` or from individual modules using
9090
`yarn <script>`.
9191

92+
#### Reproducting Bugs (Test-Driven Solving)
93+
94+
Troubleshooting bugs usually starts with adding a new test that demonstrates the
95+
faulty behavior, then modifying implementations until the test passes.
96+
97+
The `jsii-calc` and `@scope/*` packages are used to test expected brhavior from
98+
the compiler (note that the [aws/jsii-compiler](github.com/aws/jsii-compiler)
99+
repository as a separate copy of these under the `fixtures` directory), as well
100+
as downstream tooling (`jsii-pacmak`, `jsii-rosetta`, etc...). Each language
101+
runtime has its own test suite, within which is a _compliance_ suite that tests
102+
the same behaviors in all languages, and which should contain tests related to
103+
behavior that isn't strictly specific to the given language.
104+
105+
The `yarn test:update` script in each package runs all tests and updates
106+
snapshots when necessary. It is usually necessary to run this script at least in
107+
`jsii-pacmak` and `jsii-reflect` after changing code in the `jsii-calc` or
108+
`@scope/*` packages.
109+
110+
#### Debugging runtime behavior
111+
112+
Cross-language runtime behavior can be challenging to debug, as data is passed
113+
across process boundaries through Inter-Process Communication (IPC) channels.
114+
Further complicating things, the `@jsii/runtime` library packaged in the various
115+
language runtimes is bundled (by `webpack`), which can make the Javascript
116+
runtime code more complicated to follow.
117+
118+
Setting various environment variables can help understanding what is happening
119+
better:
120+
121+
- `JSII_DEBUG=1` turns on verbose debug logging, which will cause the program to
122+
emit extensive IPC tracing information to `STDERR`. This information can help
123+
identify where things start to behave in unexpected ways, but can be a little
124+
difficult to digest... One may want to refer to the [kernel API][kernel-api]
125+
documentation to make sense of those traces.
126+
127+
- `JSII_DEBUG_TIMING=1` turns on specific timing information from the
128+
`@jsii/kernel` high level API processing, which can be useful to narrow down
129+
the possible causes for performance issues.
130+
131+
- `JSII_RUNTIME` can be set to point to the `bin/jsii-runtime` script within the
132+
`@jsii/runtime` package in order to use a local, non-`webpack`ed version of
133+
the runtime program. This can be particularly helpful when trying to diagnose
134+
a problem within a debugger session.
135+
136+
- `NODE_OPTIONS` can be used to configure specific behaviors of the underlying
137+
`node` runtime, such as specifying `--inspect-brk` to cause the node process
138+
to wait for a debugger to attach before proceeding. This is useful to attach
139+
Node dev tools to the runtime as it starts in order to use its debugger.
140+
141+
The [Visual Studio Code](https://code.visualstudio.com) _JavaScript Debug
142+
Terminal_ feature can be particularly useful paired with appropriate
143+
`JSII_RUNTIME` setting to run arbitrary jsii programs, automatically attaching
144+
the VSCode debugger at startup. These terminals inject a specially crafted
145+
`NODE_OPTIONS` variable that allows the VSCode debugger to consistently attach
146+
to all `node` processes spawned within its context, including child processes
147+
(which can be problematic when running with `--inspect-brk`, as the default
148+
debugger interface's port can only be used by one process at a time).
149+
150+
Finally, the `debugger` Javascript statement can be added anywhere in the
151+
runtime code or tested libraries in order to cause debuggers (if attached) to
152+
pause. This can be easier (and more reliable) to set up than traditional
153+
conditional break points.
154+
155+
[kernel-api]: https://aws.github.io/jsii/specification/3-kernel-api/
156+
92157
#### Linting & Formatting
93158

94159
Eslint and Prettier are used to lint and format our typescript code. The `lint`

0 commit comments

Comments
 (0)