I worked with Ian Lesperance and Paul Meskers this week preparing LicenseFinder for its 1.0.0 release. In addition to performing some much needed refactoring on the codebase, we also added the following new features:
- Support for more license types (we now detect Apache2, BSD, New BSD, Simplified BSD, MIT, LGPL, ISC, Ruby, and GPLv2).
- A new HTML report with tons of useful information for your non-technical product owners (including links to license text, color coding of approved v. unapproved dependencies, listing the parent/children dependencies of gems).
- A simplified text report (also suitable for non-tech product owners)
- A simplified command-line interface (there’s now just a single command
license_finder, though we still offer an equivalent rake task (
rake license_finder) if you want to use it for a CI build)
- A completely rewritten README with clear usage instructions
- An cucumber integration test suite that outlines all of the license finder features
- Continuous integration via travis-ci.org
While developing the integration test suite, we had the need to shell out and run
bundle outside the context of the license finder bundle. It turns out that in order to do this, you have to wrap your system calls inside a block passed to
Bundler.with_clean_env do `cd somewhere && bundle` end
If you ever find yourself bootstrapping applications from a ruby script that you need to
bundle, keep this little-documented bundler feature in mind.