Preparing for LicenseFinder 1.0

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 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:

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.