diff --git a/README.md b/README.md index 740b7d9..6db8121 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,7 @@ - [Usage](#usage) - [Speed Optimizations](#speed-optimizations) - [Warnings](#warnings) +- [npm releases](#npmreleases) - [Authors](#authors) - [License](#license) - [API reference](API.md) @@ -120,6 +121,34 @@ An example BigchainDB Server-generated keypair (encoded in `base58`): Your package should be able to take in the decoded version of the **private** key and return you the same **public** key (once you encode that to `base58`). +## npm releases + +For a new **patch release**, execute on the machine where you're logged into your npm account: + +```bash +npm run release +``` + +Command is powered by [`release-it`](https://github.com/webpro/release-it) package, defined in the `package.json`. + +That's what the command does without any user interaction: + +- create release commit by updating version in `package.json` +- create tag for that release commit +- push commit & tag +- create a new release on GitHub, with change log auto-generated from commit messages +- publish to npm as a new release + +If you want to create a **minor** or **major release**, use these commands: + +```bash +npm run release-minor +``` + +```bash +npm run release-major +``` + ## Authors Inspired by [`js-bigchaindb-quickstart`](https://github.com/sohkai/js-bigchaindb-quickstart) of @sohkhai [thanks] diff --git a/package.json b/package.json index f684001..ba9ff01 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,10 @@ "build:cjs": "cross-env BABEL_ENV=cjs babel ./src -d dist/node", "build:dist": "cross-env NODE_ENV=production webpack -p", "clean": "rimraf dist/bundle dist/node", - "test": "echo \"Error: no test specified AWWWW YEAHHH\" && exit 1" + "test": "echo \"Error: no test specified AWWWW YEAHHH\" && exit 1", + "release": "./node_modules/release-it/bin/release.js --src.tagName='v%s' --github.release --npm.publish --non-interactive", + "release-minor": "./node_modules/release-it/bin/release.js minor --src.tagName='v%s' --github.release --npm.publish --non-interactive", + "release-major": "./node_modules/release-it/bin/release.js major --src.tagName='v%s' --github.release --npm.publish --non-interactive" }, "devDependencies": { "babel-cli": "^6.22.2", @@ -37,6 +40,7 @@ "eslint": "^3.14.1", "eslint-config-ascribe": "^3.0.1", "eslint-plugin-import": "^2.2.0", + "release-it": "^2.7.3", "rimraf": "^2.5.4", "webpack": "^2.2.1" },