diff --git a/.gitattributes b/.gitattributes index e52fe298..8ef0eb84 100644 --- a/.gitattributes +++ b/.gitattributes @@ -7,14 +7,17 @@ /.github/workflows/auto-approve.yml linguist-generated /.github/workflows/auto-merge.yml linguist-generated /.github/workflows/auto-tag-dev-v5.2.yml linguist-generated +/.github/workflows/auto-tag-dev-v5.3.yml linguist-generated /.github/workflows/auto-tag-dev.yml linguist-generated /.github/workflows/auto-tag-releases-v5.2.yml linguist-generated +/.github/workflows/auto-tag-releases-v5.3.yml linguist-generated /.github/workflows/auto-tag-releases.yml linguist-generated /.github/workflows/build.yml linguist-generated /.github/workflows/pull-request-lint.yml linguist-generated /.github/workflows/release.yml linguist-generated /.github/workflows/upgrade-main.yml linguist-generated /.github/workflows/upgrade-maintenance-v5.2.yml linguist-generated +/.github/workflows/upgrade-maintenance-v5.3.yml linguist-generated /.gitignore linguist-generated /.npmignore linguist-generated /.prettierrc.json linguist-generated diff --git a/.github/workflows/auto-tag-dev-v5.3.yml b/.github/workflows/auto-tag-dev-v5.3.yml new file mode 100644 index 00000000..bec3942c --- /dev/null +++ b/.github/workflows/auto-tag-dev-v5.3.yml @@ -0,0 +1,59 @@ +# ~~ Generated by projen. To modify, edit .projenrc.ts and run "npx projen". + +name: auto-tag-dev-v5.3 +run-name: Auto-Tag Prerelease (v5.3) +on: + schedule: + - cron: 0 10 * * 0,2-6 + workflow_dispatch: {} +jobs: + pre-flight: + name: Pre-Flight Checks + runs-on: ubuntu-latest + permissions: + contents: read + outputs: + sha: ${{ steps.git.outputs.sha }} + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + repository: ${{ github.repository }} + ref: maintenance/v5.3 + - name: Setup Node.js + uses: actions/setup-node@v3 + with: + cache: yarn + node-version: 18.12.0 + - name: Install dependencies + run: yarn install --frozen-lockfile + - name: Build + run: yarn build + - name: Identify git SHA + id: git + run: echo sha=$(git rev-parse HEAD) >> $GITHUB_OUTPUT + auto-tag: + name: Auto-Tag Release + needs: pre-flight + runs-on: ubuntu-latest + permissions: {} + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + repository: ${{ github.repository }} + token: ${{ secrets.PROJEN_GITHUB_TOKEN }} + ref: ${{ needs.pre-flight.outputs.sha }} + - name: Setup Node.js + uses: actions/setup-node@v3 + with: + cache: yarn + node-version: 18.12.0 + - name: Install dependencies + run: yarn install --frozen-lockfile + - name: Set git identity + run: |- + git config user.name "github-actions" + git config user.email "github-actions@github.com" + - name: Tag PreRelease + run: yarn tag-release --idempotent --no-sign --push --prerelease=dev diff --git a/.github/workflows/auto-tag-releases-v5.3.yml b/.github/workflows/auto-tag-releases-v5.3.yml new file mode 100644 index 00000000..9ec59394 --- /dev/null +++ b/.github/workflows/auto-tag-releases-v5.3.yml @@ -0,0 +1,59 @@ +# ~~ Generated by projen. To modify, edit .projenrc.ts and run "npx projen". + +name: auto-tag-releases-v5.3 +run-name: Auto-Tag Release (v5.3) +on: + schedule: + - cron: 0 10 * * 1 + workflow_dispatch: {} +jobs: + pre-flight: + name: Pre-Flight Checks + runs-on: ubuntu-latest + permissions: + contents: read + outputs: + sha: ${{ steps.git.outputs.sha }} + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + repository: ${{ github.repository }} + ref: maintenance/v5.3 + - name: Setup Node.js + uses: actions/setup-node@v3 + with: + cache: yarn + node-version: 18.12.0 + - name: Install dependencies + run: yarn install --frozen-lockfile + - name: Build + run: yarn build + - name: Identify git SHA + id: git + run: echo sha=$(git rev-parse HEAD) >> $GITHUB_OUTPUT + auto-tag: + name: Auto-Tag Release + needs: pre-flight + runs-on: ubuntu-latest + permissions: {} + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + repository: ${{ github.repository }} + token: ${{ secrets.PROJEN_GITHUB_TOKEN }} + ref: ${{ needs.pre-flight.outputs.sha }} + - name: Setup Node.js + uses: actions/setup-node@v3 + with: + cache: yarn + node-version: 18.12.0 + - name: Install dependencies + run: yarn install --frozen-lockfile + - name: Set git identity + run: |- + git config user.name "github-actions" + git config user.email "github-actions@github.com" + - name: Tag Release + run: "yarn tag-release --idempotent --no-sign --push " diff --git a/.github/workflows/upgrade-maintenance-v5.3.yml b/.github/workflows/upgrade-maintenance-v5.3.yml new file mode 100644 index 00000000..b63e93ee --- /dev/null +++ b/.github/workflows/upgrade-maintenance-v5.3.yml @@ -0,0 +1,97 @@ +# ~~ Generated by projen. To modify, edit .projenrc.ts and run "npx projen". + +name: upgrade-maintenance-v5.3 +on: + workflow_dispatch: {} + schedule: + - cron: 0 0 * * * +jobs: + upgrade: + name: Upgrade + runs-on: ubuntu-latest + permissions: + contents: read + outputs: + patch_created: ${{ steps.create_patch.outputs.patch_created }} + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + ref: maintenance/v5.3 + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 18.12.0 + - name: Install dependencies + run: yarn install --check-files --frozen-lockfile + - name: Back-port projenrc changes from main + env: + CI: "false" + run: git fetch origin main && git checkout FETCH_HEAD -- .projenrc.ts projenrc README.md && yarn projen + - name: Upgrade dependencies + run: npx projen upgrade + - name: Find mutations + id: create_patch + run: |- + git add . + git diff --staged --patch --exit-code > .repo.patch || echo "patch_created=true" >> $GITHUB_OUTPUT + working-directory: ./ + - name: Upload patch + if: steps.create_patch.outputs.patch_created + uses: actions/upload-artifact@v4 + with: + name: .repo.patch + path: .repo.patch + overwrite: true + pr: + name: Create Pull Request + needs: upgrade + runs-on: ubuntu-latest + permissions: + contents: read + if: ${{ needs.upgrade.outputs.patch_created }} + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + ref: maintenance/v5.3 + - name: Download patch + uses: actions/download-artifact@v4 + with: + name: .repo.patch + path: ${{ runner.temp }} + - name: Apply patch + run: '[ -s ${{ runner.temp }}/.repo.patch ] && git apply ${{ runner.temp }}/.repo.patch || echo "Empty patch. Skipping."' + - name: Set git identity + run: |- + git config user.name "github-actions" + git config user.email "github-actions@github.com" + - name: Create Pull Request + id: create-pr + uses: peter-evans/create-pull-request@v6 + with: + token: ${{ secrets.PROJEN_GITHUB_TOKEN }} + commit-message: |- + chore(deps): upgrade dependencies + + Upgrades project dependencies. See details in [workflow run]. + + [Workflow Run]: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} + + ------ + + *Automatically created by projen via the "upgrade-maintenance-v5.3" workflow* + branch: github-actions/upgrade-maintenance-v5.3 + title: "chore(deps): upgrade dependencies" + labels: auto-approve + body: |- + Upgrades project dependencies. See details in [workflow run]. + + [Workflow Run]: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} + + ------ + + *Automatically created by projen via the "upgrade-maintenance-v5.3" workflow* + author: github-actions + committer: github-actions + signoff: true diff --git a/.gitignore b/.gitignore index 13a688a2..85c4b13b 100644 --- a/.gitignore +++ b/.gitignore @@ -44,6 +44,7 @@ jspm_packages/ !/.eslintrc.json !/.github/workflows/upgrade-main.yml !/.github/workflows/upgrade-maintenance-v5.2.yml +!/.github/workflows/upgrade-maintenance-v5.3.yml /build-tools/tsconfig.json /projenrc/tsconfig.json /test/tsconfig.json @@ -52,6 +53,7 @@ jspm_packages/ /src/version.ts /jsii-outdir/ /test/negatives/.* +.DS_Store !/.github/workflows/build.yml !/.github/workflows/auto-merge.yml !/.github/workflows/release.yml @@ -59,4 +61,6 @@ jspm_packages/ !/.github/workflows/auto-tag-releases.yml !/.github/workflows/auto-tag-dev-v5.2.yml !/.github/workflows/auto-tag-releases-v5.2.yml +!/.github/workflows/auto-tag-dev-v5.3.yml +!/.github/workflows/auto-tag-releases-v5.3.yml !/.projenrc.ts diff --git a/.projen/deps.json b/.projen/deps.json index 9de3b297..2dfd48ef 100644 --- a/.projen/deps.json +++ b/.projen/deps.json @@ -182,7 +182,7 @@ }, { "name": "typescript", - "version": "~5.3", + "version": "~5.4", "type": "runtime" }, { diff --git a/.projen/files.json b/.projen/files.json index 042dced2..0e9dc432 100644 --- a/.projen/files.json +++ b/.projen/files.json @@ -6,14 +6,17 @@ ".github/workflows/auto-approve.yml", ".github/workflows/auto-merge.yml", ".github/workflows/auto-tag-dev-v5.2.yml", + ".github/workflows/auto-tag-dev-v5.3.yml", ".github/workflows/auto-tag-dev.yml", ".github/workflows/auto-tag-releases-v5.2.yml", + ".github/workflows/auto-tag-releases-v5.3.yml", ".github/workflows/auto-tag-releases.yml", ".github/workflows/build.yml", ".github/workflows/pull-request-lint.yml", ".github/workflows/release.yml", ".github/workflows/upgrade-main.yml", ".github/workflows/upgrade-maintenance-v5.2.yml", + ".github/workflows/upgrade-maintenance-v5.3.yml", ".gitignore", ".npmignore", ".prettierrc.json", diff --git a/.projenrc.ts b/.projenrc.ts index 25cd3215..467ba5c7 100644 --- a/.projenrc.ts +++ b/.projenrc.ts @@ -10,13 +10,13 @@ import { UpgradeDependencies } from './projenrc/upgrade-dependencies'; // See 'projenrc/support.ts' for TypeScript versions we are tracking. To add a new version: // // 1. Fork the current `main` to a maintenance branch: -// `git push origin main:maintenance/v5.2` +// `git push origin main:maintenance/vx.y` (x.y is the TS version that is about to be replaced by a new release) // 2. Add a branch protection rule for the new maintenance branch // 3. Edit `support.ts`, maintenance EOL date for the current version is 6 months from // today, make the new version current. // 4. Update `minNodeVersion` to the oldest LTS version of Node (i.e. dropping support for EOL versions of Node) // 5. `npx projen` -// 6. Update the version list in the README. +// 6. Update the version list in the README (remember to remove EOS versions) // 7. Create a PR // 8. Perform new version steps for `jsii-rosetta` @@ -239,6 +239,7 @@ project.preCompileTask.exec('ts-node build-tools/code-gen.ts', { name: 'code-gen', }); project.gitignore.addPatterns('/src/version.ts', '/jsii-outdir/', '/test/negatives/.*'); +project.gitignore.exclude('.DS_Store'); // Exclude negatives from tsconfig and eslint... project.tsconfigDev.addExclude('test/negatives/**/*.ts'); diff --git a/README.md b/README.md index fea694f5..f2f9c0e0 100644 --- a/README.md +++ b/README.md @@ -62,13 +62,12 @@ The applicable _Maintenance & Support policy_ can be reviewed in [SUPPORT.md](./ The current status of `jsii` compiler releases is: -| Release | Status | Comment | -| ------- | ----------- | --------------------------------------------------------------------------------------- | -| `5.3.x` | Current | ![npm](https://img.shields.io/npm/v/jsii/v5.3-latest?label=jsii%40v5.3-latest&logo=npm) | -| `5.2.x` | Maintenance | ![npm](https://img.shields.io/npm/v/jsii/v5.2-latest?label=jsii%40v5.2-latest&logo=npm) | -| `5.1.x` | Maintenance | ![npm](https://img.shields.io/npm/v/jsii/v5.1-latest?label=jsii%40v5.1-latest&logo=npm) | -| `5.0.x` | Maintenance | ![npm](https://img.shields.io/npm/v/jsii/v5.0-latest?label=jsii%40v5.0-latest&logo=npm) | -| `1.x` | Maintenance | | +| Release | Status | EOS | Comment | +| ------- | ----------- |------------| --------------------------------------------------------------------------------------- | +| `5.4.x` | Current | TBD | ![npm](https://img.shields.io/npm/v/jsii/v5.4-latest?label=jsii%40v5.4-latest&logo=npm) | +| `5.3.x` | Maintenance | 2024-10-07 | ![npm](https://img.shields.io/npm/v/jsii/v5.3-latest?label=jsii%40v5.3-latest&logo=npm) | +| `5.2.x` | Maintenance | 2024-06-30 | ![npm](https://img.shields.io/npm/v/jsii/v5.2-latest?label=jsii%40v5.2-latest&logo=npm) | +| `1.x` | Maintenance | 2024-10-31 | | ## :balance_scale: License diff --git a/package.json b/package.json index 6c183119..07f419e5 100644 --- a/package.json +++ b/package.json @@ -80,7 +80,7 @@ "semver-intersect": "^1.5.0", "sort-json": "^2.0.1", "spdx-license-list": "^6.9.0", - "typescript": "~5.3", + "typescript": "~5.4", "yargs": "^17.7.2" }, "engines": { diff --git a/projenrc/support.ts b/projenrc/support.ts index 44bc8bff..783f136a 100644 --- a/projenrc/support.ts +++ b/projenrc/support.ts @@ -2,12 +2,13 @@ import { JsonFile, Project } from 'projen'; import type { ReleasesDocument } from '../src/support'; export const SUPPORT_POLICY: ReleasesDocument = { - current: '5.3', + current: '5.4', maintenance: { // version: End-of-support date '5.0': new Date('2024-01-31'), '5.1': new Date('2024-02-28'), '5.2': new Date('2024-06-30'), + '5.3': new Date('2024-10-15'), }, }; diff --git a/releases.json b/releases.json index aad4109f..03954110 100644 --- a/releases.json +++ b/releases.json @@ -1,9 +1,10 @@ { - "current": "5.3", + "current": "5.4", "maintenance": { "5.0": "2024-01-31T00:00:00.000Z", "5.1": "2024-02-28T00:00:00.000Z", - "5.2": "2024-06-30T00:00:00.000Z" + "5.2": "2024-06-30T00:00:00.000Z", + "5.3": "2024-10-15T00:00:00.000Z" }, "//": "~~ Generated by projen. To modify, edit .projenrc.ts and run \"npx projen\"." } diff --git a/yarn.lock b/yarn.lock index ffa4486a..6bb2bbb9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6057,16 +6057,7 @@ string-length@^4.0.1: char-regex "^1.0.2" strip-ansi "^6.0.0" -"string-width-cjs@npm:string-width@^4.2.0": - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: +"string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -6119,14 +6110,7 @@ string_decoder@^1.1.1: dependencies: safe-buffer "~5.2.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1": - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -6453,10 +6437,10 @@ typescript@~3.9.10: resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.10.tgz#70f3910ac7a51ed6bef79da7800690b19bf778b8" integrity sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q== -typescript@~5.3: - version "5.3.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.3.3.tgz#b3ce6ba258e72e6305ba66f5c9b452aaee3ffe37" - integrity sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw== +typescript@~5.4: + version "5.4.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.4.4.tgz#eb2471e7b0a5f1377523700a21669dce30c2d952" + integrity sha512-dGE2Vv8cpVvw28v8HCPqyb08EzbBURxDpuhJvTrusShUfGnhHBafDsLdS1EhhxyL6BJQE+2cT3dDPAv+MQ6oLw== unbox-primitive@^1.0.2: version "1.0.2" @@ -6696,7 +6680,7 @@ widest-line@^4.0.1: dependencies: string-width "^5.0.1" -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== @@ -6714,15 +6698,6 @@ wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - wrap-ansi@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214"