Skip to main content

From Takomo 5.x to 6.x

Takomo 6.0 is a maintenance release with a few breaking changes. Upgrading from 5.x should be straightforward in most cases.

Breaking changes

Here are the breaking changes introduced in Takomo 6.0.

Require Nodejs 18.14.2

Nodejs 18.14.2 is now required to run Takomo. This change makes it possible to keep upgrading project dependencies to their latest versions in the future.

Required actions

Upgrade your Nodejs to version 18.14.2 or later.

ESM module

In order to keep the codebase modern and dependencies up to date, Takomo is now a native ESM module.

Required actions

If you have implemented your own parameter resolvers, hooks and helpers, you should convert them to be compatible with ESM. To find out more, take a look at this guide.

Drop commands

To simplify the codebase and user experience, the following less-useful CLI commands were removed.

Initialize project

The purpose of this command was to help users create new Takomo projects with optional sample code.

tkm init

Bootstrap and tear down deployment targets

The purpose of these commands were to provide a way to deploy initial stacks containing restricted deployment roles that could be used from CI pipelines.

tkm targets bootstrap
tkm targets tear-down

A better way to achieve this functionality is to use CloudFormation stack sets that are deployed automatically to every new AWS account.

Rename the temp directory

The directory for temporary files generated by Takomo was changed from .takomo-cache to .takomo/cache.

Required actions

Remove .takomo-cache from your project and add .takomo directory to your .gitignore file.

Changes to public API

The following breaking change was introduced to make it possible to stop using deprecated code from AWS SDK.

Credentials type from @aws-sdk/client-sts package was replaced with AwsCredentialIdentity from @aws-sdk/types package.

Required actions

If you have used TypeScript to implement custom parameter resolvers, hooks or helpers that use Credentials type, you need to replace the following imports:

import { Credentials } from "@aws-sdk/client-sts"

with

import { AwsCredentialIdentity } from "@aws-sdk/types"