Please release me, let me go,
For I don't love you any more...
- What is it?
- What does it do?
- What doesn't it do?
- How do I install it?
- How do I use it?
- What license is it released under?
What is it?
An automated release script for npm, Rust and Python, built to work with the conventions used by my packages. If you're not me, there's a good chance it won't work for you.
What does it do?
Performs sanity checks, bumps the version number, updates the change log and creates a new git tag.
Specifically, it runs through each of the following steps in order:
If it looks like there is a
lintcommand inpackage.json, execute the commandnpm run lint. If thelintcommand fails, the release is aborted.If it looks like there is a
testcommand inpackage.json, execute the commandnpm t. If thetestcommand fails, the release is aborted.If it looks like there is a
minifycommand inpackage.json, execute the commandnpm run minify. If theminifycommand fails, the release is aborted.If
Cargo.tomlexists, execute the commandcargo t. If it fails, the release is aborted.Generate a list of commits made since the last tag.
Based on the commits from
5, bump the version string like so:If any commit message begins with
break:orbreaking:, increment the major version.Otherwise, if any commit message begins with
feat:orfeature:, increment the minor version.Otherwise, increment the patch number.
If
bower.jsonexists, write the freshly bumped version string tobower.json.If
component.jsonexists, write the freshly bumped version string tocomponent.json.If
package.jsonexists, write the freshly bumped version string topackage.json.If
package-lock.jsonexists, runnpm i.If
npm-shrinkwrap.jsonexists, runnpm shrinkwrap.If
pnpm-lock.yamlexists, runpnpm i.If
yarn.lockexists, runyarn.If
setup.pyexists, write the freshly bumped version string tosetup.py.If
Cargo.tomlexists, write the freshly bumped version string toCargo.toml.If
Cargo.lockexists, write the freshly bumped version string toCargo.lock.If a change log is detected, write a summary of the changes to the change log. It will recognise any of the following file names:
CHANGELOG.mdCHANGELOG.txtCHANGELOGCHANGES.mdCHANGES.txtCHANGESHISTORY.mdHISTORY.txtHISTORY
Commit all changes made by the preceding steps.
If
Cargo.tomlexists, execute the commandcargo package. If it fails, the release is aborted.Tag the release with the freshly bumped version string.
What doesn't it do?
git pushnpm publishpython setup.py sdist uploadtwine uploadcargo publish
How do I install it?
npm i -g please-release-meHow do I use it?
Just run the command release,
with no arguments:
releaseWhat license is it released under?
MIT.