wisdom

configurable publish releases to github and npm

Usage no npm install needed!

<script type="module">
  import wisdom from 'https://cdn.skypack.dev/wisdom';
</script>

README

Wisdom License NPM version Build Status

Tool for publishing releases to github and npm according to Semantic Versionin.

One command do next things:

  • set env variable $wisdom_version and $WISDOM_VERSION with future version
  • run command from scripts.wisdom of package.json (if exist);
  • run command from scripts.wisdom:type of package.json (if exist);
  • changelog;
  • version in package.json;
  • tag;
  • release on github;
  • push to github;
  • publish to npm;
  • run command from scripts.wisdom:done of package.json (if exist);

package.json should contan next properties,

when publish enabled:

{
    "publishConfig": {
        "access": "public"
    }
}

when releases enabled:

repository field should be set:

{
    "repository": {
        "type": "git",
        "url": "git://github.com/coderaiser/wisdom.git"
    }
}

Before executing wisdom, wisdom:type and wisdom:done scripts will be expanded via redrun which will speed things up.

Here is list of commands that should be executed to get same result:

changelog {{ version }}
version {{ version }}
git add --all
git commit -m "feature(package) v{{ version }}"
git push origin {{ branch }}
git tag v{{ version }}
git push origin v{{ version }}
grizzly -tn "token from url" \
-r grizzly -o {{ owner }} -t {{ version }} \
-n "{{ repo }} {{ version }}" -b "changelog"
npm publish

Install

npm i wisdom -g

How to use?

$ wisdom
Usage: wisdom [patch|minor|major]
Options:
-h, --help     : display this help and exit
-v, --version  : output version information and exit

Configuration

When you need configure wisdom you could declare them in package.json (with defaults set):

{
    "changelog": true,
    "commitType": "paren|colon",
    "tag": true,
    "release": true,
    "releaseTriesCount": 10,
    "private": false,
    "branch": "master",
    "scripts": {
        "wisdom": "echo 'do something before publish'",
        "wisdom:type": "echo 'do something before publish and add --patch, --minor or --major argument'",
        "wisdom:done": "echo 'do something after publish'"
    }
}

License

MIT