Skip to content

Commit

Permalink
Merge branch 'main' into dependabot/nuget/packages/jsii/dotnet-runtim…
Browse files Browse the repository at this point in the history
…e-test/test/Microsoft.NET.Test.Sdk-17.8.0
  • Loading branch information
mrgrain authored Nov 14, 2023
2 parents 1e00a0e + a2ab316 commit a19df74
Show file tree
Hide file tree
Showing 11 changed files with 80 additions and 72 deletions.
6 changes: 3 additions & 3 deletions .github/workflows/docker-images.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,16 +22,16 @@ jobs:
fail-fast: false
matrix:
debian:
- 'buster' # 10
node: ['16', '18', '20']
- 'buster' # 10
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
Expand Down
38 changes: 15 additions & 23 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,11 +42,11 @@ 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'
node-version: '18'
- name: Set up Python 3.7
uses: actions/setup-python@v4
with:
Expand Down Expand Up @@ -125,11 +125,11 @@ 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'
node-version: '18'
- name: Set up Python 3.7
uses: actions/setup-python@v4
with:
Expand Down Expand Up @@ -195,35 +195,28 @@ 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)
# Add specific combinations to be tested against (to restrict cardinality)
include:
# Test using Windows
- title: 'Windows'
os: windows-latest
dotnet: '6.0.x'
go: '1.18'
java: '8'
node: '16'
node: '18'
python: '3.7'
# Test using macOS
- title: 'macOS'
os: macos-latest
dotnet: '6.0.x'
go: '1.18'
java: '8'
node: '16'
node: '18'
python: '3.7'
# 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'
Expand All @@ -243,23 +236,23 @@ jobs:
java: '8'
dotnet: '7.0.x'
go: '1.18'
node: '16'
node: '18'
os: ubuntu-latest
python: '3.7'
# 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'
# 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'
# Test alternate Pythons
Expand All @@ -268,28 +261,28 @@ jobs:
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 }}
Expand Down Expand Up @@ -479,4 +472,3 @@ jobs:
with:
name: integtest_aws-cdk-lib
path: ./node_modules/aws-cdk-lib/dist/

