Helpers for building, testing, staging, and releasing modules the way StrongLoop does.
Install from npmjs.org:
npm install -g strong-tools
- Runs the strongloop/npm package variant of git flow
- Writes changelog
- Updates version and runs
npm publish, but only if the current registry is NOT npmjs.org
- Requres Ruby 1.9+
- Updates version and runs
- lint, CLA boilerplate, copyright headers, version manipulation, others...
usage: slt-release [-hup] [VERSION] Options: h print this helpful message u update the origin with a git push p publish the package to npmjs.org If VERSION is specified it must be a valid SemVer version (`x.y.z`) or a valid version increment: major, minor, patch, premajor, preminor, or prepatch If VERSION is NOT specified, then the version field in package.json is used. What slt-release will do: - generate a CHANGES.md file - increment package version in package.json and bower.json (if present) - commit CHANGES.md, package.json, bower.json, and npm-shrinkwrap.json - tag commit with an annotated tag - merge tag back in to base branch - IF npm-shrinkwrap.json was not previously part of that branch then it is filtered out of the merge. If you want the shrinkwrap to be permanent then it must be commited before running slt-release. slt-release will abort if: - the tag matching the version already exists - the version has already been published - the version is not a valid SemVer string Typical usage, if you want to examine the results before updating github and npmjs.org: slt-release 1.2.3 If at this point you want to publish, follow the instructions slt-release gave in the output, which will be something along the lines of: git checkout v1.2.3 npm publish git checkout master git push origin master:master v1.2.3:v1.2.3 If you wish to abort or abandon the release, you will need to revert the changes and delete the tag: git checkout master git reset --hard origin/master git tag -d v1.2.3 If you are comfortable with having slt-release perform the `git push` and `npm publish` steps for you, you can use the -u and -p flags and slt-release will do them for you. slt-release -up 1.2.3
Generates a changelog,
CHANGES.md, for the current repo.
Usage: slt-changelog [options] -v, --version VERSION Version to describe as next version -s, --summary Print latest changes only, to stdout
slt-changelog to (re-)generate the
CHANGES.md for the entire history
of the repository.
slt-changelog -v x.y.z to update the changelog as part of the release
process for version
slt-changelog -v x.y.z -s to generate the commit message for an annotated
release tag to use when tagging release
For safety, this command refuses to run if
npm config get registry returns
the npmjs.org registry.
Compares the version in package.json with the latest version on the registry.
- If the package.json version is higher, does
- If the registry version is higher, adds
0.0.1to that version and publishes the module as that version.
Usage: slt <CMD> [PKG] Commands: lint Perform a simple linting of the given package.json cla Create or verify contribution guidelines license [F] Set package licensing to standard form F Form is auto-detected by default, it can be set explicitly to one of: --mit, --apache, --artistic copyright [F..] Insert/update copyright headers in JS source files. Uses git for copyright years and package.json for license reference. info Display metadata about package version Version manipulation semver Wrapper for semver command from semver package shrinkwrap Modify npm-shrinkwrap.json to remove all URLs help Print this usage guide Confirm license changes are acceptable with: git diff -M --cached -w --ignore-blank-lines
Usage: slt version <CMD> [ARGS] Commands: inc [PKG...] Increment version of specified packages inc [VER...] Increment versions, printing new versions to stdout set VER [PKG] Set version in PKG help Display this usage
Currently the only practical
slt version command is
set, which operates
npm version with the following major differences:
- does not commit any changes or create any tags
Some useful utilities for use in shell scripts, such as
Usage: slt info <CMD> [ARGS] Commands: name Print package name version Print package version released Print latest version on npmjs.org repo Print repo URL help Display this usage
Re-generate current license in standard form
Current license is auto-detected from contents of package.json and any existing LICENSE or LICENSE.md file.
cd path/to/your/project slt license
Set the license to a standard form
- slt license --mit/--artistic/--custom
Looks at all the .js files in the current git repo and adds/updates a standard copyright notice to the top. The exact wording of the copyright statement is based on the license declared in package.json, your git author details, and the first and last commits made to a file (years only).