Skip to content

Commit

Permalink
chore(release): 1.98.0 (#4497)
Browse files Browse the repository at this point in the history
  • Loading branch information
mergify[bot] authored Apr 30, 2024
2 parents 729de35 + 4f79357 commit 00b106d
Show file tree
Hide file tree
Showing 35 changed files with 198 additions and 153 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/docker-images.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
debian:
- 'bullseye' # 11
- 'bookworm' # 12
node: ['18', '20']
node: ['18', '20', '22']
exclude:
# We publish bullseye only with Node >= 20
- debian: 'bullseye'
Expand Down
50 changes: 44 additions & 6 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -231,6 +231,13 @@ jobs:
node: '20' # EOL 2026-04-30
os: ubuntu-latest
python: '3.8'
- title: 'Node 22'
java: '8'
dotnet: '6.0.x'
go: '1.18'
node: '22' # EOL 2027-04-30
os: ubuntu-latest
python: '3.8'
# Test alternate .NETs
- title: '.NET 7.0'
java: '8'
Expand Down Expand Up @@ -420,9 +427,17 @@ jobs:
auto-push: true

pacmak-integration-test:
name: Integration test (jsii-pacmak)
runs-on: ubuntu-latest
needs: create-release-package
strategy:
fail-fast: false
matrix:
rosetta:
# this will be the 1.x-dev version build in this repo
- ./jsii-rosetta.tgz
- 5.2.x
- 5.3.x
- 5.4.x
steps:
# Check out the code
- name: Download Artifact
Expand Down Expand Up @@ -456,19 +471,42 @@ jobs:
run: sudo apt install -y python3-venv
# Show time!
- name: Prepare Work Tree
# 1) Move the locally build version of jsii-rosetta somewhere else
# 2) Remove @jsii/integ-test because it messed up version dependencies and is not needed
# 3) Install aws-cdk-lib, and all locally build packages minus jsii-rosetta & @jsii/integ-test,
# and the specific version of jsii-rosetta
# This ensures we are running jsii-pacmak with the correct peer-dependency
# 4) Print the jsii-rosetta version for confirmation
run: |-
npm install --no-save aws-cdk-lib@2 constructs@10 \
${{ runner.temp }}/release-package/js/*.tgz \
${{ runner.temp }}/release-package/private/*.tgz
mv ${{ runner.temp }}/release-package/js/jsii-rosetta.tgz ./jsii-rosetta.tgz
rm ${{ runner.temp }}/release-package/private/@jsii-integ-test.tgz
npm install --no-save --omit=dev \
aws-cdk-lib@2 \
constructs@10 \
${{ runner.temp }}/release-package/js/*.tgz \
${{ runner.temp }}/release-package/private/*.tgz \
jsii-rosetta@${{ matrix.rosetta }}
- name: Display jsii-rosetta version
run: npx jsii-rosetta --version
- name: Run jsii-pacmak on aws-cdk-lib
env:
NODE_OPTIONS: --max-old-space-size=6144
# We run with --no-parallel to avoid running out of memory...
run: |-
./node_modules/.bin/jsii-pacmak --no-parallel ./node_modules/aws-cdk-lib
# Upload artifact (we'll tar it up to save time)
# Upload artifact only on main and for latest rosetta
- name: 'Upload Artifact: integtest_aws-cdk-lib'
uses: actions/upload-artifact@v3
if: github.ref == 'ref/head/main' && matrix.rosetta == '5.4.x'
uses: actions/upload-artifact@v4
with:
name: integtest_aws-cdk-lib
path: ./node_modules/aws-cdk-lib/dist/

pacmak-integration-test-ok:
name: Integration test (jsii-pacmak)
runs-on: ubuntu-latest
needs: pacmak-integration-test
steps:
- name: OK
# This is just a join target to simplify branch protection setup
run: echo OK
17 changes: 17 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,23 @@

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.98.0](https://github.com/aws/jsii/compare/v1.97.0...v1.98.0) (2024-04-30)


### ⚠ BREAKING CHANGES

* **pacmak:** jsii-pacmak now has a peer dependency on jsii-rosetta. Please ensure a version of jsii-rosetta matching your version of jsii is available. Most package managers install peer dependencies automatically and no change is required. However users of yarn v1 or npm v3 to v6 must install jsii-rosetta manually.

### Features

* node22 support ([#4489](https://github.com/aws/jsii/issues/4489)) ([699366d](https://github.com/aws/jsii/commit/699366db4df0179aaf1aec151d28e0cea6c2edba))


### Bug Fixes

* **pacmak:** jsii-pacmak uses incompatible version of jsii-rosetta ([#4487](https://github.com/aws/jsii/issues/4487)) ([cdb47e4](https://github.com/aws/jsii/commit/cdb47e4e148522ca17a28187b514673046a3f1a3)), closes [#4098](https://github.com/aws/jsii/issues/4098)
* **reflect:** additional type predicates for `isXyzType` methods ([#4491](https://github.com/aws/jsii/issues/4491)) ([459481f](https://github.com/aws/jsii/commit/459481f360e911ad6d8b5b5afbcce3b596299d85))

## [1.97.0](https://github.com/aws/jsii/compare/v1.96.0...v1.97.0) (2024-04-08)


Expand Down
4 changes: 2 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ The following tools need to be installed to develop on JSII locally. We recommen
using the docker image from the above section, but if you wish to, you can install
in your development environment.

- [Node `14.6.0`] or later
- [Node `18.0.0`] or later
- [Yarn `1.19.1`] or later
- An OpenJDK-8 distribution (e.g: [Oracle's OpenJDK8], [Amazon Corretto 8])
+ [`maven >= 3.0.5`](https://maven.apache.org)
Expand All @@ -52,7 +52,7 @@ in your development environment.
+ *Recommended:* [`twine`](https://pypi.org/project/twine/)
- [Go] `1.18` or newer

[Node `14.6.0`]: https://nodejs.org/download/release/v14.6.0/
[Node `18.0.0`]: https://nodejs.org/download/release/latest-v18.x/
[Yarn `1.19.1`]: https://yarnpkg.com/en/docs/install
[Oracle's OpenJDK8]: http://openjdk.java.net/install/
[Amazon Corretto 8]: https://aws.amazon.com/corretto/
Expand Down
27 changes: 13 additions & 14 deletions gh-pages/content/overview/toolchain.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,19 @@
!!! info
We are considering creating an "umbrella entrypoint" to make it easier to consume.

| Name | Release | Stability | Description |
| --------------- | ------- | -------------- | --------------------------------------------------------------------- |
| [jsii1] | `1.x` | [Maintenance] | Compiles TypeScript to jsii module (TypeScript 3.9 Syntax) |
| [jsii] | `5.0.x` | GA | Compiles TypeScript to jsii module (TypeScript 5.0 Syntax) |
| [jsii-pacmak] | `1.x` | GA | Creates ready-to-publish language-specific packages from jsii modules |
| [jsii-reflect] | `1.x` | GA | Strong-typed reflection library for jsii type systems |
| [jsii-diff] | `1.x` | GA | API backwards compatibility checker |
| [jsii-rosetta1] | `1.x` | [Maintenance] | Transpile code snippets (in docs) from TypeScript to jsii languages |
| [jsii-rosetta] | `5.0.x` | Experimental | Transpile code snippets (in docs) from TypeScript to jsii languages |
| [jsii-config] | `1.x` | Experimental | Interactive tool for generating jsii configuration |
| [jsii-release] | `1.x` | Community | Publishes jsii modules to all supported package managers |
| [jsii-srcmak] | `1.x` | Community | Generates relocatable source code in jsii languages from typescript |
| [jsii-docgen] | `1.x` | Community | Generates markdown API documentation for jsii modules |
| Name | Release | Stability | Description |
| --------------- | ------- | ------------- | --------------------------------------------------------------------- |
| [jsii1] | `1.x` | [Maintenance] | Compiles TypeScript to jsii module (TypeScript 3.9 Syntax) |
| [jsii] | `5.x` | GA | Compiles TypeScript to jsii module (TypeScript 5.x Syntax) |
| [jsii-pacmak] | `1.x` | GA | Creates ready-to-publish language-specific packages from jsii modules |
| [jsii-reflect] | `1.x` | GA | Strong-typed reflection library for jsii type systems |
| [jsii-diff] | `1.x` | GA | API backwards compatibility checker |
| [jsii-rosetta1] | `1.x` | [Maintenance] | Transpile code snippets (in docs) from TypeScript to jsii languages |
| [jsii-rosetta] | `5.x` | GA | Transpile code snippets (in docs) from TypeScript to jsii languages |
| [jsii-config] | `1.x` | Experimental | Interactive tool for generating jsii configuration |
| [jsii-release] | `1.x` | Community | Publishes jsii modules to all supported package managers |
| [jsii-srcmak] | `1.x` | Community | Generates relocatable source code in jsii languages from typescript |
| [jsii-docgen] | *any* | Community | Generates markdown API documentation for jsii modules |

??? question "Stability Definitions"
- **GA**: Projects that are deemed *Generally Available* and for which customers can expect full support, including
Expand All @@ -32,7 +32,6 @@

[semver]: https://semver.org/spec/v2.0.0.html


[Maintenance]: ../compiler-and-rosetta-maintenance.md
[jsii1]: https://github.com/aws/jsii/tree/main/packages/jsii
[jsii]: https://github.com/aws/jsii-compiler#readme
Expand Down
2 changes: 1 addition & 1 deletion gh-pages/content/user-guides/language-support/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ declared _Generally Available_. At this point, breaking changes are no longer po
[`jsii-calc`]: ../../packages/jsii-calc
[`jsii-config`]: ../../packages/jsii-config
[`jsii-pacmak`]: ../../packages/jsii-pacmak
[`jsii-rosetta`]: ../../packages/jsii-rosetta
[`jsii-rosetta`]: https://github.com/aws/jsii-rosetta
[standard compliance suite]: ../../specification/4-standard-compliance-suite.md
[`public.ecr.aws/jsii/superchain`]: ../../superchain
[`aws-delivlib`]: https://github.com/awslabs/aws-delivlib
Expand Down
4 changes: 2 additions & 2 deletions gh-pages/partials/node-support-table.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@

| Release | Status | End-of-Life |
| --------- | ---------------------------- | ------------ |
| `^14.6.0` | :white_check_mark: Supported | `2023-04-30` |
| `^16.3.0` | :white_check_mark: Supported | `2024-09-11` |
| `^18.0.0` | :white_check_mark: Supported | `2025-04-30` |
| `^20.0.0` | :white_check_mark: Supported | `2026-04-30` |
| `^22.0.0` | :white_check_mark: Supported | `2027-04-30` |

??? question "Status Definitions"
- **:white_check_mark: Supported**: Long Term Support (LTS) releases (those with an even major version) are
Expand Down
4 changes: 2 additions & 2 deletions gh-pages/requirements-dev.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
mkdocs~=1.5.3
mkdocs~=1.6.0
mkdocs-awesome-pages-plugin~=2.9.2
mkdocs-material~=9.5.17
mkdocs-material~=9.5.20
mkdocs-git-revision-date-plugin~=0.3.2
2 changes: 1 addition & 1 deletion lerna.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,6 @@
"rejectCycles": true
}
},
"version": "1.97.0",
"version": "1.98.0",
"$schema": "node_modules/lerna/schemas/lerna-schema.json"
}
4 changes: 2 additions & 2 deletions packages/@jsii/Directory.Build.targets
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@

<PackageReference Update="Microsoft.NET.Test.Sdk" Version="17.9.0" />
<PackageReference Update="NSubstitute" Version="5.1.0" />
<PackageReference Update="xunit" Version="2.7.0" />
<PackageReference Update="xunit.runner.visualstudio" Version="2.5.7" />
<PackageReference Update="xunit" Version="2.8.0" />
<PackageReference Update="xunit.runner.visualstudio" Version="2.8.0" />
<PackageReference Update="XunitXml.TestLogger" Version="3.1.17" />

<PackageReference Update="Newtonsoft.Json" Version="13.0.3" />
Expand Down
1 change: 1 addition & 0 deletions packages/@jsii/check-node/src/constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ export class NodeRelease {
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'), untested: true }),
new NodeRelease(22, { endOfLife: new Date('2027-04-30') }),

// Future (planned releases)
];
Expand Down
8 changes: 4 additions & 4 deletions packages/@jsii/python-runtime/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
black~=24.3
mypy==1.9.0
black~=24.4
mypy==1.10.0
pip~=24.0
pytest~=8.1
pytest~=8.2
pytest-mypy~=0.10
setuptools~=69.2.0
setuptools~=69.5.1
types-python-dateutil~=2.9
wheel~=0.43

Expand Down
9 changes: 9 additions & 0 deletions packages/jsii-pacmak/.eslintrc.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,12 @@ extends: ../../eslint-config.yaml

ignorePatterns:
- test/generated-code/examples/**

rules:
'import/no-extraneous-dependencies':
- error
- devDependencies: # Only allow importing devDependencies from tests
- '**/test/**'
- '**/*.test.ts'
optionalDependencies: false # Disallow importing optional dependencies (those shouldn't be used here)
peerDependencies: true # jsii-pacmak has a peer dependency on jsii-rosetta
1 change: 0 additions & 1 deletion packages/jsii-pacmak/bin/jsii-pacmak.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
#!/usr/bin/env node
import '@jsii/check-node/run';
import '../lib/suppress-jsii-upgrade-prompts';

import { UnknownSnippetMode } from 'jsii-rosetta';
import * as yargs from 'yargs';
Expand Down
4 changes: 2 additions & 2 deletions packages/jsii-pacmak/lib/builder.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Rosetta } from 'jsii-rosetta';
import { RosettaTabletReader } from 'jsii-rosetta';
import * as path from 'path';

