@codastic/release

A collection of release and changelog management script you can easily use via NPM.

Stats

stars 🌟issues ⚠️updated 🛠created 🐣size 🏋️‍♀️
10Jul 22, 2021Jul 20, 2017Minified + gzip package size for @codastic/release in KB

Readme

@codastic/release

A collection of release and changelog management script you can easily use via NPM.

Installation

$ npm install @codastic/release

Features

  • Creates a CHANGELOG.md containing all commits starting with Merge pull request….
  • Bumps the package version and adds version headlines to the CHANGELOG.md.
  • Creates a GitHub release.

Quick Start

Running npm install @codastic/release adds the following scripts to you local node_modules/.bin folder:

  • update-changelog: Adds merged pulled requests since last versioned release to CHANGELOG.md, Supports pull requests from Github and Bitbucket.

  • release: Bumps a new versioned release of the current state into CHANGELOG.md and package.json.

  • release-github: Creates a Github release by zipping and uploading the build folder and using current version number from package.json.

To integrate the release process into your project/package just run $ npm install --save-dev @codastic/release.

Then use the installed scripts in you package.json scripts. e.g.

{
  "scripts": {
    "build": "[your build command]",
    "changes": "update-changelog --dry-run .",
    "prerelease": "npm run -s test && update-changelog .",
    "release": "release .",
    "postrelease": "npm run -s build && release-github ./ ./dist",
    "test": "[your test command]"
  }
}

update-changelog

$ update-changelog ROOT_DIR [OPTIONS]

Options

  • --help: Outputs help.

  • --dry-run: (optional) Outputs changes instead of writing to CHANGELOG.md.

  • --since: (optional) Limit search for pull requests to the given ISO date (e.g. --since='2017-01-01').

  • --hide-reviewer: (optional) If set the reviewer will not be put into the CHANGELOG.md.

  • --interactive: (optional) If set every addition to the changelog has to be confirmed manually.

  • --link-commit: optional If set the commit hash in the output will be linked. Expects a template URL in the form of "http://example.com/:commit".

release

$ release NPM_PACKAGE_DIR [<newversion> | major | minor | patch | prerelease] [options]

Options

  • --help: Outputs help.

  • --push-build: (optional) Push the build in this ignored folder to the version branch.

  • --target-branch: (optional) (default: MAJOR.x) The branch where the release will be pushed to (e.g. --target-branch='master').

  • --build-command: (optional) Run the build to be able to include the new version from package.json (e.g --build-command='npm run build' ./"). Also adds and commits the build files if they are not ignored.

release-github

$ github-release ROOT_DIR BUILD_DIR

If you run this script the first time, it asks for a GitHub token, which will be stored in [ROOT_DIR]/.github-release. Here you can learn how how create your personal GitHub token.

IMPORTANT To prevent pushing your personal token to a remote you should add this file to your .gitignore.

Options

  • --help: Outputs help.

Requirements

  • Node 6.10 or higher is required.

    node --version  # 6.10 or higher
    
  • Git version 2.7 or higher is required for github release script.

    git --version  # 2.7 or higher
    
  • The repository needs to be checked out via SSH. Need help?

    git remote set-url origin git@github.com:SevenOneMedia/adtec-core.git
    
  • The release script uses the GitHub API and therefore requires an accesstoken. The script will prompt automatically for that token once and stores it in .git-release. Make sure the following permissions are granted when creating a new token on GitHub:

    [x] repo       Full control of private repositories
    

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from npms.io.