Home

Awesome

ChooseALicense.com aims to provide accurate, non-judgmental, and understandable information about popular open source licenses in order to help people make informed decisions about the projects they start, maintain, contribute to, and use.

We catalog select open source licenses with a Jekyll collection (in _licenses). The catalog is used to render ChooseALicense.com and is regularly vendored into Licensee, which GitHub uses to provide a license chooser and license detection, a licenses API, and to display license descriptions and metadata.

Goals

Run it on your machine

Managing Dependencies

It may be the case that your system doesn't have the required dependencies. You will need cmake and make installed on your computer.

For MacOS, use Homebrew to update your dependencies (install Homebrew from https://brew.sh/):

brew install make cmake

For Linux/Ubuntu, use the apt-get tool to install the dependencies:

sudo apt-get install make cmake

Installing and Running the tool

git clone https://github.com/github/choosealicense.com.git --recursive
cd choosealicense.com
./script/bootstrap
./script/server

Open http://localhost:4000 in your favorite browser.

If you encounter any issues with the above steps, please refer to the official Jekyll documentation and this guide on running Jekyll as a non-superuser for more detailed installation instructions.

Adding a license

For information on adding a license, see the CONTRIBUTING file.

License metadata

Licenses sit in the /_licenses folder. Each license has YAML front matter describing the license's properties. The body of the file contains the text of the license in plain text. The available metadata fields are:

Required fields

Optional fields

Auto-populated fields

The licenses on choosealicense.com are regularly imported to GitHub.com to be used as the list of licenses available when creating a repository. When we create a repository, we will replace certain strings in the license with variables from the repository. These can be used to create accurate copyright notices. The available variables are:

Fields

License properties

The license properties (rules) are stored as a bulleted list within the licenses YAML front matter. Each rule has a name e.g., include-copyright, a human-readable label, e.g., Copyright inclusion, and a description Include the original copyright with the code. To add a new rule, simply add it to _data/rules.yml and reference it in the appropriate license.

Rules

Permissions

Conditions

Limitations

License

The content of this project itself is licensed under the Creative Commons Attribution 3.0 Unported license, and the underlying source code used to format and display that content is licensed under the MIT license.