diff --git a/.changeset/big-weeks-enjoy.md b/.changeset/big-weeks-enjoy.md deleted file mode 100644 index ff67bceef..000000000 --- a/.changeset/big-weeks-enjoy.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -'skuba': major ---- - -lint: Migrate to ESLint 9 and `@typescript-eslint` 8. - -These changes may affect your project setup if customising your ESLint configuration. See the individual migration guides: - -- https://eslint.org/docs/latest/use/migrate-to-9.0.0 -- https://typescript-eslint.io/blog/announcing-typescript-eslint-v8 - -In addition, through these major upgrades, some lint rules have changed or have been renamed. You will likely need adjust your code after running ESLint. - -Furthermore, `eslint-plugin-import` has been replaced with `eslint-plugin-import-x`. To migrate, any references to `eslint-plugin-import` should be replaced with `eslint-plugin-import-x`, and `import/` rules with `import-x/`. - -As part of this migration, skuba has migrated to using Flat ESLint configuration. Read the migration: https://eslint.org/docs/latest/use/configure/migration-guide. - -`skuba format` will attempt to migrate to flat configuration for you, where `.eslintignore` and `.eslintrc` are replaced by `eslint.config.js`. diff --git a/.changeset/dull-flowers-build.md b/.changeset/dull-flowers-build.md deleted file mode 100644 index 53c21b347..000000000 --- a/.changeset/dull-flowers-build.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -'skuba': minor ---- - -lint: Update Docker base images to point to AWS ECR Public and remove redundant `--platform` usage - -This updates references to `node:` or `python:` Docker images in your `Dockerfile` and `docker-compose.yml` files to point to AWS ECR Public to avoid Docker Hub rate limiting, along with removing redundant `--platform` [usage](https://docs.docker.com/reference/build-checks/from-platform-flag-const-disallowed/). - -eg. - -```Dockerfile -## Before -FROM --platform=arm64 node:20-alpine AS dev-deps - -## After -FROM public.ecr.aws/docker/library/node:20-alpine AS dev-deps -``` diff --git a/.changeset/empty-cherries-admire.md b/.changeset/empty-cherries-admire.md deleted file mode 100644 index 5adf81cba..000000000 --- a/.changeset/empty-cherries-admire.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -'skuba': major ---- - -node, start: Replace `ts-node` with `tsx` - -`skuba start` and `skuba node` now use `tsx` instead of `ts-node` for running TypeScript files. `tsx` has better ESM interoperability, like support for dynamic imports (`await import()`), than `ts-node`. - -There are some downsides for the REPL (which is what `skuba node` without any file is): - -- `import` statements in the REPL are not supported; `require` and `await import()` are still supported. -- Pasting code into the REPL may not work as well as `ts-node`. If encountering issues, a workaround could be to use [`.editor`](https://nodejs.org/en/learn/command-line/how-to-use-the-nodejs-repl#dot-commands) - -Otherwise, `skuba start` and `skuba node ` _should_ work as expected. However, it is difficult to comprehensively test every scenario, so this has been released as a major version. It is recommended to test your use-cases of `skuba start` and `skuba node` after upgrading. diff --git a/.changeset/heavy-scissors-divide.md b/.changeset/heavy-scissors-divide.md deleted file mode 100644 index dc588578c..000000000 --- a/.changeset/heavy-scissors-divide.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'skuba': patch ---- - -template/koa-rest-api: Enable secure headers middleware by default diff --git a/.changeset/hot-crews-swim.md b/.changeset/hot-crews-swim.md deleted file mode 100644 index 8b65c377b..000000000 --- a/.changeset/hot-crews-swim.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'skuba': minor ---- - -lint: Removes obsolete version field from docker-compose.yml files diff --git a/.changeset/hungry-keys-cover.md b/.changeset/hungry-keys-cover.md deleted file mode 100644 index 4ff01c6b1..000000000 --- a/.changeset/hungry-keys-cover.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'skuba': patch ---- - -template: Add required tags to `lambda-sqs-worker-cdk` template diff --git a/.changeset/quick-icons-taste.md b/.changeset/quick-icons-taste.md deleted file mode 100644 index 95089a253..000000000 --- a/.changeset/quick-icons-taste.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'skuba': patch ---- - -api: Truncate Buildkite annotations over 1 MiB to resolve `buildkite-agent` crash diff --git a/.changeset/renovate-0a25f92.md b/.changeset/renovate-0a25f92.md deleted file mode 100644 index 219fca51a..000000000 --- a/.changeset/renovate-0a25f92.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'skuba': patch ---- - -deps: validate-npm-package-name ^6.0.0 diff --git a/.changeset/renovate-0e2e683.md b/.changeset/renovate-0e2e683.md deleted file mode 100644 index 028b2c5da..000000000 --- a/.changeset/renovate-0e2e683.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'skuba': patch ---- - -deps: normalize-package-data ^7.0.0 diff --git a/.changeset/renovate-457fabb.md b/.changeset/renovate-457fabb.md deleted file mode 100644 index 744f520db..000000000 --- a/.changeset/renovate-457fabb.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'skuba': minor ---- - -deps: TypeScript 5.6 - -This major release includes breaking changes. See the [TypeScript 5.6](https://devblogs.microsoft.com/typescript/announcing-typescript-5-6/) announcement for more information. diff --git a/.changeset/renovate-82aed23.md b/.changeset/renovate-82aed23.md deleted file mode 100644 index 9f948c91f..000000000 --- a/.changeset/renovate-82aed23.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'skuba': patch ---- - -deps: esbuild ~0.24.0 diff --git a/.changeset/renovate-f65cedc.md b/.changeset/renovate-f65cedc.md deleted file mode 100644 index b0d0d05ca..000000000 --- a/.changeset/renovate-f65cedc.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'skuba': patch ---- - -deps: concurrently ^9.0.0 diff --git a/.changeset/rich-chairs-wink.md b/.changeset/rich-chairs-wink.md deleted file mode 100644 index db2f06bab..000000000 --- a/.changeset/rich-chairs-wink.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -'skuba': minor ---- - -lint: Replace `.buildkite/` files with duplicated YAML merge keys, for example: - -```yaml -# Before -- <<: *deploy - <<: *docker - label: stuff - -# After -- <<: [*deploy, *docker] - label: stuff -``` - -This should have no functional change, and is to support standardised YAML parsing across different tools, including the latest ESLint upgrades. - -This migration will not be capture all cases of this (e.g. if there are keys between the merge keys). If you have other cases, update them following the example above. diff --git a/.changeset/shiny-parents-sit.md b/.changeset/shiny-parents-sit.md deleted file mode 100644 index c2b9f1747..000000000 --- a/.changeset/shiny-parents-sit.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'skuba': minor ---- - -template/lambda-sqs-worker-cdk: Replace custom hooks with `@seek/aws-codedeploy-infra` diff --git a/.changeset/small-meals-scream.md b/.changeset/small-meals-scream.md deleted file mode 100644 index b124d8481..000000000 --- a/.changeset/small-meals-scream.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'eslint-config-skuba': minor ---- - -Disable `@typescript-eslint/only-throw-error` in test files diff --git a/.changeset/strange-bats-doubt.md b/.changeset/strange-bats-doubt.md deleted file mode 100644 index 1ed4b059f..000000000 --- a/.changeset/strange-bats-doubt.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -'skuba': minor ---- - -lint, format: Remove [logic](https://github.com/seek-oss/skuba/pull/1226/) which skips autofixing Renovate branches when there is no open pull request. - -Previously, this was put in place to prevent an issue where a Renovate branch can get stuck in the `Edited/Blocked` state without a pull request being raised. - -Skuba's default autofix commits are [now ignored by skuba's recommended renovate configuration](https://github.com/seek-oss/rynovate/pull/121). diff --git a/.changeset/thick-taxis-vanish.md b/.changeset/thick-taxis-vanish.md deleted file mode 100644 index 936e056f3..000000000 --- a/.changeset/thick-taxis-vanish.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -'eslint-config-skuba': major ---- - -Migrate to ESLint 9, `@typescript-eslint` 8, `eslint-config-seek` 14. - -These changes may affect your project setup if customising your ESLint configuration. See the individual migration guides: - -- https://eslint.org/docs/latest/use/migrate-to-9.0.0 -- https://typescript-eslint.io/blog/announcing-typescript-eslint-v8 - -Through these major upgrades, some lint rules have changed or have been renamed. You will likely need to adjust your code after running ESLint. - -As part of this migration, this project has migrated to Flat ESLint configuration. Read the migration: https://eslint.org/docs/latest/use/configure/migration-guide. - -Furthermore, `eslint-plugin-import` has been replaced with `eslint-plugin-import-x`. To migrate, any references to `eslint-plugin-import` should be replaced with `eslint-plugin-import-x`, and `import/` rules with `import-x/`. diff --git a/.changeset/twelve-bobcats-compete.md b/.changeset/twelve-bobcats-compete.md deleted file mode 100644 index 50d1cfeff..000000000 --- a/.changeset/twelve-bobcats-compete.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'skuba': patch ---- - -template/\*: Update Docker base images to point to AWS ECR Public and remove redundant `--platform` usage diff --git a/CHANGELOG.md b/CHANGELOG.md index ab8ab68ef..c97e45899 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,100 @@ # skuba +## 9.0.0 + +### Major Changes + +- **lint:** Migrate to ESLint 9 and `@typescript-eslint` 8. ([#1537](https://github.com/seek-oss/skuba/pull/1537)) + + These changes may affect your project setup if customising your ESLint configuration. See the individual migration guides: + + - https://eslint.org/docs/latest/use/migrate-to-9.0.0 + - https://typescript-eslint.io/blog/announcing-typescript-eslint-v8 + + In addition, through these major upgrades, some lint rules have changed or have been renamed. You will likely need adjust your code after running ESLint. + + Furthermore, `eslint-plugin-import` has been replaced with `eslint-plugin-import-x`. To migrate, any references to `eslint-plugin-import` should be replaced with `eslint-plugin-import-x`, and `import/` rules with `import-x/`. + + As part of this migration, skuba has migrated to using Flat ESLint configuration. Read the migration: https://eslint.org/docs/latest/use/configure/migration-guide. + + `skuba format` will attempt to migrate to flat configuration for you, where `.eslintignore` and `.eslintrc` are replaced by `eslint.config.js`. + +- **node, start:** Replace `ts-node` with `tsx` ([#1623](https://github.com/seek-oss/skuba/pull/1623)) + + `skuba start` and `skuba node` now use `tsx` instead of `ts-node` for running TypeScript files. `tsx` has better ESM interoperability, like support for dynamic imports (`await import()`), than `ts-node`. + + There are some downsides for the REPL (which is what `skuba node` without any file is): + + - `import` statements in the REPL are not supported; `require` and `await import()` are still supported. + - Pasting code into the REPL may not work as well as `ts-node`. If encountering issues, a workaround could be to use [`.editor`](https://nodejs.org/en/learn/command-line/how-to-use-the-nodejs-repl#dot-commands) + + Otherwise, `skuba start` and `skuba node ` _should_ work as expected. However, it is difficult to comprehensively test every scenario, so this has been released as a major version. It is recommended to test your use-cases of `skuba start` and `skuba node` after upgrading. + +### Minor Changes + +- **lint:** Update Docker base images to point to AWS ECR Public and remove redundant `--platform` usage ([#1684](https://github.com/seek-oss/skuba/pull/1684)) + + This updates references to `node:` or `python:` Docker images in your `Dockerfile` and `docker-compose.yml` files to point to AWS ECR Public to avoid Docker Hub rate limiting, along with removing redundant `--platform` [usage](https://docs.docker.com/reference/build-checks/from-platform-flag-const-disallowed/). + + eg. + + ```Dockerfile + ## Before + FROM --platform=arm64 node:20-alpine AS dev-deps + + ## After + FROM public.ecr.aws/docker/library/node:20-alpine AS dev-deps + ``` + +- **lint:** Removes obsolete version field from docker-compose.yml files ([#1638](https://github.com/seek-oss/skuba/pull/1638)) + +- **deps:** TypeScript 5.6 ([#1655](https://github.com/seek-oss/skuba/pull/1655)) + + This major release includes breaking changes. See the [TypeScript 5.6](https://devblogs.microsoft.com/typescript/announcing-typescript-5-6/) announcement for more information. + +- **lint:** Replace `.buildkite/` files with duplicated YAML merge keys, for example: ([#1537](https://github.com/seek-oss/skuba/pull/1537)) + + ```yaml + # Before + - <<: *deploy + <<: *docker + label: stuff + + # After + - <<: [*deploy, *docker] + label: stuff + ``` + + This should have no functional change, and is to support standardised YAML parsing across different tools, including the latest ESLint upgrades. + + This migration will not be capture all cases of this (e.g. if there are keys between the merge keys). If you have other cases, update them following the example above. + +- **template/lambda-sqs-worker-cdk:** Replace custom hooks with `@seek/aws-codedeploy-infra` ([#1644](https://github.com/seek-oss/skuba/pull/1644)) + +- **lint, format:** Remove [logic](https://github.com/seek-oss/skuba/pull/1226/) which skips autofixing Renovate branches when there is no open pull request. ([#1687](https://github.com/seek-oss/skuba/pull/1687)) + + Previously, this was put in place to prevent an issue where a Renovate branch can get stuck in the `Edited/Blocked` state without a pull request being raised. + + Skuba's default autofix commits are [now ignored by skuba's recommended renovate configuration](https://github.com/seek-oss/rynovate/pull/121). + +### Patch Changes + +- **template/koa-rest-api:** Enable secure headers middleware by default ([#1601](https://github.com/seek-oss/skuba/pull/1601)) + +- **template:** Add required tags to `lambda-sqs-worker-cdk` template ([#1643](https://github.com/seek-oss/skuba/pull/1643)) + +- **api:** Truncate Buildkite annotations over 1 MiB to resolve `buildkite-agent` crash ([#1645](https://github.com/seek-oss/skuba/pull/1645)) + +- **deps:** validate-npm-package-name ^6.0.0 ([#1682](https://github.com/seek-oss/skuba/pull/1682)) + +- **deps:** normalize-package-data ^7.0.0 ([#1681](https://github.com/seek-oss/skuba/pull/1681)) + +- **deps:** esbuild ~0.24.0 ([#1671](https://github.com/seek-oss/skuba/pull/1671)) + +- **deps:** concurrently ^9.0.0 ([#1666](https://github.com/seek-oss/skuba/pull/1666)) + +- **template/\*:** Update Docker base images to point to AWS ECR Public and remove redundant `--platform` usage ([#1684](https://github.com/seek-oss/skuba/pull/1684)) + ## 8.2.1 ### Patch Changes diff --git a/package.json b/package.json index 1f76826a1..7df9757b8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "skuba", - "version": "8.2.1", + "version": "9.0.0", "private": false, "description": "SEEK development toolkit for backend applications and packages", "homepage": "https://github.com/seek-oss/skuba#readme", @@ -172,6 +172,6 @@ "entryPoint": "src/index.ts", "template": null, "type": "package", - "version": "8.2.1" + "version": "9.0.0" } } diff --git a/packages/eslint-config-skuba/CHANGELOG.md b/packages/eslint-config-skuba/CHANGELOG.md index 9bbdffdc7..25475d9ec 100644 --- a/packages/eslint-config-skuba/CHANGELOG.md +++ b/packages/eslint-config-skuba/CHANGELOG.md @@ -1,5 +1,26 @@ # eslint-config-skuba +## 5.0.0 + +### Major Changes + +- Migrate to ESLint 9, `@typescript-eslint` 8, `eslint-config-seek` 14. ([#1537](https://github.com/seek-oss/skuba/pull/1537)) + + These changes may affect your project setup if customising your ESLint configuration. See the individual migration guides: + + - https://eslint.org/docs/latest/use/migrate-to-9.0.0 + - https://typescript-eslint.io/blog/announcing-typescript-eslint-v8 + + Through these major upgrades, some lint rules have changed or have been renamed. You will likely need to adjust your code after running ESLint. + + As part of this migration, this project has migrated to Flat ESLint configuration. Read the migration: https://eslint.org/docs/latest/use/configure/migration-guide. + + Furthermore, `eslint-plugin-import` has been replaced with `eslint-plugin-import-x`. To migrate, any references to `eslint-plugin-import` should be replaced with `eslint-plugin-import-x`, and `import/` rules with `import-x/`. + +### Minor Changes + +- Disable `@typescript-eslint/only-throw-error` in test files ([#1689](https://github.com/seek-oss/skuba/pull/1689)) + ## 4.1.0 ### Minor Changes diff --git a/packages/eslint-config-skuba/package.json b/packages/eslint-config-skuba/package.json index 7d8f4a981..b2a47c6ce 100644 --- a/packages/eslint-config-skuba/package.json +++ b/packages/eslint-config-skuba/package.json @@ -1,6 +1,6 @@ { "name": "eslint-config-skuba", - "version": "4.1.0", + "version": "5.0.0", "private": false, "description": "ESLint config for skuba", "homepage": "https://github.com/seek-oss/skuba/tree/main/packages/eslint-config-skuba#readme",