import * as logging from './logging';
Expand Down Expand Up @@ -44,7 +44,7 @@ export interface BuildOptions {
/**
* The Rosetta instance to load examples from
*/
readonly rosetta: Rosetta;
readonly rosetta: RosettaTabletReader;

/**
* Whether to generate runtime type checking code in places where compile-time
Expand Down
8 changes: 3 additions & 5 deletions packages/jsii-pacmak/lib/index.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
import './suppress-jsii-upgrade-prompts';

import { TypeSystem } from 'jsii-reflect';
import { Rosetta, UnknownSnippetMode } from 'jsii-rosetta';
import { RosettaTabletReader, UnknownSnippetMode } from 'jsii-rosetta';
import { resolve } from 'path';
import { cwd } from 'process';

Expand Down Expand Up @@ -41,7 +39,7 @@ export async function pacmak({
updateNpmIgnoreFiles = false,
validateAssemblies = false,
}: PacmakOptions): Promise<void> {
const rosetta = new Rosetta({
const rosetta = new RosettaTabletReader({
unknownSnippets: rosettaUnknownSnippets,
prefixDisclaimer: true,
});
Expand Down Expand Up @@ -315,7 +313,7 @@ async function buildTargetsForLanguage(
fingerprint: boolean;
force: boolean;
perLanguageDirectory: boolean;
rosetta: Rosetta;
rosetta: RosettaTabletReader;
runtimeTypeChecking: boolean;
},
): Promise<void> {
Expand Down
2 changes: 0 additions & 2 deletions packages/jsii-pacmak/lib/suppress-jsii-upgrade-prompts.ts

This file was deleted.

6 changes: 3 additions & 3 deletions packages/jsii-pacmak/lib/target.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import * as spec from '@jsii/spec';
import * as fs from 'fs-extra';
import * as reflect from 'jsii-reflect';
import { Rosetta } from 'jsii-rosetta';
import { RosettaTabletReader } from 'jsii-rosetta';
import * as path from 'path';
import * as spdx from 'spdx-license-list/full';

Expand All @@ -16,7 +16,7 @@ export abstract class Target {
protected readonly arguments: { [name: string]: any };
protected readonly targetName: string;
protected readonly assembly: reflect.Assembly;
protected readonly rosetta: Rosetta;
protected readonly rosetta: RosettaTabletReader;
protected readonly runtimeTypeChecking: boolean;

protected abstract readonly generator: IGenerator;
Expand Down Expand Up @@ -211,7 +211,7 @@ export interface TargetOptions {
assembly: reflect.Assembly;

/** The Rosetta instance */
rosetta: Rosetta;
rosetta: RosettaTabletReader;

/** Whether to generate runtime type-checking code */
runtimeTypeChecking: boolean;
Expand Down
6 changes: 3 additions & 3 deletions packages/jsii-pacmak/lib/targets/dotnet/dotnetdocgenerator.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import * as spec from '@jsii/spec';
import { CodeMaker } from 'codemaker';
import {
Rosetta,
RosettaTabletReader,
TargetLanguage,
enforcesStrictMode,
markDownToXmlDoc,
Expand All @@ -23,7 +23,7 @@ export class DotNetDocGenerator {

public constructor(
code: CodeMaker,
private readonly rosetta: Rosetta,
private readonly rosetta: RosettaTabletReader,
private readonly assembly: spec.Assembly,
) {
this.code = code;
Expand Down Expand Up @@ -106,7 +106,7 @@ export class DotNetDocGenerator {
}

/**
* Returns the lines that should go into the <remarks> section
* Returns the lines that should go into the <remarks> section {@link http://www.google.com|Google}
*/
private renderRemarks(docs: spec.Docs, apiLocation: ApiLocation): string[] {
const ret: string[] = [];
Expand Down
6 changes: 3 additions & 3 deletions packages/jsii-pacmak/lib/targets/dotnet/dotnetgenerator.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import * as fs from 'fs-extra';
import * as http from 'http';
import * as https from 'https';
import * as reflect from 'jsii-reflect';
import { Rosetta } from 'jsii-rosetta';
import { RosettaTabletReader } from 'jsii-rosetta';
import * as path from 'path';

import { Generator, Legalese } from '../../generator';
Expand All @@ -23,7 +23,7 @@ import { ParameterValidator } from './runtime-type-checking';
export class DotNetGenerator extends Generator {
private readonly nameutils: DotNetNameUtils = new DotNetNameUtils();

private readonly rosetta: Rosetta;
private readonly rosetta: RosettaTabletReader;

// Flags that tracks if we have already wrote the first member of the class
private firstMemberWritten = false;
Expand All @@ -37,7 +37,7 @@ export class DotNetGenerator extends Generator {
public constructor(
private readonly assembliesCurrentlyBeingCompiled: string[],
options: {
readonly rosetta: Rosetta;
readonly rosetta: RosettaTabletReader;
readonly runtimeTypeChecking: boolean;
},
) {
Expand Down
Loading

0 comments on commit 00b106d

Please sign in to comment.