Skip to content

Easily manage AWS CDK Dependencies

Notifications You must be signed in to change notification settings

cdk-dev/bump-cdk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

bump-cdk

Quickstart

Run bump-cdk in a directory with a package.json that contains AWS CDK Dependencies. After running, you should see your cdk dependencies pinned and updated!

$ npm i -g bump-cdk
or
$ yarn global add bump-cdk
or
$ npx bump-cdk

Why does this exist

A common issue when working with AWS CDK is a version mismatch issue. Because of the way CDK's modules interface together, they must always be on the same version as each other More Information.

This for example might cause an error:

{
  "dependencies": {
    "@aws-cdk/core": "1.30.0",
    "@aws-cdk/aws-lambda": "1.51.0"
  }
}

This introduces maintenance overhead by forcing you to always have your CDK dependencies matching.

Additionally, because of NPM/Yarn behavior, when you add dependencies, you often end up with fluid version ranges. More Information.

Example:

$ yarn add @aws-cdk/core
{
    "dependencies": {
        "@aws-cdk/core": "^1.30.0"
    }
}

This means that the module is "Compatible with version" 1.30.0, but this version will be set in the lockfile, and dependencies added at a later date can get out of sync.

As a result of this, it is recommended to pin the versions without the semver range modifier.

Usage

Cli

Usage
  $ bump-cdk <project-directory>
Options
  --version, -v            Outputs the version of bump-cdk
  --explicit-version, -e   Version to set cdk to
  --dry-run                Outputs changes, but doesn't modify any files
  --help, -h               Displays this message
  --debug, -d              Enable verbose logging

Programatic

Minimal Example:

import { bumpCdk } from 'bump-cdk';

await bumpCdk(process.cwd());

This defaults debug and dryRun mode as well as pulls the latest version of aws-cdk from NPM and sets all dependencies to that version.

You can also pass in some other options:

import { bumpCdk } from 'bump-cdk';

await bumpCdk(process.cwd(), '1.51.0', true, true);

This enables debug mode and dryRun mode as well as sets the specific version of aws-cdk to use.

Contributing

Pull requests welcome!