diff --git a/.github/workflows/docker-images.yml b/.github/workflows/docker-images.yml
index 0409219a56..3df903d346 100644
--- a/.github/workflows/docker-images.yml
+++ b/.github/workflows/docker-images.yml
@@ -22,16 +22,15 @@ jobs:
fail-fast: false
matrix:
debian:
- - 'buster' # 10
- node: ['16', '18', '20']
+ - 'buster' # 10
+ - 'bullseye' # 11
+ node: ['18', '20']
include:
- - debian: 'bullseye' # 11
- node: '20'
- debian: 'bookworm' #12
node: '20'
env:
# Node version whose images will be aliased without the -nodeXX segment
- DEFAULT_NODE_MAJOR_VERSION: 16
+ DEFAULT_NODE_MAJOR_VERSION: 18
steps:
- name: Check out
uses: actions/checkout@v4
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index 884e769d3d..0efe8e7a11 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -42,15 +42,15 @@ jobs:
with:
distribution: 'zulu'
java-version: '8'
- - name: Set up Node 16
+ - name: Set up Node 18
uses: actions/setup-node@v4
with:
cache: yarn
- node-version: '16'
- - name: Set up Python 3.7
+ node-version: '18'
+ - name: Set up Python 3.8
uses: actions/setup-python@v4
with:
- python-version: '3.7'
+ python-version: '3.8'
cache: pip
- name: Install python3-venv
run: sudo apt install -y python3-venv
@@ -125,15 +125,15 @@ jobs:
with:
distribution: 'zulu'
java-version: '8'
- - name: Set up Node 16
+ - name: Set up Node 18
uses: actions/setup-node@v4
with:
cache: yarn
- node-version: '16'
- - name: Set up Python 3.7
+ node-version: '18'
+ - name: Set up Python 3.8
uses: actions/setup-python@v4
with:
- python-version: '3.7'
+ python-version: '3.8'
cache: pip
- name: Install python3-venv
run: sudo apt install -y python3-venv
@@ -195,10 +195,10 @@ jobs:
dotnet: ['6.0.x']
go: ['1.18']
java: ['8']
- node: ['16'] # EOL 2023-09-11
+ node: ['18'] # EOL 2025-04-30
os: [ubuntu-latest]
- python: ['3.7']
- # Add specific combinations to be tested against "node 14" (to restrict cardinality)
+ python: ['3.8']
+ # Add specific combinations to be tested against (to restrict cardinality)
include:
# Test using Windows
- title: 'Windows'
@@ -206,90 +206,83 @@ jobs:
dotnet: '6.0.x'
go: '1.18'
java: '8'
- node: '16'
- python: '3.7'
+ node: '18'
+ python: '3.8'
# Test using macOS
- title: 'macOS'
os: macos-latest
dotnet: '6.0.x'
go: '1.18'
java: '8'
- node: '16'
- python: '3.7'
+ node: '18'
+ python: '3.8'
# Test alternate Nodes
- - title: 'Node 16'
- java: '8'
- dotnet: '6.0.x'
- go: '1.18'
- node: '16' # EOL 2023-09-11
- os: ubuntu-latest
- python: '3.7'
- title: 'Node 18'
java: '8'
dotnet: '6.0.x'
go: '1.18'
node: '18' # EOL 2025-04-30
os: ubuntu-latest
- python: '3.7'
+ python: '3.8'
- title: 'Node 20'
java: '8'
dotnet: '6.0.x'
go: '1.18'
node: '20' # EOL 2026-04-30
os: ubuntu-latest
- python: '3.7'
+ python: '3.8'
# Test alternate .NETs
- title: '.NET 7.0'
java: '8'
dotnet: '7.0.x'
go: '1.18'
- node: '16'
+ node: '18'
os: ubuntu-latest
- python: '3.7'
+ python: '3.8'
# Test alternate Gos
- title: 'Go 1.19'
java: '8'
dotnet: '6.0.x'
go: '1.19'
- node: '16'
+ node: '18'
os: ubuntu-latest
- python: '3.7'
+ python: '3.8'
# Test alternate Javas
- title: 'Java 11'
java: '11'
dotnet: '6.0.x'
go: '1.18'
- node: '16'
+ node: '18'
os: ubuntu-latest
- python: '3.7'
+ python: '3.8'
# Test alternate Pythons
- title: 'Python 3.8'
python: '3.8'
dotnet: '6.0.x'
go: '1.18'
java: '8'
- node: '16'
+ node: '18'
os: ubuntu-latest
- title: 'Python 3.9'
python: '3.9'
dotnet: '6.0.x'
go: '1.18'
java: '8'
- node: '16'
+ node: '18'
os: ubuntu-latest
- title: 'Python 3.10'
python: '3.10'
dotnet: '6.0.x'
go: '1.18'
java: '8'
- node: '16'
+ node: '18'
os: ubuntu-latest
- title: 'Python 3.11'
python: '3.11'
dotnet: '6.0.x'
go: '1.18'
java: '8'
- node: '16'
+ node: '18'
os: ubuntu-latest
runs-on: ${{ matrix.os }}
@@ -479,4 +472,3 @@ jobs:
with:
name: integtest_aws-cdk-lib
path: ./node_modules/aws-cdk-lib/dist/
-
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 930fc7c2bb..7c428182b2 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,28 @@
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.
+## [1.92.0](https://github.com/aws/jsii/compare/v1.91.0...v1.92.0) (2023-11-16)
+
+
+### ⚠ BREAKING CHANGES
+
+* jsii-pacmak and the libraries it generates for Python targets now require a minimum Python version of 3.8, instead of 3.7 previously. We recommend users upgrade to the latest supported Python release (Python 3.11).
+* all libraries and tools now require a minimum version of Node.js 18, instead of 16 previously. We recommend users upgrade to the latest supported Node.js release (Node.js 20).
+
+### Features
+
+* **jsii-reflect:** TypeSystem can be locked to improve reflection performance ([#4318](https://github.com/aws/jsii/issues/4318)) ([c87da43](https://github.com/aws/jsii/commit/c87da436671d677d1fee276d0932ea7edd431f78))
+* make node 18 the default ([#4325](https://github.com/aws/jsii/issues/4325)) ([8784725](https://github.com/aws/jsii/commit/87847254c8a39f6e99383bfa3a375ae6c8d9a8a5))
+* **superchain:** publish a bullseye image with node18 & python 3.9 ([#4326](https://github.com/aws/jsii/issues/4326)) ([7197b4f](https://github.com/aws/jsii/commit/7197b4f21e7f6776fbbfe5bac7f03a308cd9f7c0))
+* switch to python 3.8 ([#4327](https://github.com/aws/jsii/issues/4327)) ([416e2b5](https://github.com/aws/jsii/commit/416e2b504895800281a3598b3139b141330aa906))
+
+
+### Bug Fixes
+
+* **kernel:** invokeBinScript fails when using symlinked cache ([#4324](https://github.com/aws/jsii/issues/4324)) ([a2ab316](https://github.com/aws/jsii/commit/a2ab31609d361ac5ceca6c928584ec59f2d705d3))
+* **pacmak:** *.tsbuildinfo not in auto-generated .npmignore file ([#4236](https://github.com/aws/jsii/issues/4236)) ([d55b8d5](https://github.com/aws/jsii/commit/d55b8d57ce43dc9fd3d5132d7ba3ad0aa9ead3b9)), closes [#3978](https://github.com/aws/jsii/issues/3978)
+* **superchain:** installed setuptools is an unsupported version ([#4333](https://github.com/aws/jsii/issues/4333)) ([c0a4140](https://github.com/aws/jsii/commit/c0a41409568bc71b086fd1c56e2c5a08f708c3ad))
+
## [1.91.0](https://github.com/aws/jsii/compare/v1.90.0...v1.91.0) (2023-10-24)
## [1.90.0](https://github.com/aws/jsii/compare/v1.89.0...v1.90.0) (2023-10-06)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 5d313502da..21b3a0eab6 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -45,7 +45,7 @@ in your development environment.
+ [`maven >= 3.0.5`](https://maven.apache.org)
- [.NET `6.0`] or later
+ *Recommended:* [`mono >= 6`](https://www.mono-project.com)
-- [Python `3.7.3`] or later
+- [Python `3.8.10`] or later
+ [`pip`](https://pip.pypa.io/en/stable/installing/)
+ [`setuptools >= 38.6.0`](https://pypi.org/project/setuptools/)
+ [`wheel`](https://pypi.org/project/wheel/)
@@ -57,7 +57,7 @@ in your development environment.
[Oracle's OpenJDK8]: http://openjdk.java.net/install/
[Amazon Corretto 8]: https://aws.amazon.com/corretto/
[.NET `6.0`]: https://www.microsoft.com/net/download
-[Python `3.7.3`]: https://www.python.org/downloads/release/python-373/
+[Python `3.8.10`]: https://www.python.org/downloads/release/python-3810/
[Go]: https://go.dev/dl/
## Getting Started
@@ -228,13 +228,14 @@ The [Python](./packages/jsii-pacmak/lib/targets/python.ts) target is a good
example to work from.
## Releasing
+
### The `public.ecr.aws/jsii/superchain` Docker image
-Upon merging new changes to the `main` branch, the `public.ecr.aws/jsii/superchain:1-buster-slim-nightly`
+Upon merging new changes to the `main` branch, the `public.ecr.aws/jsii/superchain:1-bullseye-slim-nightly`
image will be released after a last validation build.
Upon making a new `jsii` release (when the GitHub release entry - and its
-corresponding git tag - is created), the `public.ecr.aws/jsii/superchain:1-buster-slim` image will
+corresponding git tag - is created), the `public.ecr.aws/jsii/superchain:1-bullseye-slim` image will
be released after a last validation build.
The latest release information (for both of the Docker image tags) can be seen
diff --git a/gh-pages/content/user-guides/language-support/index.md b/gh-pages/content/user-guides/language-support/index.md
index 03b9dcc5c5..ed2788985b 100644
--- a/gh-pages/content/user-guides/language-support/index.md
+++ b/gh-pages/content/user-guides/language-support/index.md
@@ -69,7 +69,7 @@ in significant re-engineering effort:
- How are dependencies modeled? If [semantic versioning] is not the norm, what is the strategy to correctly represent
semantic version ranges?
- What are the toolchain and platform requirements?
- - For example, **Java** requires an OpenJDK 8 distribution and `maven`, **Python** requires `python` 3.7 or above,
+ - For example, **Java** requires an OpenJDK 8 distribution and `maven`, **Python** requires `python` 3.8 or above,
etc...
## Code Generation
diff --git a/gh-pages/content/user-guides/lib-author/configuration/targets/python.md b/gh-pages/content/user-guides/lib-author/configuration/targets/python.md
index 7a41219615..2eadcf7c2d 100644
--- a/gh-pages/content/user-guides/lib-author/configuration/targets/python.md
+++ b/gh-pages/content/user-guides/lib-author/configuration/targets/python.md
@@ -16,7 +16,6 @@ The `python` target requires two configuration entries:
- Additionally, the following `Programming Language ::` classifiers are already set (more could be added by the user
if relevant):
- `Programming Language :: Python :: 3 :: Only`
- - `Programming Language :: Python :: 3.7`
- `Programming Language :: Python :: 3.8`
- `Programming Language :: Python :: 3.9`
- `Programming Language :: Python :: 3.10`
diff --git a/gh-pages/content/user-guides/lib-author/index.md b/gh-pages/content/user-guides/lib-author/index.md
index dac3277655..fdf52ab1c0 100644
--- a/gh-pages/content/user-guides/lib-author/index.md
+++ b/gh-pages/content/user-guides/lib-author/index.md
@@ -19,7 +19,7 @@ to produce releasable artifacts.
| .NET | .NET ≥ 6.0 |
| Go | Go ≥ 1.18 |
| Java | JDK ≥ 8 *and* Maven ≥ 3.6 |
-| Python | Python ≥ 3.7 |
+| Python | Python ≥ 3.8 |
## :octicons-desktop-download-24: Download Locations
diff --git a/gh-pages/content/user-guides/lib-author/typescript-restrictions.md b/gh-pages/content/user-guides/lib-author/typescript-restrictions.md
index b8a53b83a9..9ab1bc1f22 100644
--- a/gh-pages/content/user-guides/lib-author/typescript-restrictions.md
+++ b/gh-pages/content/user-guides/lib-author/typescript-restrictions.md
@@ -14,10 +14,14 @@ A *jsii module* can declare dependencies on any other *jsii module* by adding en
`package.json` file. Since most other platforms do not support multiple different versions of the same library to
coexist in the same closure, it is recommended to also declare all such dependencies as `peerDependencies`.
+### non-jsii dependencies
+
Occasionally, a dependency on a *non-jsii module* is useful. Since such dependencies do not have generated bindings in
all the supported languages, they must be bundled with the *jsii module* that depends on them, by adding the library
-into the `bundleDependencies` array in `package.json`. The API of the *jsii module* can not expose any type from bundled
-dependencies, since those types would not be available in other languages.
+into the `bundleDependencies` array in `package.json`.
+
+The API of the *jsii module* can not expose any type from bundled dependencies, since those types would not be available in other languages.
+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.
!!! info
For more information on `package.json` file contents, refer to the [npm documentation][package-json].
diff --git a/gh-pages/mkdocs.yml b/gh-pages/mkdocs.yml
index 03aaf9d83e..4ea220165e 100644
--- a/gh-pages/mkdocs.yml
+++ b/gh-pages/mkdocs.yml
@@ -58,8 +58,8 @@ markdown_extensions:
- pymdownx.superfences
- pymdownx.tabbed
- pymdownx.emoji:
- emoji_index: !!python/name:materialx.emoji.twemoji
- emoji_generator: !!python/name:materialx.emoji.to_svg
+ emoji_index: !!python/name:material.extensions.emoji.twemoji
+ emoji_generator: !!python/name:material.extensions.emoji.to_svg
plugins:
- awesome-pages:
diff --git a/gh-pages/requirements-dev.txt b/gh-pages/requirements-dev.txt
index c8399e92b8..3b3f489d37 100644
--- a/gh-pages/requirements-dev.txt
+++ b/gh-pages/requirements-dev.txt
@@ -1,4 +1,4 @@
mkdocs~=1.5.3
mkdocs-awesome-pages-plugin~=2.9.2
-mkdocs-material~=9.4.6
+mkdocs-material~=9.4.8
mkdocs-git-revision-date-plugin~=0.3.2
diff --git a/lerna.json b/lerna.json
index aa79516c86..69c784d5bf 100644
--- a/lerna.json
+++ b/lerna.json
@@ -12,6 +12,6 @@
"rejectCycles": true
}
},
- "version": "1.91.0",
+ "version": "1.92.0",
"$schema": "node_modules/lerna/schemas/lerna-schema.json"
}
diff --git a/package.json b/package.json
index 9221ef7228..6b6ca606aa 100644
--- a/package.json
+++ b/package.json
@@ -16,12 +16,12 @@
},
"devDependencies": {
"@jest/types": "^28.1.3",
- "@types/jest": "^29.5.6",
+ "@types/jest": "^29.5.8",
"@types/node": "^14.18.63",
- "@typescript-eslint/eslint-plugin": "^6.8.0",
- "@typescript-eslint/parser": "^6.8.0",
+ "@typescript-eslint/eslint-plugin": "^6.11.0",
+ "@typescript-eslint/parser": "^6.11.0",
"all-contributors-cli": "^6.26.1",
- "eslint": "^8.51.0",
+ "eslint": "^8.53.0",
"eslint-config-prettier": "^9.0.0",
"eslint-import-resolver-node": "^0.3.9",
"eslint-import-resolver-typescript": "^3.6.1",
@@ -31,8 +31,8 @@
"jest-circus": "^28.1.3",
"jest-config": "^28.1.3",
"jest-expect-message": "^1.1.3",
- "lerna": "^7.4.1",
- "prettier": "^3.0.3",
+ "lerna": "^7.4.2",
+ "prettier": "^3.1.0",
"standard-version": "^9.5.0",
"ts-node": "^10.9.1",
"typescript": "~4.7.4"
diff --git a/packages/@jsii/Directory.Build.targets b/packages/@jsii/Directory.Build.targets
index 0665d06ed2..623fa429de 100644
--- a/packages/@jsii/Directory.Build.targets
+++ b/packages/@jsii/Directory.Build.targets
@@ -10,9 +10,9 @@
-
+
-
+
diff --git a/packages/@jsii/check-node/src/constants.ts b/packages/@jsii/check-node/src/constants.ts
index a267bc0b20..def0d5f8eb 100644
--- a/packages/@jsii/check-node/src/constants.ts
+++ b/packages/@jsii/check-node/src/constants.ts
@@ -35,9 +35,6 @@ export class NodeRelease {
endOfLife: new Date('2022-04-30'),
supportedRange: '^12.7.0',
}),
- new NodeRelease(19, { endOfLife: new Date('2023-06-01') }),
-
- // Currently active releases (as of last edit to this file...)
new NodeRelease(16, {
endOfLife: new Date('2023-09-11'),
supportedRange: '^16.3.0',
@@ -46,8 +43,12 @@ export class NodeRelease {
endOfLife: new Date('2022-06-01'),
supportedRange: '^17.3.0',
}),
+ new NodeRelease(19, { endOfLife: new Date('2023-06-01') }),
+
+ // Currently active releases (as of last edit to this file...)
new NodeRelease(18, { endOfLife: new Date('2025-04-30') }),
new NodeRelease(20, { endOfLife: new Date('2026-04-30') }),
+ new NodeRelease(21, { endOfLife: new Date('2024-06-01') }),
// Future (planned releases)
];
diff --git a/packages/@jsii/check-node/src/index.test.ts b/packages/@jsii/check-node/src/index.test.ts
index 47f5cb8973..b7b5126e19 100644
--- a/packages/@jsii/check-node/src/index.test.ts
+++ b/packages/@jsii/check-node/src/index.test.ts
@@ -11,7 +11,7 @@ test('tested node releases are correctly registered & supported', () => {
// This test is there to ensure house-keeping happens when it should. If we are
// testing a given node release, it must not have been EOL for over 60 days.
-test(`tested node release (${process.version}) has not ben EOL for more than 60 days`, () => {
+test(`tested node release (${process.version}) has not been EOL for more than 60 days`, () => {
const { nodeRelease } = NodeRelease.forThisRuntime();
expect(nodeRelease?.endOfLifeDate?.getTime()).toBeGreaterThan(
Date.now() - 60 * 86_400_000,
diff --git a/packages/@jsii/check-node/src/index.ts b/packages/@jsii/check-node/src/index.ts
index 4c9fdbb5f3..aacd28441d 100644
--- a/packages/@jsii/check-node/src/index.ts
+++ b/packages/@jsii/check-node/src/index.ts
@@ -22,12 +22,13 @@ export function checkNode(envPrefix = 'JSII'): void {
if (nodeRelease?.endOfLife) {
const silenceVariable = `${envPrefix}_SILENCE_WARNING_END_OF_LIFE_NODE_VERSION`;
- const acknowledgeNodeEol =
- 'Node14 is now end of life (EOL) as of April 30, 2023. Support of EOL runtimes are only guaranteed for 30 days after EOL. By silencing this warning you acknowledge that you are using an EOL version of Node and will upgrade to a supported version as soon as possible.';
+ const silencedVersions = (process.env[silenceVariable] ?? '')
+ .split(',')
+ .map((v) => v.trim());
const qualifier = nodeRelease.endOfLifeDate
? ` on ${nodeRelease.endOfLifeDate.toISOString().slice(0, 10)}`
: '';
- if (!(process.env[silenceVariable] === acknowledgeNodeEol))
+ if (!silencedVersions.includes(nodeRelease.majorVersion.toString()))
veryVisibleMessage(
bgRed.white.bold,
`Node ${nodeRelease.majorVersion} has reached end-of-life${qualifier} and is not supported.`,
diff --git a/packages/@jsii/dotnet-runtime/package.json b/packages/@jsii/dotnet-runtime/package.json
index 0a1ae2b8b1..ad883b3ae8 100644
--- a/packages/@jsii/dotnet-runtime/package.json
+++ b/packages/@jsii/dotnet-runtime/package.json
@@ -39,7 +39,7 @@
},
"devDependencies": {
"@jsii/runtime": "^0.0.0",
- "@types/semver": "^7.5.3",
+ "@types/semver": "^7.5.5",
"jsii-build-tools": "^0.0.0",
"semver": "^7.5.4"
}
diff --git a/packages/@jsii/dotnet-runtime/src/Amazon.JSII.Runtime/CallbackExtensions.cs b/packages/@jsii/dotnet-runtime/src/Amazon.JSII.Runtime/CallbackExtensions.cs
index 8e0f03c52c..946fe08b7e 100644
--- a/packages/@jsii/dotnet-runtime/src/Amazon.JSII.Runtime/CallbackExtensions.cs
+++ b/packages/@jsii/dotnet-runtime/src/Amazon.JSII.Runtime/CallbackExtensions.cs
@@ -65,7 +65,7 @@ out object? result
return null;
}
- throw new ArgumentException("Callback does not specificy a method, getter, or setter to invoke");
+ throw new ArgumentException("Callback does not specify a method, getter, or setter to invoke");
}
private static CallbackResult? InvokeMethod(InvokeRequest request, IReferenceMap referenceMap)
@@ -251,4 +251,4 @@ private CallbackResult(TypeReference type, bool isOptional, object? value) : bas
public object? Value { get; }
}
-}
\ No newline at end of file
+}
diff --git a/packages/@jsii/go-runtime-test/project/go.mod b/packages/@jsii/go-runtime-test/project/go.mod
index 2df4c28d4c..e6de3322f6 100644
--- a/packages/@jsii/go-runtime-test/project/go.mod
+++ b/packages/@jsii/go-runtime-test/project/go.mod
@@ -9,20 +9,20 @@ require (
github.com/aws/jsii/jsii-calc/go/scopejsiicalclib v0.0.0-devpreview
github.com/stretchr/testify v1.8.4
golang.org/x/lint v0.0.0-20210508222113-6edffad5e616
- golang.org/x/tools v0.14.0
+ golang.org/x/tools v0.15.0
)
require (
github.com/Masterminds/semver/v3 v3.2.1 // indirect
github.com/aws/jsii/jsii-calc/go/scopejsiicalcbaseofbase/v2 v2.1.1 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
- github.com/fatih/color v1.15.0 // indirect
+ github.com/fatih/color v1.16.0 // indirect
github.com/mattn/go-colorable v0.1.13 // indirect
- github.com/mattn/go-isatty v0.0.19 // indirect
+ github.com/mattn/go-isatty v0.0.20 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/yuin/goldmark v1.4.13 // indirect
- golang.org/x/mod v0.13.0 // indirect
- golang.org/x/sys v0.13.0 // indirect
+ golang.org/x/mod v0.14.0 // indirect
+ golang.org/x/sys v0.14.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)
diff --git a/packages/@jsii/go-runtime-test/project/go.sum b/packages/@jsii/go-runtime-test/project/go.sum
index f70e5dce91..95448607a6 100644
--- a/packages/@jsii/go-runtime-test/project/go.sum
+++ b/packages/@jsii/go-runtime-test/project/go.sum
@@ -2,13 +2,13 @@ github.com/Masterminds/semver/v3 v3.2.1 h1:RN9w6+7QoMeJVGyfmbcgs28Br8cvmnucEXnY0
github.com/Masterminds/semver/v3 v3.2.1/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/fatih/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs=
-github.com/fatih/color v1.15.0/go.mod h1:0h5ZqXfHYED7Bhv2ZJamyIOUej9KtShiJESRwBDUSsw=
+github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM=
+github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE=
github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
-github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA=
-github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
+github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
+github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
@@ -20,50 +20,22 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U
golang.org/x/lint v0.0.0-20210508222113-6edffad5e616 h1:VLliZ0d+/avPrXXH+OakdXhpJuEoBZuwh1m2j7U6Iug=
golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
-golang.org/x/mod v0.10.0 h1:lFO9qtOdlre5W1jxS3r/4szv2/6iXxScdzjoBMXNhYk=
-golang.org/x/mod v0.10.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
-golang.org/x/mod v0.11.0 h1:bUO06HqtnRcc/7l71XBe4WcqTZ+3AH1J59zWDDwLKgU=
-golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
-golang.org/x/mod v0.12.0 h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc=
-golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
-golang.org/x/mod v0.13.0 h1:I/DsJXRlw/8l/0c24sM9yb0T4z9liZTduXvdAWYiysY=
-golang.org/x/mod v0.13.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
+golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0=
+golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.2.0 h1:PUR+T4wwASmuSTYdKjYHI5TD22Wy5ogLU5qZCOLxBrI=
-golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E=
-golang.org/x/sync v0.4.0 h1:zxkM55ReGkDlKSM+Fu41A+zmbZuaPVbGMzvvdUPznYQ=
+golang.org/x/sync v0.5.0 h1:60k92dhOjHxJkrqnwsfl8KuaHbn/5dl0lUPUklKo3qE=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU=
-golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.9.0 h1:KS/R3tvhPqvJvwcKfnBHJwwthS11LRhmM5D59eEXa0s=
-golang.org/x/sys v0.9.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.10.0 h1:SqMFp9UcQJZa+pmYuAKjd9xq1f0j5rLcDIk0mj4qAsA=
-golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.11.0 h1:eG7RXZHdqOJ1i+0lgLgCpSXAp6M3LYlAo6osgSi0xOM=
-golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.12.0 h1:CM0HF96J0hcLAwsHPJZjfdNzs0gftsLfgKt57wWHJ0o=
-golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE=
-golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.14.0 h1:Vz7Qs629MkJkGyHxUlRHizWJRG2j8fbQKjELVSNhy7Q=
+golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
-golang.org/x/tools v0.9.3 h1:Gn1I8+64MsuTb/HpH+LmQtNas23LhUVr3rYZ0eKuaMM=
-golang.org/x/tools v0.9.3/go.mod h1:owI94Op576fPu3cIGQeHs3joujW/2Oc6MtlxbF5dfNc=
-golang.org/x/tools v0.10.0 h1:tvDr/iQoUqNdohiYm0LmmKcBk+q86lb9EprIUFhHHGg=
-golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM=
-golang.org/x/tools v0.11.0 h1:EMCa6U9S2LtZXLAMoWiR/R8dAQFRqbAitmbJ2UKhoi8=
-golang.org/x/tools v0.11.0/go.mod h1:anzJrxPjNtfgiYQYirP2CPGzGLxrH2u2QBhn6Bf3qY8=
-golang.org/x/tools v0.12.0 h1:YW6HUoUmYBpwSgyaGaZq1fHjrBjX1rlpZ54T6mu2kss=
-golang.org/x/tools v0.12.0/go.mod h1:Sc0INKfu04TlqNoRA1hgpFZbhYXHPr4V5DzpSBTPqQM=
-golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ=
-golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58=
-golang.org/x/tools v0.14.0 h1:jvNa2pY0M4r62jkRQ6RwEZZyPcymeL9XZMLBbV7U2nc=
-golang.org/x/tools v0.14.0/go.mod h1:uYBEerGOWcJyEORxN+Ek8+TT266gXkNlHdJBwexUsBg=
+golang.org/x/tools v0.15.0 h1:zdAyfUGbYmuVokhzVmghFl2ZJh5QhcfebBgmVPFYA+8=
+golang.org/x/tools v0.15.0/go.mod h1:hpksKq4dtpQWS1uQ61JkdqWM3LscIS6Slf+VVkm+wQk=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
diff --git a/packages/@jsii/go-runtime/jsii-runtime-go/go.mod b/packages/@jsii/go-runtime/jsii-runtime-go/go.mod
index d4f6e6965b..8311a01cbc 100644
--- a/packages/@jsii/go-runtime/jsii-runtime-go/go.mod
+++ b/packages/@jsii/go-runtime/jsii-runtime-go/go.mod
@@ -4,11 +4,11 @@ go 1.18
require (
github.com/Masterminds/semver/v3 v3.2.1
- github.com/fatih/color v1.15.0
- github.com/mattn/go-isatty v0.0.19
+ github.com/fatih/color v1.16.0
+ github.com/mattn/go-isatty v0.0.20
github.com/stretchr/testify v1.8.4
golang.org/x/lint v0.0.0-20210508222113-6edffad5e616
- golang.org/x/tools v0.14.0
+ golang.org/x/tools v0.15.0
)
require (
@@ -16,8 +16,8 @@ require (
github.com/mattn/go-colorable v0.1.13 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/yuin/goldmark v1.4.13 // indirect
- golang.org/x/mod v0.13.0 // indirect
- golang.org/x/sys v0.13.0 // indirect
+ golang.org/x/mod v0.14.0 // indirect
+ golang.org/x/sys v0.14.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)
diff --git a/packages/@jsii/go-runtime/jsii-runtime-go/go.sum b/packages/@jsii/go-runtime/jsii-runtime-go/go.sum
index c85b2a3e19..95448607a6 100644
--- a/packages/@jsii/go-runtime/jsii-runtime-go/go.sum
+++ b/packages/@jsii/go-runtime/jsii-runtime-go/go.sum
@@ -2,13 +2,13 @@ github.com/Masterminds/semver/v3 v3.2.1 h1:RN9w6+7QoMeJVGyfmbcgs28Br8cvmnucEXnY0
github.com/Masterminds/semver/v3 v3.2.1/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/fatih/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs=
-github.com/fatih/color v1.15.0/go.mod h1:0h5ZqXfHYED7Bhv2ZJamyIOUej9KtShiJESRwBDUSsw=
+github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM=
+github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE=
github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
-github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA=
-github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
+github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
+github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
@@ -20,22 +20,22 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U
golang.org/x/lint v0.0.0-20210508222113-6edffad5e616 h1:VLliZ0d+/avPrXXH+OakdXhpJuEoBZuwh1m2j7U6Iug=
golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
-golang.org/x/mod v0.13.0 h1:I/DsJXRlw/8l/0c24sM9yb0T4z9liZTduXvdAWYiysY=
-golang.org/x/mod v0.13.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
+golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0=
+golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.4.0 h1:zxkM55ReGkDlKSM+Fu41A+zmbZuaPVbGMzvvdUPznYQ=
+golang.org/x/sync v0.5.0 h1:60k92dhOjHxJkrqnwsfl8KuaHbn/5dl0lUPUklKo3qE=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE=
-golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.14.0 h1:Vz7Qs629MkJkGyHxUlRHizWJRG2j8fbQKjELVSNhy7Q=
+golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
-golang.org/x/tools v0.14.0 h1:jvNa2pY0M4r62jkRQ6RwEZZyPcymeL9XZMLBbV7U2nc=
-golang.org/x/tools v0.14.0/go.mod h1:uYBEerGOWcJyEORxN+Ek8+TT266gXkNlHdJBwexUsBg=
+golang.org/x/tools v0.15.0 h1:zdAyfUGbYmuVokhzVmghFl2ZJh5QhcfebBgmVPFYA+8=
+golang.org/x/tools v0.15.0/go.mod h1:hpksKq4dtpQWS1uQ61JkdqWM3LscIS6Slf+VVkm+wQk=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
diff --git a/packages/@jsii/integ-test/package.json b/packages/@jsii/integ-test/package.json
index 0489a201a6..16a148955d 100644
--- a/packages/@jsii/integ-test/package.json
+++ b/packages/@jsii/integ-test/package.json
@@ -27,6 +27,6 @@
},
"devDependencies": {
"@types/fs-extra": "^9.0.13",
- "@types/tar": "^6.1.6"
+ "@types/tar": "^6.1.9"
}
}
diff --git a/packages/@jsii/kernel/package.json b/packages/@jsii/kernel/package.json
index 5717acd74a..bb932148a5 100644
--- a/packages/@jsii/kernel/package.json
+++ b/packages/@jsii/kernel/package.json
@@ -40,8 +40,8 @@
"@scope/jsii-calc-base": "^0.0.0",
"@scope/jsii-calc-lib": "^0.0.0",
"@types/fs-extra": "^9.0.13",
- "@types/lockfile": "^1.0.3",
- "@types/tar": "^6.1.6",
+ "@types/lockfile": "^1.0.4",
+ "@types/tar": "^6.1.9",
"jest-expect-message": "^1.1.3",
"jsii-build-tools": "^0.0.0",
"jsii-calc": "^3.20.120"
diff --git a/packages/@jsii/kernel/src/kernel.ts b/packages/@jsii/kernel/src/kernel.ts
index 7acf8a37c1..caab41c6d0 100644
--- a/packages/@jsii/kernel/src/kernel.ts
+++ b/packages/@jsii/kernel/src/kernel.ts
@@ -417,9 +417,7 @@ export class Kernel {
if (this.#syncInProgress) {
throw new JsiiFault(
- `Cannot invoke async method '${req.objref[TOKEN_REF]}.${
- req.method
- }' while sync ${this.#syncInProgress} is being processed`,
+ `Cannot invoke async method '${req.objref[TOKEN_REF]}.${req.method}' while sync ${this.#syncInProgress} is being processed`,
);
}
@@ -1371,13 +1369,20 @@ export class Kernel {
throw new JsiiFault(`Script with name ${req.script} was not defined.`);
}
+ // Make sure the current NODE_OPTIONS are honored if we shell out to node
+ const nodeOptions = [...process.execArgv];
+
+ // When we are using the symlinked version of the cache, we need to preserve both symlink settings for binaries
+ if (nodeOptions.includes('--preserve-symlinks')) {
+ nodeOptions.push('--preserve-symlinks-main');
+ }
+
return {
command: path.join(packageDir, scriptPath),
args: req.args ?? [],
env: {
...process.env,
- // Make sure the current NODE_OPTIONS are honored if we shell out to node
- NODE_OPTIONS: process.execArgv.join(' '),
+ NODE_OPTIONS: nodeOptions.join(' '),
// Make sure "this" node is ahead of $PATH just in case
PATH: `${path.dirname(process.execPath)}:${process.env.PATH}`,
},
diff --git a/packages/@jsii/kernel/src/tar-cache/index.ts b/packages/@jsii/kernel/src/tar-cache/index.ts
index 1bc67cdfa9..7d7fbc0358 100644
--- a/packages/@jsii/kernel/src/tar-cache/index.ts
+++ b/packages/@jsii/kernel/src/tar-cache/index.ts
@@ -15,7 +15,7 @@ export interface ExtractResult {
* When `'hit'`, the data was already present in cache and was returned from
* cache.
*
- * When `'miss'`, the data was extracted into the caache and returned from
+ * When `'miss'`, the data was extracted into the cache and returned from
* cache.
*
* When `undefined`, the cache is not enabled.
diff --git a/packages/@jsii/python-runtime/pyproject.toml b/packages/@jsii/python-runtime/pyproject.toml
index 4ccebe88f3..791f88fdba 100644
--- a/packages/@jsii/python-runtime/pyproject.toml
+++ b/packages/@jsii/python-runtime/pyproject.toml
@@ -3,7 +3,7 @@ requires = ["setuptools~=62.2", "wheel~=0.37"]
build-backend = 'setuptools.build_meta'
[tool.black]
-target-version = ['py37', 'py38', 'py39', 'py310', 'py311']
+target-version = ['py38', 'py39', 'py310', 'py311']
include = '\.pyi?$'
exclude = '\.(git|mypy_cache|env)'
@@ -11,6 +11,6 @@ exclude = '\.(git|mypy_cache|env)'
ignore_missing_imports = true
[tool.pyright]
-pythonVersion = "3.7"
+pythonVersion = "3.8"
venv = ".env"
venvPath = "."
diff --git a/packages/@jsii/python-runtime/requirements.txt b/packages/@jsii/python-runtime/requirements.txt
index ce4cb80211..40c1cb7234 100644
--- a/packages/@jsii/python-runtime/requirements.txt
+++ b/packages/@jsii/python-runtime/requirements.txt
@@ -1,9 +1,9 @@
-black~=23.3
-mypy==1.4.1
+black~=23.11
+mypy==1.7.0
pip~=23.3
pytest~=7.4
pytest-mypy~=0.10
-setuptools~=68.0.0
+setuptools~=68.2.2
types-python-dateutil~=2.8
wheel~=0.41
diff --git a/packages/@jsii/python-runtime/setup.py b/packages/@jsii/python-runtime/setup.py
index 5ae79af4b7..c5378575c3 100644
--- a/packages/@jsii/python-runtime/setup.py
+++ b/packages/@jsii/python-runtime/setup.py
@@ -36,16 +36,15 @@
"publication>=0.0.3", # This is used by all generated code.
"typeguard~=2.13.3", # This is used by all generated code.
"python-dateutil",
- "typing_extensions>=3.7,<5.0",
+ "typing_extensions>=3.8,<5.0",
],
- python_requires="~=3.7",
+ python_requires="~=3.8",
classifiers=[
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"License :: OSI Approved :: Apache Software License",
"Programming Language :: JavaScript",
"Programming Language :: Python :: 3 :: Only",
- "Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
diff --git a/packages/@jsii/python-runtime/tests/test_invoke_bin.py b/packages/@jsii/python-runtime/tests/test_invoke_bin.py
index 8ff6a94271..f4e91fbee5 100644
--- a/packages/@jsii/python-runtime/tests/test_invoke_bin.py
+++ b/packages/@jsii/python-runtime/tests/test_invoke_bin.py
@@ -23,8 +23,10 @@ def silence_node_deprecation_warnings():
for var in variables:
environ[var] = "1"
- nodeEolAcknowledgement = "Node14 is now end of life (EOL) as of April 30, 2023. Support of EOL runtimes are only guaranteed for 30 days after EOL. By silencing this warning you acknowledge that you are using an EOL version of Node and will upgrade to a supported version as soon as possible."
- environ["JSII_SILENCE_WARNING_END_OF_LIFE_NODE_VERSION"] = nodeEolAcknowledgement
+ # silence this for the next decades
+ environ[
+ "JSII_SILENCE_WARNING_END_OF_LIFE_NODE_VERSION"
+ ] = "14,16,18,20,22,24,26,28,30,32,34"
# Execute the test
yield
diff --git a/packages/jsii-calc/bin/run.ts b/packages/jsii-calc/bin/run.ts
index bfa844c8e6..647ffebc53 100755
--- a/packages/jsii-calc/bin/run.ts
+++ b/packages/jsii-calc/bin/run.ts
@@ -2,11 +2,16 @@
/* eslint-disable no-console */
+import * as calcLib from '@scope/jsii-calc-lib';
+
const delay = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms));
const runCommand = async () => {
console.info('Hello World!');
+ // Make sure this binary depends on an external package to test dependencies with invokeBinScript
+ new calcLib.Number(1);
+
const args = process.argv.slice(2);
if (args.length > 0) {
console.info(` arguments: ${args.join(', ')}`);
diff --git a/packages/jsii-diff/package.json b/packages/jsii-diff/package.json
index 4148bb05ba..8d88a6aac0 100644
--- a/packages/jsii-diff/package.json
+++ b/packages/jsii-diff/package.json
@@ -42,7 +42,7 @@
},
"devDependencies": {
"@types/fs-extra": "^9.0.13",
- "@types/tar-fs": "^2.0.2",
+ "@types/tar-fs": "^2.0.4",
"jest-expect-message": "^1.1.3",
"jsii": "^0.0.0",
"jsii-build-tools": "^0.0.0"
diff --git a/packages/jsii-pacmak/lib/npm-modules.ts b/packages/jsii-pacmak/lib/npm-modules.ts
index 81f2820c83..20948947e6 100644
--- a/packages/jsii-pacmak/lib/npm-modules.ts
+++ b/packages/jsii-pacmak/lib/npm-modules.ts
@@ -135,6 +135,7 @@ async function updateNpmIgnore(
'Exclude typescript source and config',
'*.ts',
'tsconfig.json',
+ '*.tsbuildinfo',
);
includePattern(
'Include javascript files and typescript declarations',
diff --git a/packages/jsii-pacmak/lib/targets/dotnet/runtime-type-checking.ts b/packages/jsii-pacmak/lib/targets/dotnet/runtime-type-checking.ts
index 8014a86638..50a9082198 100644
--- a/packages/jsii-pacmak/lib/targets/dotnet/runtime-type-checking.ts
+++ b/packages/jsii-pacmak/lib/targets/dotnet/runtime-type-checking.ts
@@ -242,8 +242,8 @@ abstract class Validation {
t.startsWith('"')
? t.slice(1, t.length - 1)
: t.startsWith('$"')
- ? t.slice(2, t.length - 1)
- : `{${t}}`,
+ ? t.slice(2, t.length - 1)
+ : `{${t}}`,
)
.join(', ');
if (allowNull) {
diff --git a/packages/jsii-pacmak/lib/targets/python.ts b/packages/jsii-pacmak/lib/targets/python.ts
index 55b73db957..c0ab22271e 100644
--- a/packages/jsii-pacmak/lib/targets/python.ts
+++ b/packages/jsii-pacmak/lib/targets/python.ts
@@ -2102,7 +2102,7 @@ class Package {
package_dir: { '': 'src' },
packages: modules.map((m) => m.pythonName),
package_data: packageData,
- python_requires: '~=3.7',
+ python_requires: '~=3.8',
install_requires: [
`jsii${toPythonVersionRange(`^${VERSION}`)}`,
'publication>=0.0.3',
@@ -2115,7 +2115,6 @@ class Package {
'Operating System :: OS Independent',
'Programming Language :: JavaScript',
'Programming Language :: Python :: 3 :: Only',
- 'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9',
'Programming Language :: Python :: 3.10',
@@ -2236,7 +2235,7 @@ class Package {
code.line();
code.line('[tool.pyright]');
code.line('defineConstant = { DEBUG = true }');
- code.line('pythonVersion = "3.7"');
+ code.line('pythonVersion = "3.8"');
code.line('pythonPlatform = "All"');
code.line('reportSelfClsParameterName = false');
code.closeFile('pyproject.toml');
diff --git a/packages/jsii-pacmak/package.json b/packages/jsii-pacmak/package.json
index 61a1cea805..171a9f6960 100644
--- a/packages/jsii-pacmak/package.json
+++ b/packages/jsii-pacmak/package.json
@@ -47,7 +47,7 @@
"jsii-reflect": "^0.0.0",
"jsii-rosetta": "^0.0.0",
"semver": "^7.5.4",
- "spdx-license-list": "^6.7.0",
+ "spdx-license-list": "^6.8.0",
"xmlbuilder": "^15.1.1",
"yargs": "^16.2.0"
},
@@ -56,11 +56,11 @@
"@jsii/java-runtime": "^0.0.0",
"@jsii/go-runtime": "^0.0.0",
"@scope/jsii-calc-lib": "^0.0.0",
- "@types/clone": "^2.1.3",
- "@types/diff": "^5.0.7",
- "@types/commonmark": "^0.27.8",
+ "@types/clone": "^2.1.4",
+ "@types/diff": "^5.0.8",
+ "@types/commonmark": "^0.27.9",
"@types/fs-extra": "^9.0.13",
- "@types/semver": "^7.5.3",
+ "@types/semver": "^7.5.5",
"diff": "^5.1.0",
"jsii": "^0.0.0",
"jsii-build-tools": "^0.0.0",
diff --git a/packages/jsii-pacmak/test/build-test.sh b/packages/jsii-pacmak/test/build-test.sh
index b8e09d5595..9a4514db39 100755
--- a/packages/jsii-pacmak/test/build-test.sh
+++ b/packages/jsii-pacmak/test/build-test.sh
@@ -46,7 +46,9 @@ else
# Hello Windows!
. ${venv}/Scripts/activate
fi
-${PYTHON} -m pip install --upgrade pip~=22.1 twine~=4.0
+
+# Note the venv is not used by the jsii-pacmak commands
+${PYTHON} -m pip install --upgrade "pip>=23.3.1" "setuptools>=68.0.0" "wheel>=0.41.3" "twine~=4.0"
# Provision a specific NuGet package cache
NUGET_CACHE=${outdir}/.nuget/packages
diff --git a/packages/jsii-pacmak/test/generated-code/__snapshots__/examples.test.js.snap b/packages/jsii-pacmak/test/generated-code/__snapshots__/examples.test.js.snap
index 72c40a5489..cbc750ca01 100644
--- a/packages/jsii-pacmak/test/generated-code/__snapshots__/examples.test.js.snap
+++ b/packages/jsii-pacmak/test/generated-code/__snapshots__/examples.test.js.snap
@@ -1225,7 +1225,7 @@ build-backend = "setuptools.build_meta"
[tool.pyright]
defineConstant = { DEBUG = true }
-pythonVersion = "3.7"
+pythonVersion = "3.8"
pythonPlatform = "All"
reportSelfClsParameterName = false
@@ -1266,7 +1266,7 @@ kwargs = json.loads(
"py.typed"
]
},
- "python_requires": "~=3.7",
+ "python_requires": "~=3.8",
"install_requires": [
"jsii<0.0.1",
"publication>=0.0.3",
@@ -1277,7 +1277,6 @@ kwargs = json.loads(
"Operating System :: OS Independent",
"Programming Language :: JavaScript",
"Programming Language :: Python :: 3 :: Only",
- "Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
@@ -2647,7 +2646,7 @@ build-backend = "setuptools.build_meta"
[tool.pyright]
defineConstant = { DEBUG = true }
-pythonVersion = "3.7"
+pythonVersion = "3.8"
pythonPlatform = "All"
reportSelfClsParameterName = false
@@ -2688,7 +2687,7 @@ kwargs = json.loads(
"py.typed"
]
},
- "python_requires": "~=3.7",
+ "python_requires": "~=3.8",
"install_requires": [
"jsii<0.0.1",
"publication>=0.0.3",
@@ -2699,7 +2698,6 @@ kwargs = json.loads(
"Operating System :: OS Independent",
"Programming Language :: JavaScript",
"Programming Language :: Python :: 3 :: Only",
- "Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
diff --git a/packages/jsii-pacmak/test/generated-code/__snapshots__/prerelease-identifiers.test.js.snap b/packages/jsii-pacmak/test/generated-code/__snapshots__/prerelease-identifiers.test.js.snap
index 4482893e5c..473d5cfe94 100644
--- a/packages/jsii-pacmak/test/generated-code/__snapshots__/prerelease-identifiers.test.js.snap
+++ b/packages/jsii-pacmak/test/generated-code/__snapshots__/prerelease-identifiers.test.js.snap
@@ -417,7 +417,7 @@ build-backend = "setuptools.build_meta"
[tool.pyright]
defineConstant = { DEBUG = true }
-pythonVersion = "3.7"
+pythonVersion = "3.8"
pythonPlatform = "All"
reportSelfClsParameterName = false
@@ -454,7 +454,7 @@ kwargs = json.loads(
"foo@1.2.3.jsii.tgz"
]
},
- "python_requires": "~=3.7",
+ "python_requires": "~=3.8",
"install_requires": [
"bar>=2.0.0.rc42, <3.0.0",
"jsii<0.0.1",
@@ -466,7 +466,6 @@ kwargs = json.loads(
"Operating System :: OS Independent",
"Programming Language :: JavaScript",
"Programming Language :: Python :: 3 :: Only",
- "Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
@@ -932,7 +931,7 @@ build-backend = "setuptools.build_meta"
[tool.pyright]
defineConstant = { DEBUG = true }
-pythonVersion = "3.7"
+pythonVersion = "3.8"
pythonPlatform = "All"
reportSelfClsParameterName = false
@@ -969,7 +968,7 @@ kwargs = json.loads(
"foo@1.2.3.jsii.tgz"
]
},
- "python_requires": "~=3.7",
+ "python_requires": "~=3.8",
"install_requires": [
"bar>=4.5.6.dev1337, <5.0.0",
"jsii<0.0.1",
@@ -981,7 +980,6 @@ kwargs = json.loads(
"Operating System :: OS Independent",
"Programming Language :: JavaScript",
"Programming Language :: Python :: 3 :: Only",
- "Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
@@ -1427,7 +1425,7 @@ build-backend = "setuptools.build_meta"
[tool.pyright]
defineConstant = { DEBUG = true }
-pythonVersion = "3.7"
+pythonVersion = "3.8"
pythonPlatform = "All"
reportSelfClsParameterName = false
@@ -1464,7 +1462,7 @@ kwargs = json.loads(
"foo@2.0.0-rc.42.jsii.tgz"
]
},
- "python_requires": "~=3.7",
+ "python_requires": "~=3.8",
"install_requires": [
"jsii<0.0.1",
"publication>=0.0.3",
@@ -1475,7 +1473,6 @@ kwargs = json.loads(
"Operating System :: OS Independent",
"Programming Language :: JavaScript",
"Programming Language :: Python :: 3 :: Only",
- "Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
@@ -1919,7 +1916,7 @@ build-backend = "setuptools.build_meta"
[tool.pyright]
defineConstant = { DEBUG = true }
-pythonVersion = "3.7"
+pythonVersion = "3.8"
pythonPlatform = "All"
reportSelfClsParameterName = false
@@ -1956,7 +1953,7 @@ kwargs = json.loads(
"foo@4.5.6-pre.1337.jsii.tgz"
]
},
- "python_requires": "~=3.7",
+ "python_requires": "~=3.8",
"install_requires": [
"jsii<0.0.1",
"publication>=0.0.3",
@@ -1967,7 +1964,6 @@ kwargs = json.loads(
"Operating System :: OS Independent",
"Programming Language :: JavaScript",
"Programming Language :: Python :: 3 :: Only",
- "Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
diff --git a/packages/jsii-pacmak/test/generated-code/__snapshots__/target-python.test.js.snap b/packages/jsii-pacmak/test/generated-code/__snapshots__/target-python.test.js.snap
index e5db3283dd..b0d3531ebb 100644
--- a/packages/jsii-pacmak/test/generated-code/__snapshots__/target-python.test.js.snap
+++ b/packages/jsii-pacmak/test/generated-code/__snapshots__/target-python.test.js.snap
@@ -248,7 +248,7 @@ build-backend = "setuptools.build_meta"
[tool.pyright]
defineConstant = { DEBUG = true }
-pythonVersion = "3.7"
+pythonVersion = "3.8"
pythonPlatform = "All"
reportSelfClsParameterName = false
@@ -289,7 +289,7 @@ kwargs = json.loads(
"py.typed"
]
},
- "python_requires": "~=3.7",
+ "python_requires": "~=3.8",
"install_requires": [
"jsii<0.0.1",
"publication>=0.0.3",
@@ -301,7 +301,6 @@ kwargs = json.loads(
"Operating System :: OS Independent",
"Programming Language :: JavaScript",
"Programming Language :: Python :: 3 :: Only",
- "Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
@@ -803,7 +802,7 @@ build-backend = "setuptools.build_meta"
[tool.pyright]
defineConstant = { DEBUG = true }
-pythonVersion = "3.7"
+pythonVersion = "3.8"
pythonPlatform = "All"
reportSelfClsParameterName = false
@@ -844,7 +843,7 @@ kwargs = json.loads(
"py.typed"
]
},
- "python_requires": "~=3.7",
+ "python_requires": "~=3.8",
"install_requires": [
"jsii<0.0.1",
"publication>=0.0.3",
@@ -855,7 +854,6 @@ kwargs = json.loads(
"Operating System :: OS Independent",
"Programming Language :: JavaScript",
"Programming Language :: Python :: 3 :: Only",
- "Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
@@ -1331,7 +1329,7 @@ build-backend = "setuptools.build_meta"
[tool.pyright]
defineConstant = { DEBUG = true }
-pythonVersion = "3.7"
+pythonVersion = "3.8"
pythonPlatform = "All"
reportSelfClsParameterName = false
@@ -1374,7 +1372,7 @@ kwargs = json.loads(
"py.typed"
]
},
- "python_requires": "~=3.7",
+ "python_requires": "~=3.8",
"install_requires": [
"jsii<0.0.1",
"publication>=0.0.3",
@@ -1387,7 +1385,6 @@ kwargs = json.loads(
"Operating System :: OS Independent",
"Programming Language :: JavaScript",
"Programming Language :: Python :: 3 :: Only",
- "Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
@@ -2992,7 +2989,7 @@ build-backend = "setuptools.build_meta"
[tool.pyright]
defineConstant = { DEBUG = true }
-pythonVersion = "3.7"
+pythonVersion = "3.8"
pythonPlatform = "All"
reportSelfClsParameterName = false
@@ -3072,7 +3069,7 @@ kwargs = json.loads(
"py.typed"
]
},
- "python_requires": "~=3.7",
+ "python_requires": "~=3.8",
"install_requires": [
"jsii<0.0.1",
"publication>=0.0.3",
@@ -3085,7 +3082,6 @@ kwargs = json.loads(
"Operating System :: OS Independent",
"Programming Language :: JavaScript",
"Programming Language :: Python :: 3 :: Only",
- "Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
diff --git a/packages/jsii-pacmak/test/generated-code/python-pyright.test.ts b/packages/jsii-pacmak/test/generated-code/python-pyright.test.ts
index a06a7eeb77..eeb551ffb8 100644
--- a/packages/jsii-pacmak/test/generated-code/python-pyright.test.ts
+++ b/packages/jsii-pacmak/test/generated-code/python-pyright.test.ts
@@ -65,7 +65,7 @@ beforeAll(async () => {
[
'[tool.pyright]',
'defineConstant = { DEBUG = true }',
- 'pythonVersion = "3.7"',
+ 'pythonVersion = "3.8"',
'pythonPlatform = "All"',
'reportSelfClsParameterName = false',
`venvPath = ${JSON.stringify(path.dirname(venv.venvRoot))}`,
diff --git a/packages/jsii-pacmak/test/generated-code/requirements-dev.txt b/packages/jsii-pacmak/test/generated-code/requirements-dev.txt
index 04ac2a2a1e..953c8fa1f9 100644
--- a/packages/jsii-pacmak/test/generated-code/requirements-dev.txt
+++ b/packages/jsii-pacmak/test/generated-code/requirements-dev.txt
@@ -1,2 +1,2 @@
-mypy==1.4.1
-pip==23.3 # required to use --config-settings
+mypy==1.7.0
+pip==23.3.1 # required to use --config-settings
diff --git a/packages/jsii-reflect/lib/_memoized.ts b/packages/jsii-reflect/lib/_memoized.ts
index 3cc46383ed..9bce919802 100644
--- a/packages/jsii-reflect/lib/_memoized.ts
+++ b/packages/jsii-reflect/lib/_memoized.ts
@@ -1,7 +1,30 @@
-/* eslint-disable @typescript-eslint/ban-types -- WeakMap demands T extends object */
+import { TypeSystem } from './type-system';
+/* eslint-disable @typescript-eslint/ban-types -- WeakMap demands T extends object */
const CACHE = new WeakMap