7 changes: 4 additions & 3 deletions packages/@jsii/check-node/src/constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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',
Expand All @@ -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)
];
Expand Down
2 changes: 1 addition & 1 deletion packages/@jsii/check-node/src/index.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
7 changes: 4 additions & 3 deletions packages/@jsii/check-node/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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.`,
Expand Down
11 changes: 9 additions & 2 deletions packages/@jsii/kernel/src/kernel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1371,13 +1371,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}`,
},
Expand Down
2 changes: 1 addition & 1 deletion packages/@jsii/kernel/src/tar-cache/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
6 changes: 4 additions & 2 deletions packages/@jsii/python-runtime/tests/test_invoke_bin.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
5 changes: 5 additions & 0 deletions packages/jsii-calc/bin/run.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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(', ')}`);
Expand Down
4 changes: 2 additions & 2 deletions superchain/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -232,10 +232,10 @@ COPY superchain/m2-settings.xml /root/.m2/settings.xml
# Install Go
COPY --from=bindist /opt/golang/go ${GOROOT}

# Install Node 14+ (configurable with '--build-arg NODE_MAJOR_VERSION=xxx') and yarn
# Install Node (configurable with '--build-arg NODE_MAJOR_VERSION=xxx') and yarn
# (Put this as late as possible in the Dockerfile so we get to reuse the layer cache
# for most of the multiple builds).
ARG NODE_MAJOR_VERSION="16"
ARG NODE_MAJOR_VERSION="18"
COPY superchain/gpg/nodesource.asc /tmp/nodesource.asc
COPY superchain/gpg/yarn.asc /tmp/yarn.asc
RUN apt-key add /tmp/nodesource.asc && rm /tmp/nodesource.asc \
Expand Down
64 changes: 32 additions & 32 deletions superchain/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,15 @@ required in order to package [jsii] projects in all supported languages.

## Included Language SDKs

SDK | Version
----------------|-------------------------------------------
`OpenJDK 20` | Amazon Corretto `>= 20.0.0`
`.NET SDK` | `>= 6.0.14`
`mono` | `>= 6.8.0.105`
`Javascript` | see [NodeJS and NPM](#nodejs-and-npm)
`PowerShell` | `pwsh >= 7.1.3`
`Python 3` | `python3 >= 3.7.4` with `pip3 >= 20.0.2`
`Go` | `go >= 1.18`
| SDK | Version |
| ------------ | ---------------------------------------- |
| `OpenJDK 20` | Amazon Corretto `>= 20.0.0` |
| `.NET SDK` | `>= 6.0.14` |
| `mono` | `>= 6.8.0.105` |
| `Javascript` | see [NodeJS and NPM](#nodejs-and-npm) |
| `PowerShell` | `pwsh >= 7.1.3` |
| `Python 3` | `python3 >= 3.7.4` with `pip3 >= 20.0.2` |
| `Go` | `go >= 1.18` |

## Image tags

Expand All @@ -31,9 +31,7 @@ public.ecr.aws/jsii/superchain:<JSII-MAJOR>-<BASE>(-node<NODE-MAJOR>)(-nightly)
- `<BASE>` is the base image tag (e.g: `buster-slim`, `bullseye-slim`, `bookworm-slim`)
- The only supported value is `buster-slim`
- `<NODE-MAJOR>` is the major version of node contained in the image
- `14` corresponds to node 14.x, this is the default
- `16` corresponds to node 16.x
- `18` corresponds to node 18.x
- `18` corresponds to node 18.x, this is the default
- `20` corresponds to node 20.x
- `-nightly` images are released from the `HEAD` of the [`aws/jsii`][jsii]
repository and should typically not be used for production workloads
Expand All @@ -42,12 +40,14 @@ The previous image tags have been discontinued:

- `:latest` (users should migrate to `:1-buster-slim`)
- `:nightly` (users should migrate to `:1-buster-slim-nightly`)
- `:node10` (users should migrate to `:1-buster-slim-node14`)
- `:node10-nightly` (users should migrate to `:1-buster-slim-node14-nightly`)
- `:node12` (users shoudl migrate to `:1-buster-slim-node14`)
- `:node12-nightly` (users shoudl migrate to `:1-buster-slim-node14-nightly`)
- `:node14` (users shoudl migrate to `:1-buster-slim-node14`)
- `:node14-nightly` (users shoudl migrate to `:1-buster-slim-node14-nightly`)
- `:node10` (users should migrate to `:1-buster-slim-node18`)
- `:node10-nightly` (users should migrate to `:1-buster-slim-node18-nightly`)
- `:node12` (users should migrate to `:1-buster-slim-node18`)
- `:node12-nightly` (users shoudl migrate to `:1-buster-slim-node18-nightly`)
- `:node14` (users should migrate to `:1-buster-slim-node18`)
- `:node14-nightly` (users shoudl migrate to `:1-buster-slim-node18-nightly`)
- `:node16` (users should migrate to `:1-buster-slim-node18`)
- `:node16-nightly` (users shoudl migrate to `:1-buster-slim-node18-nightly`)

## Building

Expand Down Expand Up @@ -82,20 +82,20 @@ jsii$ docker build [...] --build-arg NODE_MAJOR_VERSION=16

## Included Tools & Utilities

Tool / Utility | Version
---------------|--------------------------------------------
`aws` | `>= 2.11.17`
`bundler` | `>= 1.17.3` and `>= 2.1.4`
`docker` | `>= 18.09.9-ce`
`git` | `>= 2.23.1`
`make` | `>= 3.82`
`maven` | `>= 3.6.3`
`openssl` | `>= 1.0.2k-fips`
`rsync` | `>= 3.1.2`
`yarn` | `>= 1.21.1`
`zip` & `unzip`| `>= 6.0-19`
`gh` | `>= 1.9.2`
`sam` | `>= 1.37.0`
| Tool / Utility | Version |
| --------------- | -------------------------- |
| `aws` | `>= 2.11.17` |
| `bundler` | `>= 1.17.3` and `>= 2.1.4` |
| `docker` | `>= 18.09.9-ce` |
| `git` | `>= 2.23.1` |
| `make` | `>= 3.82` |
| `maven` | `>= 3.6.3` |
| `openssl` | `>= 1.0.2k-fips` |
| `rsync` | `>= 3.1.2` |
| `yarn` | `>= 1.21.1` |
| `zip` & `unzip` | `>= 6.0-19` |
| `gh` | `>= 1.9.2` |
| `sam` | `>= 1.37.0` |

## License

Expand Down

0 comments on commit a19df74

Please sign in to comment.