Skip to content

Releases: seek-oss/skuba

v3.14.3

21 Jul 05:29
fe3ac41
Compare
Choose a tag to compare

Patch Changes

  • 0973818: template: seek-oss/docker-ecr-cache v1.11.0

  • 5b00ffa: template: Add test:ci script

  • 2be05f5: template: Force @jest/types resolution to fix clean installs

  • df2d5d3: template/lambda-sqs-worker: Use Docker Build secrets

  • df2d5d3: template/greeter: Use Docker Build secrets

  • df2d5d3: template/lambda-sqs-worker-cdk: Use Docker Build secrets

  • e9a71d4: template: Group Buildkite pipeline anchors

    This provides a bit more structure to our pipeline.ymls and allows anchored plugins to be recognised by Renovate.

  • 1216a45: deps: ts-node-dev 1.1.8

  • 985ff9a: template/express-rest-api: Use Docker Build secrets

  • 3e1005e: template/*-rest-api: Reduce app boilerplate

  • ee44447: template: Default Docker Compose image to empty string

    This suppresses Docker Compose CLI warnings and errors when running outside of Buildkite.

  • ec9a44a: template: Use BUILDKITE_PIPELINE_DEFAULT_BRANCH in pipeline.yml

  • 3f0f14d: configure, init: Deduplicate dependencies

  • 37503f5: template: Add placeholder test coverage configuration

  • 5b09594: template/lambda-sqs-worker-*: Build once upfront

    This employs Buildkite artifacts to share compiled code with each subsequent deployment step.

  • e9375b2: deps: TypeScript 4.3.5

  • 985ff9a: template/koa-rest-api: Use Docker Build secrets

v3.14.2

29 Jun 22:56
c353b5d
Compare
Choose a tag to compare

Patch Changes

  • e359a67: deps: TypeScript 4.3.4

  • f3531e5: deps: prettier 2.3.2

  • 274efe2: template/koa-rest-api: Include success message in smoke test body

  • 3042866: template/greeter: Use seek-oss/docker-ecr-cache Buildkite plugin

  • b113d33: template/lambda-sqs-worker: Set memorySize for smoke test hook to 128 MiB

  • 3042866: template/koa-rest-api: Use seek-oss/docker-ecr-cache Buildkite plugin

  • 3042866: template/express-rest-api: Use seek-oss/docker-ecr-cache Buildkite plugin

  • 3042866: template: Reuse ECR cache in Docker Compose

  • 42cf80d: deps: ts-node-dev 1.1.7

    Resolves CVE-2021-33623.

v3.14.1

09 Jun 02:57
21bf2b9
Compare
Choose a tag to compare

Patch Changes

  • 503ec47: deps: Prettier 2.3.1

    skuba format and skuba lint now support TypeScript 4.3 syntax. See the full Prettier changelog for more information.

  • 156663c: template: pino-pretty ^5.0.0

  • 3ff82d0: template: seek-jobs/gantry v1.3.0

v3.14.0

02 Jun 04:17
0b1fc84
Compare
Choose a tag to compare

Minor Changes

  • 88ad97f: deps: Prettier 2.3

    This release may require reformatting of your code. If your lint step is failing in CI, run your format command locally then push the resulting changes.

    yarn format
  • 88ad97f: deps: TypeScript 4.3

    This major release includes breaking changes. See the announcement for more information.

    skuba format and skuba lint will error on new TypeScript 4.3 syntax that are not yet supported by Prettier.

  • 28c62d4: deps: Jest 27

    This major release includes breaking changes. See the Jest 27 blog post and changelog for more information.

Patch Changes

  • 7ec71e8: Jest.mergePreset: Type snapshotSerializers option

  • 1742096: template: Banish typeof undefined syntax

  • 8842f92: template/lambda-sqs-worker-cdk: Always build before deploy

    This prevents stale compiled code from being cached and deployed from ECR.

  • 1b72b4b: template/koa-rest-api: Log returned error responses

  • 50792c8: template: Prune devDependencies instead of installing twice in Docker

    The template-bundled Dockerfiles would previously run yarn install twice to build a separate stage for production dependencies only. These have been updated to correctly share the Yarn cache across stages and to use yarn install --production to perform offline pruning.

  • d4ef636: deps: fs-extra ^10.0.0

v3.13.1

06 May 08:16
df05117
Compare
Choose a tag to compare

Patch Changes

  • 4ecd622: template/*-npm-package: Add yarn commit script

  • 94f3c4d: template/lambda-sqs-worker-cdk: Trim CDK deployment output

  • bc0d95d: template: @types/node ^15.0.0

  • e2d79cc: deps: typescript 4.2.4

    See the announcement for features and breaking changes. Note that the currently bundled version of Prettier does not support abstract construct signatures.

  • 94f3c4d: template/lambda-sqs-worker-cdk: Fix npm token in Buildkite pipeline

v3.13.0

14 Apr 05:05
1a29ba6
Compare
Choose a tag to compare

Minor Changes

  • 13b3bce: template/lambda-sqs-worker-cdk: Add new template

  • 78c9a48: format, lint: Support --debug flag

  • e7cd7ed: all: Upgrade templates to Node 14

    Node.js 14 is now supported on AWS Lambda. This lets us upgrade the Node.js requirement for skuba's templates.

    This should only impact newly created projects. You can use the template changes in this PR as an example of how to upgrade an existing project. A future version of skuba may include a fixup command to automatically upgrade your project to the most recent LTS release.

Patch Changes

  • 7b9c728: template/lambda-sqs-worker: Use new serverless.yml#/provider/iam grouping

    The provider.iamRoleStatements property will be removed in Serverless v3.

  • 612c04c: template/lambda-sqs-worker: serverless-plugin-canary-deployments ^0.5.0

    The plugin now patches in CodeDeploy permissions to your iamRoleStatements, so you can clean your serverless.yml:

    - - Action: codedeploy:PutLifecycleEventHookExecutionStatus
    -   Effect: Allow
    -   Resource: !Sub arn:aws:codedeploy:${AWS::Region}:${AWS::AccountId}:deploymentgroup:*/${WorkerLambdaFunctionDeploymentGroup}
  • 44e53be: template: runtypes-filter ^0.6.0

  • ae29b0c: template/koa-rest-api: Fix ineffectual smoke test

  • fc4096c: template: Drop region parameterisation

  • c3bd37d: deps: semantic-release ^17.3.8

    Resolves SNYK-JS-MARKED-1070800.

  • a343814: template/*-rest-api: Fail Gantry build if ECR scanning reports vulnerabilities

  • ab0b8d2: template: runtypes ^6.0.0

  • 1a78efa: template/koa-rest-api: Remove awkward request body from GET test

  • fdda527: deps: ejs ^3.1.6

    Resolves SNYK-JS-EJS-1049328.

  • 0124032: init: Mention GitHub repo creation

    skuba doesn't have access to GitHub credentials to create a repository on your behalf. The CLI now makes it clearer that you should create an empty GitHub repository.

  • b762058: template/lambda-sqs-worker: Remove custom Serverless variable syntax

    [email protected] bundled native support for CloudFormation pseudo parameters. This even works with arbitrary logical IDs like !Sub ${WorkerLambdaFunctionDeploymentGroup}.

  • bd22fe0: deps: runtypes ^6.0.0

  • 4cb3c48: deps: ts-node-dev 1.1.6

  • adfe1e9: Jest: Expose testTimeout in Jest.mergePreset options

  • 6797255: template/lambda-sqs-worker: Use new serverless.yml#/package/patterns property

    The package.exclude and package.include properties will be removed in Serverless v3.

  • e55907e: deps: concurrently ^6.0.0

  • cc6a5c9: deps: typescript 4.1.5

  • 8f17be6: configure: Rewrite dist => lib in serverless.ymls

  • a80fed6: template/*-rest-api: Move Gantry region config to plugin options

  • 8926a5c: template: Add GitHub repository settings and Renovate to init checklist

v3.12.2

03 Feb 06:24
b5959c7
Compare
Choose a tag to compare

Patch Changes

  • 0b2c1e0: node: Fix src module alias registration

v3.12.1

02 Feb 23:41
bc69dbc
Compare
Choose a tag to compare

Patch Changes

  • 8fce1be: node, start: Propagate process.argv

    Passing command-line arguments into a script now works as expected:

    yarn skuba node src/script.ts arg1 arg2 arg3
  • 8fce1be: node: Support Node.js inspector options when running a script

    Passing an inspector option for script debugging now works as expected:

    yarn skuba node --inspect-brk src/script.ts
  • 45ca22d: build-package, lint: Run serially on Buildkite

    These commands now run their underlying processes serially when the BUILDKITE environment variable is set. This reduces the chance of resource exhaustion on smaller instance sizes but slows down builds.

  • 56fe586: template/koa-rest-api: Tidy custom Koa types

  • a3e1821: test: Exclude Jest config.ts files from coverage

  • 56fe586: template: seek-jobs/gantry v1.2.11

v3.12.0

26 Jan 20:25
4f38efa
Compare
Choose a tag to compare

Minor Changes

  • 641accc: node: Add command

    skuba node lets you run a TypeScript source file, or open a REPL if none is provided:

    • skuba node src/some-cli-script.ts
    • skuba node

    This automatically registers a src module alias for ease of local development. For example, you can run a prospective src/someLocalCliScript.ts without having to register a module alias resolver:

    // This `src` module alias just works under `skuba node` and `skuba start`
    import { rootLogger } from 'src/framework/logging';
    yarn skuba node src/someLocalCliScript

    If you use this alias in your production code, your production entry point(s) will need to import a runtime module alias resolver like skuba-dive/register. For example, your src/app.ts may look like:

    // This must be imported directly within the `src` directory
    import 'skuba-dive/register';
    
    // You can use the `src` module alias after registration
    import { rootLogger } 'src/framework/logging';
  • 334f38b: node, start: Support function entry points

    You can now specify an entry point that targets an exported function:

    skuba start --port 12345 src/app.ts#handler

    This starts up a local HTTP server that you can POST arguments to:

    curl --data '["event", {"awsRequestId": "123"}]' --include localhost:12345

    You may find this useful to run Lambda function handlers locally.

  • e1dab09: configure, help, init: Check for newer skuba versions

    skuba will now print an upgrade command if there is a newer version available. You can now use a global installation without worrying that you're setting up new repos using outdated templates.

Patch Changes

  • 30bc4e7: template/lambda-sqs-worker: Simplify Buildkite pipeline

  • 65f3e14: deps: typescript 4.1.3

  • ceb394f: template/koa-rest-api: Type context

  • 8c87be4: lint: Detect incomplete templating

  • 5ad44ae: template: Use jest.config.ts

  • 0774f98: template/lambda-sqs-worker: Add smoke test

    This brings back versioned functions along with serverless-prune-plugin to control Lambda storage consumption. By default we configure serverless-plugin-canary-deployments for an instantaneous switch once the smoke test has passed, but this can be customised as necessary.

  • 5ad44ae: configure: Add test:watch script

  • 5ad44ae: configure: Migrate jest.config.js to jest.config.ts

  • 2d2bf99: template: Enable retry of successful deployment steps

    This should be used with caution, but may be necessary if you need to rapidly roll back a broken deployment.

  • 2d0dc1a: template/*-rest-api: Supply custom autoscaling policy

  • b7cbee2: init: Pick random server port

  • 334f38b: template/lambda-sqs-worker: Add start script

  • e7254c1: template/*-rest-api: Explicitly register listen.ts

  • 141c802: deps: Bump caret ranges

    Resolves SNYK-JS-SEMVERREGEX-1047770.

  • 9002d51: template/koa-rest-api: Limit request logging to errors

  • 641accc: start: Improve support for non-HTTP server entry points

    You can now run arbitrary TypeScript files without them exiting on a You must export callback or requestListener error.

  • 6074e53: configure, init: Improve error messaging in offline scenarios

  • e7254c1: template/*-rest-api: Clarify health checks and smoke tests

  • d5afa4d: template/lambda-sqs-worker: Require deployment bucket

  • 7e9a062: pkg: Remove ESM from skuba's bundle

    This simplifies our bundle; Node.js and skuba's CLI have always defaulted to CommonJS anyway.

  • 641accc: start: Support src module alias

  • 334f38b: node, start: Support --port option

  • 8745cb0: configure: Remove package-lock.json

  • 739ce3a: test: Set NODE_ENV=test

    This is something that Jest itself does in its bin/jest.

  • 359a9be: template: Bump caret ranges

  • 641accc: start: Support source maps

  • d7aca2a: template/lambda-sqs-worker: Lock Serverless lambdaHashingVersion

    This gets rid of the following warning when deploying:

    Deprecation warning: Starting with next major version, default value of provider.lambdaHashingVersion will be equal to "20201221"
    More Info: https://www.serverless.com/framework/docs/deprecations/#LAMBDA_HASHING_VERSION_V2
    
  • 359a9be: deps: Bump minor and patch versions

  • c3dab88: configure: Ensure workspaced package.json is private

  • ece7dd4: template/*-rest-api: Use Distroless runtime images

  • 88705b4: template: Uplift READMEs

v3.11.0

11 Dec 01:04
cf3e47d
Compare
Choose a tag to compare

Minor Changes

  • 8158e01: deps: TypeScript 4.1

    This includes formatting and linting support for new syntax features.

    See the release notes for more information.

  • da45f2d: lint: Check for unused eslint-disable directives

    skuba lint will now report on unnecessary eslint-disable directives that should be removed:

    - /* eslint-disable-next-line new-cap */
    const camelCase = 'no problems here';

Patch Changes

  • a6984b1: template: Check coverage on default test script

  • 8d53d81: deps: babel-plugin-macros ^3.0.0

  • 7c9683b: deps: ts-node-dev 1.1.1

    If you see the following error on npm install:

    npm ERR! enoent ENOENT: no such file or directory, chmod '.../node_modules/ts-node-dev/lib\bin.js'

    Try updating npm:

    npm -g install npm
  • a6984b1: template: Include test:watch script

  • f04b01b: build: Fix --out-dir requires filenames error on experimental Babel builds

  • 02b2372: deps: eslint-config-skuba 1.0.10

  • 21a68fb: deps: prettier 2.2.1

  • 04aa18a: start: Support default export of Express listener

  • 04aa18a: template/express-rest-api: Fix server listener and port

  • dd63af8: template: Lock .nvmrcs to Node.js 12