Releases: seek-oss/skuba
v3.14.3
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.yml
s 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
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
v3.14.0
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
andskuba 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 DockerThe template-bundled Dockerfiles would previously run
yarn install
twice to build a separate stage for productiondependencies
only. These have been updated to correctly share the Yarn cache across stages and to useyarn install --production
to perform offline pruning. -
d4ef636: deps: fs-extra ^10.0.0
v3.13.1
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
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
groupingThe
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 yourserverless.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
inJest.mergePreset
options -
6797255: template/lambda-sqs-worker: Use new
serverless.yml#/package/patterns
propertyThe
package.exclude
andpackage.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
inserverless.yml
s -
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
v3.12.1
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
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 prospectivesrc/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, yoursrc/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 configureserverless-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
tojest.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
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
directivesskuba lint
will now report on unnecessaryeslint-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
.nvmrc
s to Node.js 12