0.5.0 • Published 3 years ago

raise-version v0.5.0

Weekly downloads
21
License
MIT
Repository
github
Last release
3 years ago

node-raise-version

NPM version CircleCI codecov Downloads/month License

Update and commit package version for Gitflow workflow.

Why

This package makes bumping package version according to semantic versioning easier when using Gitflow workflow just by running a single CLI command. It does the following things automatically:

  • Bump version in package.json in development branch (say, make a patch update from 0.3.2 to 0.4.0).
  • Add release header with updated version and date in text changelog file:

    ## 0.4.0 (2020-12-14)
  • Commit changes in package.json and text changelog file with a message that looks like:

    Raise version: 0.4.0
  • Merge changes to release branch and tag them as 0.4.0.

  • Push local development branch, release branch and new tags to remote repository.

All the things mentioned above are configurable. The package can also be used for centralized workflow.

Before

npm.io

After

npm.io

npm.io

Installation

npm install raise-version --save-dev

or

yarn add raise-version --dev

CLI usage

  1. Initialize raise-version from the root directory of your project (optional — if missed then default configuration will be used):

    • if installed globally:

      raise-version init
         
    • if installed locally:

      npx raise-version init

    .raiseverrc configuration file will be created.

    raisever is an alias for raise-version CLI command.

  2. Adjust configuration parameters in .raiseverrc, these are default values:

    {
      "changelog": {
        "enabled": true,
        "path": "CHANGELOG.md",
        "encoding": "utf-8",
        "prefix": "##",
        "bullet": "-"
      },
      "git": {
        "enabled": true,
        "release": "master",
        "development": "develop",
        "remote": "origin",
        "commit": true,
        "merge": true,
        "all": false,
        "tag": true,
        "push": false
      }
    }

    They correspond to options of console command:

    • -l, --changelog Update version in changelog file boolean
    • -f, --changelog-path Path to changelog file string
    • -e, --changelog-encoding Encoding of changelog file string
    • -h, --changelog-prefix Prefix for version header in changelog file string
    • -b, --changelog-bullet Bullet character for changes' item in changelog file string
    • -g, --git Commit updates to git boolean
    • -r, --git-release Git release branch string
    • -d, --git-development Git development branch string
    • -o, --git-remote Git remote repository name string
    • -c, --git-commit Commit changes to development branch boolean
    • -m, --git-merge Merge changes to release branch boolean
    • -a, --git-all Commit all changes boolean
    • -t, --git-tag Create git tag boolean
    • -p, --git-push Push git changes to remote repository boolean

    More CLI options:

    -s, --skip-update Don't update package.json file

    In order to use raise-version with centralized workflow just set a value of development branch equal to release branch (master). git.merge parameter and --git-merge CLI option make no sense in this case.

  3. Make changes to your source code, describe them in changelog file (if used) and raise a version:

    raise-version [release] [options]
    • release — semver part to update, one of the following: major, minor, patch;
    • options — CLI options overwriting configuration from .raiseverrc.

Examples

Basic usage examples used below considers that .raiseverrc has default configuration (or not created):

  • Update patch version in package.json, make new version and release date heading in CHANGELOG.md prepended with ## (list items of changes are already prepended by -):

    raise-version patch

    Before

    package.json

    {
      "name": "my-package",
      "vesion": "1.0.0"
    }

    CHANGELOG.md

    # Changelog
    
    - New feature is implemented.
    - Some bugs are fixed.
    
    ## 1.0.0 (2020-12-07)
    
    - Initial release.

    After

    package.json

    {
      "name": "my-package",
      "vesion": "1.0.1"
    }

    CHANGELOG.md

    # Changelog
    
    ## 1.0.1 (2020-12-10)
    
    - New feature is implemented.
    - Some bugs are fixed.
    
    ## 1.0.0 (2020-12-07)
    
    - Initial release.
  1. The same as previous but also push commits to remote repository:

    raise-version patch --git-push
  2. Don't update version in package.json and CHANGELOG.md, don't commit but merge from development branch to release branch and push changes to remote repository:

    raise-version --skip-update --changelog=false --git-commit=false --git-push
  3. Don't update, don't commit and don't merge anything, just push to remote repository only:

    raise-version --skip-update --changelog=false --git-commit=false --git-merge=false --git-push

Programmatic usage

const raiseVersion = require('raise-version');
raiseVersion({
  release: 'patch',
  git: {
    push: true
  }
}).catch(function(e) {
  console.error('Something went wrong');
});
0.5.0

3 years ago

0.4.0

3 years ago

0.3.0

4 years ago

0.2.1

4 years ago

0.2.0

4 years ago

0.3.2

4 years ago

0.3.1

4 years ago

0.1.0

4 years ago