README.md in license_finder-2.0.4 vs README.md in license_finder-2.1.0.rc1

- old
+ new

@@ -25,14 +25,30 @@ * Java (via `maven`) * Java (via `gradle`) * Erlang (via `rebar`) * Objective-C (+ CocoaPods) +* Nuget (without license discovery) +* Godep +* Go workspace (via a `.envrc` file) ## Installation +License Finder requires Ruby 1.9.3 or greater to run. If you have an older +version of Ruby installed, you can update via Homebrew: + +```sh +$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" +``` + +then: + +```sh +$ brew install ruby +``` + The easiest way to use `license_finder` is to install it as a command line tool, like brew, awk, gem or bundler: ```sh $ gem install license_finder @@ -50,12 +66,14 @@ problem, see [Excluding Dependencies](#excluding-dependencies). ## Usage -The first time you run `license_finder` it will output a report of all your project's packages. +Make sure your dependencies are installed (with your package manager's install command: `bundle install`, `npm install`, etc.) +The first time you run `license_finder` it will list all your project's packages. + ```sh $ license_finder ``` Or, if you installed with bundler: @@ -95,10 +113,11 @@ * `pom.xml` (for `maven`) * `build.gradle` (for `gradle`) * `bower.json` (for `bower`) * `Podfile` (for CocoaPods) * `rebar.config` (for `rebar`) +* `packages/` directory (for `Nuget`) ### Continuous Integration `license_finder` will return a non-zero exit status if there are unapproved @@ -200,11 +219,14 @@ The HTML report generated by `license_finder report --format html` summarizes all of your project's dependencies and includes information about which need to be approved. The project name at the top of the report can be set with `license_finder project_name add`. +See [CONTRIBUTING.md](https://github.com/pivotal/LicenseFinder/blob/master/CONTRIBUTING.md#adding-reports) +for advice about adding and customizing reports. + ## Manual Intervention ### Setting Licenses When `license_finder` reports that a dependency's license is 'unknown', @@ -242,22 +264,31 @@ ### Excluding Dependencies Sometimes a project will have development or test dependencies which you don't want to track. You can exclude theses dependencies by running `license_finder ignored_groups`. (Currently this only works for packages -managed by Bundler.) +managed by Bundler, NPM, and Nuget.) On rare occasions a package manager will report an individual dependency that you want to exclude from all reports, even though it is approved. You can exclude an individual dependency by running `license_finder ignored_dependencies`. Think carefully before adding dependencies to this list. A likely item to exclude is `bundler`, since it is a common dependency whose version changes from machine to machine. Adding it to the `ignored_dependencies` would prevent it (and its oscillating versions) from appearing in reports. +### Blacklisting Licenses +Some projects will have a list of licenses that cannot be used. You can add +these licenses to the blacklist `license_finder blacklist add`. Any dependency +that has exclusively blacklisted licenses will always appear in the action +items, even if someone attempts to manually approve or whitelist it. However, +if a dependency has even one license outside of the blacklist, it can still be +manually approved or whitelisted. + + ## Configuration Be default, `license_finder` expects the decisions file to be stored at `doc/dependency_decisions.yml`. All commands can be passed `--decisions_file` to override this location. @@ -289,14 +320,15 @@ rebar_deps_dir: './rebar_deps' ``` ### Gradle Projects -You need to install the license gradle plugin: +`license_finder` supports both Gradle 1.x and Gradle 2.x. You need to have installed +the license-gradle-plugin in your project: [https://github.com/hierynomus/license-gradle-plugin](https://github.com/hierynomus/license-gradle-plugin) -By default, `license_finder` will report on gradle's "runtime" dependencies. If +By default, `license_finder` will report on Gradle's "runtime" dependencies. If you want to generate a report for some other dependency configuration (e.g. Android projects will sometimes specify their meaningful dependencies in the "compile" group), you can specify it in your project's `build.gradle`: ``` @@ -304,9 +336,14 @@ downloadLicenses { dependencyConfiguration "compile" } ``` + + +### Maven Projects + +`license_finder` supports Maven. ## Requirements `license_finder` requires ruby >= 1.9, or jruby.