Releases: seek-oss/skuba
v4.2.1
Patch Changes
-
template/private-npm-package: Use
npm2
build agent queue (#843) -
lint, test: Set timeout for Buildkite and GitHub integrations (#835)
Transient network failures can impact annotations and autofixes. We now specify a 30 second timeout for these integration features to prevent them from hanging and indefinitely preoccupying your build agents.
-
template: Time out Buildkite test steps after 10 minutes (#842)
Successful testing and linting should complete within this window. This timeout prevents commands from hanging and indefinitely preoccupying your Buildkite agents.
steps: - label: 🧪 Test & Lint + timeout_in_minutes: 10
-
cli: Make warning logs more verbose (#826)
-
template/lambda-sqs-worker: Change deployment method to
direct
(#868) -
template/koa-rest-api: Use AsyncLocalStorage to track logger context (#864)
We now employ RequestLogging.createContextStorage to thread logging context through the middleware stack of your Koa application. This enables use of a singleton
logger
instance instead of manually propagating Koa context and jugglingrootLogger
s andcontextLogger
s.Before:
import createLogger from '@seek/logger'; import Koa, { Context } from 'koa'; import { RequestLogging } from 'seek-koala'; const rootLogger = createLogger(); const contextLogger = (ctx: Context) => rootLogger.child(RequestLogging.contextFields(ctx)); const app = new Koa().use((ctx) => { rootLogger.info('Has no context'); contextLogger(ctx).info('Has context'); });
After:
import createLogger from '@seek/logger'; import Koa from 'koa'; import { RequestLogging } from 'seek-koala'; const { createContextMiddleware, mixin } = RequestLogging.createContextStorage(); const contextMiddleware = createContextMiddleware(); const logger = createLogger({ mixin }); const app = new Koa().use(contextMiddleware).use((ctx) => { logger.info('Has context'); });
-
template/lambda-sqs-worker: Use AsyncLocalStorage to track logger context (#871)
We now employ this Node.js API to thread logging context through the handler of your Lambda function. This enables use of a singleton
logger
instance instead of manually propagating Lambda context and jugglingrootLogger
s andcontextLogger
s, and is equivalent to #864.Before:
import createLogger from '@seek/logger'; import { Context } from 'aws-lambda'; const rootLogger = createLogger(); const contextLogger = ({ awsRequestId }: Context) => rootLogger.child({ awsRequestId }); const handler = async (_event: unknown, ctx: Context) => { rootLogger.info('Has no context'); contextLogger(ctx).info('Has context'); };
After:
import { AsyncLocalStorage } from 'async_hooks'; import createLogger from '@seek/logger'; import { Context } from 'aws-lambda'; const loggerContext = new AsyncLocalStorage<{ awsRequestId: string }>(); const logger = createLogger({ mixin: () => ({ ...loggerContext.getStore() }), }); const handler = (_event: unknown, { awsRequestId }: Context) => loggerContext.run({ awsRequestId }, async () => { logger.info('Has context'); });
-
template/lambda-sqs-worker*: Bump Node.js version to 16 (#862)
-
build-package, lint: Improve detection of SEEK Buildkite queues for serial execution (#829)
-
lint: Detect and autofix ESLint warnings (#844)
-
lint: Skip autofixing when ESLint reports no fixable issues (#844)
-
format, lint: Avoid unnecessary template literals (#849)
We now automatically convert unnecessary template literals into single-quoted strings for consistency.
-
deps: Jest 28 (#856)
This major release includes breaking changes. See the announcement post for more information.
v4.2.1-beta.0
Patch Changes
- cli: Make warning logs more verbose (#826)
v4.2.0
Minor Changes
-
deps: TypeScript 4.6 (#811)
This major release includes breaking changes. See the TypeScript 4.5 and TypeScript 4.6 announcements for more information.
-
lint: Autofix in CI (#800)
skuba lint
can now automatically push ESLint and Prettier autofixes. This eases adoption of linting rule changes and automatically resolves issues arising from a forgottenskuba format
.You'll need to configure your CI environment to support this feature. See our GitHub autofixes documentation to learn more.
-
deps: ESLint 8 + eslint-config-seek 9 (#806)
These major upgrades bundle new parser and plugin versions. See the ESLint 8 guide and eslint-config-seek 9 release for more details on the underlying changes.
We've introduced new linting rules like @typescript-eslint/no-unsafe-argument, and resolved the following installation warning:
babel-eslint is now @babel/eslint-parser. This package will no longer receive updates.
If you wish to relax some of the new rules, extend your
.eslintrc.js
config:module.exports = { extends: ['skuba'], rules: { // Demote new TypeScript ESLint rule from 'error' to 'warn'. '@typescript-eslint/no-unsafe-argument': 'warn', }, };
Patch Changes
-
template/lambda-sqs-worker-cdk: Fix progress configuration in
cdk.json
(#797) -
Jest.mergePreset: Allow additional props via type parameter (#806)
-
Git.currentBranch: Add helper function (#804)
-
test: Strip ANSI escape codes from error messages for GitHub annotations (#825)
-
Git.commitAllChanges: Skip commit and return
undefined
when there are no changes (#804) -
template/oss-npm-package: Lock down GitHub workflow permissions (#807)
This aligns with OpenSSF guidance.
-
template: Propagate Buildkite environment variables for lint autofixing (#800)
-
template: Exclude DOM type definitions by default (#822)
TypeScript will now raise compiler errors when DOM globals like
document
andwindow
are referenced in new projects. This catches unsafe usage of Web APIs that will throw exceptions in a Node.js context.If you are developing a new npm package for browser use or require specific Node.js-compatible Web APIs like the Encoding API, you can opt in to DOM type definitions in your
tsconfig.json
:{ "compilerOptions": { - "lib": ["ES2020"] + "lib": ["DOM", "ES2020"] } }
If you have an existing backend project, you can opt out of DOM type definitions in your
tsconfig.json
.For Node.js 14:
{ "compilerOptions": { + "lib": ["ES2020"], "target": "ES2020" } }
For Node.js 16:
{ "compilerOptions": { + "lib": ["ES2021"], "target": "ES2021" } }
-
Git.getOwnerAndRepo: Support reading from CI environment variables (#804)
-
Git.getHeadCommitMessage: Add helper function (#804)
-
template/*-rest-api: Avoid alternative syntax for ENV instructions (#823)
Omitting the
=
symbol in ENV instructions is discouraged and may be disallowed in future.- ENV NODE_ENV production + ENV NODE_ENV=production
-
template/oss-npm-package: Pin GitHub action versions (#805)
-
template/*-rest-api: seek-jobs/gantry v1.7.0 (#824)
v4.2.0-beta.6
Minor Changes
-
deps: TypeScript 4.6 (#811)
This major release includes breaking changes. See the TypeScript 4.5 and TypeScript 4.6 announcements for more information.
-
changesets: Integrate Changesets release workflow (#672)
You can now release npm packages with the
skuba changesets
command, which is a Buildkite-compatible port of the GitHub Changesets Release Action. See the Changesets deep dive for more information. -
lint: Autofix in CI (#800)
skuba lint
can now automatically push ESLint and Prettier autofixes. This eases adoption of linting rule changes and automatically resolves issues arising from a forgottenskuba format
.You'll need to configure your CI environment to support this feature. See our GitHub autofixes documentation to learn more.
-
deps: ESLint 8 + eslint-config-seek 9 (#806)
These major upgrades bundle new parser and plugin versions. See the ESLint 8 guide and eslint-config-seek 9 release for more details on the underlying changes.
We've introduced new linting rules like @typescript-eslint/no-unsafe-argument, and resolved the following installation warning:
babel-eslint is now @babel/eslint-parser. This package will no longer receive updates.
If you wish to relax some of the new rules, extend your
.eslintrc.js
config:module.exports = { extends: ['skuba'], rules: { // Demote new TypeScript ESLint rule from 'error' to 'warn'. '@typescript-eslint/no-unsafe-argument': 'warn', }, };
Patch Changes
-
template/lambda-sqs-worker-cdk: Fix progress configuration in
cdk.json
(#797) -
Jest.mergePreset: Allow additional props via type parameter (#806)
-
Git.currentBranch: Add helper function (#804)
-
Git.commitAllChanges: Skip commit and return
undefined
when there are no changes (#804) -
template/oss-npm-package: Lock down GitHub workflow permissions (#807)
This aligns with OpenSSF guidance.
-
template: Propagate Buildkite environment variables for lint autofixing (#800)
-
Git.getOwnerAndRepo: Support reading from CI environment variables (#804)
-
Git.getHeadCommitMessage: Add helper function (#804)
-
template/oss-npm-package: Pin GitHub action versions (#805)
v4.2.0-beta.5
Minor Changes
-
deps: TypeScript 4.6 (#811)
This major release includes breaking changes. See the TypeScript 4.5 and TypeScript 4.6 announcements for more information.
-
changesets: Integrate Changesets release workflow (#672)
You can now release npm packages with the
skuba changesets
command, which is a Buildkite-compatible port of the GitHub Changesets Release Action. See the Changesets deep dive for more information. -
lint: Autofix in CI (#800)
skuba lint
can now automatically push ESLint and Prettier autofixes. This eases adoption of linting rule changes and automatically resolves issues arising from a forgottenskuba format
.You'll need to configure your CI environment to support this feature. See our GitHub autofixes documentation to learn more.
-
deps: ESLint 8 + eslint-config-seek 9 (#806)
These major upgrades bundle new parser and plugin versions. See the ESLint 8 guide and eslint-config-seek 9 release for more details on the underlying changes.
We've introduced new linting rules like @typescript-eslint/no-unsafe-argument, and resolved the following installation warning:
babel-eslint is now @babel/eslint-parser. This package will no longer receive updates.
If you wish to relax some of the new rules, extend your
.eslintrc.js
config:module.exports = { extends: ['skuba'], rules: { // Demote new TypeScript ESLint rule from 'error' to 'warn'. '@typescript-eslint/no-unsafe-argument': 'warn', }, };
Patch Changes
-
template/lambda-sqs-worker-cdk: Fix progress configuration in
cdk.json
(#797) -
Jest.mergePreset: Allow additional props via type parameter (#806)
-
Git.currentBranch: Add helper function (#804)
-
Git.commitAllChanges: Skip commit and return
undefined
when there are no changes (#804) -
template/oss-npm-package: Lock down GitHub workflow permissions (#807)
This aligns with OpenSSF guidance.
-
template: Propagate Buildkite environment variables for lint autofixing (#800)
-
Git.getOwnerAndRepo: Support reading from CI environment variables (#804)
-
Git.getHeadCommitMessage: Add helper function (#804)
-
template/oss-npm-package: Pin GitHub action versions (#805)
v4.2.0-beta.4
Minor Changes
-
deps: TypeScript 4.6 (#811)
This major release includes breaking changes. See the TypeScript 4.5 and TypeScript 4.6 announcements for more information.
-
changesets: Integrate Changesets release workflow (#672)
You can now release npm packages with the
skuba changesets
command, which is a Buildkite-compatible port of the GitHub Changesets Release Action. See the Changesets deep dive for more information. -
lint: Autofix in CI (#800)
skuba lint
can now automatically push ESLint and Prettier autofixes. This eases adoption of linting rule changes and automatically resolves issues arising from a forgottenskuba format
.You'll need to configure your CI environment to support this feature. See our GitHub autofixes documentation to learn more.
-
deps: ESLint 8 + eslint-config-seek 9 (#806)
These major upgrades bundle new parser and plugin versions. See the ESLint 8 guide and eslint-config-seek 9 release for more details on the underlying changes.
We've introduced new linting rules like @typescript-eslint/no-unsafe-argument, and resolved the following installation warning:
babel-eslint is now @babel/eslint-parser. This package will no longer receive updates.
If you wish to relax some of the new rules, extend your
.eslintrc.js
config:module.exports = { extends: ['skuba'], rules: { // Demote new TypeScript ESLint rule from 'error' to 'warn'. '@typescript-eslint/no-unsafe-argument': 'warn', }, };
Patch Changes
-
template/lambda-sqs-worker-cdk: Fix progress configuration in
cdk.json
(#797) -
Jest.mergePreset: Allow additional props via type parameter (#806)
-
Git.currentBranch: Add helper function (#804)
-
Git.commitAllChanges: Skip commit and return
undefined
when there are no changes (#804) -
template/oss-npm-package: Lock down GitHub workflow permissions (#807)
This aligns with OpenSSF guidance.
-
template: Propagate Buildkite environment variables for lint autofixing (#800)
-
Git.getOwnerAndRepo: Support reading from CI environment variables (#804)
-
Git.getHeadCommitMessage: Add helper function (#804)
-
template/oss-npm-package: Pin GitHub action versions (#805)
v4.2.0-beta.3
Minor Changes
-
deps: TypeScript 4.6 (#811)
This major release includes breaking changes. See the TypeScript 4.5 and TypeScript 4.6 announcements for more information.
-
changesets: Integrate Changesets release workflow (#672)
You can now release npm packages with the
skuba changesets
command, which is a Buildkite-compatible port of the GitHub Changesets Release Action. See the Changesets deep dive for more information. -
lint: Autofix in CI (#800)
skuba lint
can now automatically push ESLint and Prettier autofixes. This eases adoption of linting rule changes and automatically resolves issues arising from a forgottenskuba format
.You'll need to configure your CI environment to support this feature. See our GitHub autofixes documentation to learn more.
-
deps: ESLint 8 + eslint-config-seek 9 (#806)
These major upgrades bundle new parser and plugin versions. See the ESLint 8 guide and eslint-config-seek 9 release for more details on the underlying changes.
We've introduced new linting rules like @typescript-eslint/no-unsafe-argument, and resolved the following installation warning:
babel-eslint is now @babel/eslint-parser. This package will no longer receive updates.
If you wish to relax some of the new rules, extend your
.eslintrc.js
config:module.exports = { extends: ['skuba'], rules: { // Demote new TypeScript ESLint rule from 'error' to 'warn'. '@typescript-eslint/no-unsafe-argument': 'warn', }, };
Patch Changes
-
template/lambda-sqs-worker-cdk: Fix progress configuration in
cdk.json
(#797) -
Jest.mergePreset: Allow additional props via type parameter (#806)
-
Git.currentBranch: Add helper function (#804)
-
Git.commitAllChanges: Skip commit and return
undefined
when there are no changes (#804) -
template/oss-npm-package: Lock down GitHub workflow permissions (#807)
This aligns with OpenSSF guidance.
-
template: Propagate Buildkite environment variables for lint autofixing (#800)
-
Git.getOwnerAndRepo: Support reading from CI environment variables (#804)
-
Git.getHeadCommitMessage: Add helper function (#804)
-
template/oss-npm-package: Pin GitHub action versions (#805)
v4.2.0-beta.2
Minor Changes
-
deps: TypeScript 4.6 (#811)
This major release includes breaking changes. See the TypeScript 4.5 and TypeScript 4.6 announcements for more information.
-
changesets: Integrate Changesets release workflow (#672)
You can now release npm packages with the
skuba changesets
command, which is a Buildkite-compatible port of the GitHub Changesets Release Action. See the Changesets deep dive for more information. -
lint: Autofix in CI (#800)
skuba lint
can now automatically push ESLint and Prettier autofixes. This eases adoption of linting rule changes and automatically resolves issues arising from a forgottenskuba format
.You'll need to configure your CI environment to support this feature. See our GitHub autofixes documentation to learn more.
-
deps: ESLint 8 + eslint-config-seek 9 (#806)
These major upgrades bundle new parser and plugin versions. See the ESLint 8 guide and eslint-config-seek 9 release for more details on the underlying changes.
We've introduced new linting rules like @typescript-eslint/no-unsafe-argument, and resolved the following installation warning:
babel-eslint is now @babel/eslint-parser. This package will no longer receive updates.
If you wish to relax some of the new rules, extend your
.eslintrc.js
config:module.exports = { extends: ['skuba'], rules: { // Demote new TypeScript ESLint rule from 'error' to 'warn'. '@typescript-eslint/no-unsafe-argument': 'warn', }, };
Patch Changes
-
template/lambda-sqs-worker-cdk: Fix progress configuration in
cdk.json
(#797) -
Jest.mergePreset: Allow additional props via type parameter (#806)
-
Git.currentBranch: Add helper function (#804)
-
Git.commitAllChanges: Skip commit and return
undefined
when there are no changes (#804) -
template/oss-npm-package: Lock down GitHub workflow permissions (#807)
This aligns with OpenSSF guidance.
-
template: Propagate Buildkite environment variables for lint autofixing (#800)
-
Git.getOwnerAndRepo: Support reading from CI environment variables (#804)
-
Git.getHeadCommitMessage: Add helper function (#804)
-
template/oss-npm-package: Pin GitHub action versions (#805)
v4.2.0-beta.1
Minor Changes
-
lint: Autofix in CI (#800)
skuba lint
can now automatically push ESLint and Prettier autofixes. This eases adoption of linting rule changes and automatically resolves issues arising from a forgottenskuba format
.You'll need to configure your CI environment to support this feature. See our GitHub autofixes documentation to learn more.
Patch Changes
-
template/lambda-sqs-worker-cdk: Fix progress configuration in
cdk.json
(#797) -
Git.currentBranch: Add helper function (#804)
-
Git.commitAllChanges: Skip commit and return
undefined
when there are no changes (#804) -
template/oss-npm-package: Lock down GitHub workflow permissions (#807)
This aligns with OpenSSF guidance.
-
template: Propagate Buildkite environment variables for lint autofixing (#800)
-
Git.getOwnerAndRepo: Support reading from CI environment variables (#804)
-
Git.getHeadCommitMessage: Add helper function (#804)
-
template/oss-npm-package: Pin GitHub action versions (#805)
v4.2.0-beta.0
Minor Changes
-
lint: Autofix in CI (#800)
skuba lint
can now automatically push ESLint and Prettier autofixes. This lets us introduce new autofixable linting rules and version upgrades without requiring a manualskuba format
on each project.You'll need to configure your CI environment to support this feature. See our GitHub autofixes documentation to learn more.
Patch Changes
-
template/lambda-sqs-worker-cdk: Fix progress configuration in
cdk.json
(#797) -
Git.currentBranch: Add helper function (#804)
-
Git.commitAllChanges: Skip commit and return
undefined
when there are no changes (#804) -
template: Propagate additional Buildkite environment variables (#800)
-
Git.getOwnerAndRepo: Support reading from CI environment variables (#804)
-
Git.getHeadCommitMessage: Add helper function (#804)