Release manager for npm, bower, component, PyPI, git tags, and any plugin you can write
Want to see pretty graphs? Log in now!
npm install foundry
|59||downloads in the last month|
|Last Published By|
|Version||1.1.0 last updated a month ago|
|Keywords||release, manager, npm, bower, component, pypi, git, plugin, distribute, package, tag, semver|
|Dependencies (7)||commander, async, obj-extend, commander-completion, npm, glob, chalk|
Install the module globally via:
npm install -g foundry
foundry is not configured with any release libraries. Install a release library via
npm install -g foundry-release-bower # bower npm install -g foundry-release-component # component.io npm install -g foundry-release-git # git npm install -g foundry-release-npm # npm npm install -g foundry-release-pypi # PyPI
Details about existing plugins and their documentation can be found under the Plugins heading.
For example purposes, we will create/release on a local-only
# Install a `git` foundry-release plugin npm install -g foundry-release-git # Create git repo mkdir foundry-example cd foundry-example git init echo "Hello World" > README.md git add README.md git commit -m "Added documentation" # Run our release foundry release # [master c6ce921] Release 0.1.0 # See the release commit and tag git log --decorate --oneline # c6ce921 (HEAD, tag: 0.1.0, master) Release 0.1.0 # f0c25b3 Added documentation
foundry provides a command line interface for releasing.
$ foundry --help Usage: foundry [options] [command] Commands: release <version> Set version for package metadata and publish to registries plugins List installed `foundry` plugins completion Get potential completions for a command. Looks for `COMP_CWORD`, `COMP_LINE`, `COMP_POINT`. Options: -h, --help output usage information -V, --version output the version number
Example releases are:
foundry release 0.1.0 foundry release 0.3.0 foundry release 1.0.0
Commands that automatically increment semver are planned (e.g.
foundry release major,
foundry release minor). See https://github.com/twolfson/foundry/issues/16 for more information.
When a release occurs, the following steps are processed:
- Set version, update package metadata with the new version (e.g. update
- Commit, persist any changes to a version control system (e.g.
git commit && git tag)
- Register, if the package is new (semver ===
0.1.0), then register it to its repository (e.g.
python setup.py register)
- Publish, release changes to package's repostiroy manager (e.g.
foundry plugins contain the
foundry-plugin keyword and adhered to the
foundry release plugin specification:
Existing plugins are:
- foundry-release-bower, manages
- foundry-release-component, manages
- foundry-release-git, runs
git commitupon release
- foundry-release-npm, manages
npm publishupon release
- foundry-release-pypi, manages
setup.pyand registers/zips/gzips package upon release
- More plugins can be found at https://www.npmjs.org/browse/keyword/foundry-release
In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint via grunt and test via
As of Dec 07 2013, Todd Wolfson has released this repository and its contents to the public domain.
It has been released under the UNLICENSE.