Skip to content

cdk-dev/bump-cdk

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
bin
 
 
lib
 
 
 
 
 
 
 
 
 
 

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!

About

Easily manage AWS CDK Dependencies

Topics

Resources

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published