1
0
mirror of https://github.com/github/choosealicense.com synced 2024-11-12 14:38:53 +01:00
Go to file
Mike Linksvayer 05070e5536
Merge pull request #1243 from github/workflow-permissions
limit workflow permissions
2024-09-03 09:21:16 -07:00
_data spel 2020-07-26 12:11:00 -07:00
_includes Merge branch 'gh-pages' into rmielt9 2023-08-31 16:32:12 -07:00
_layouts rm unneeded trailing whitespace from various files 2019-12-25 10:58:01 -08:00
_licenses Use HTTPS link in MPL 2024-03-28 21:29:27 -07:00
.github/workflows limit workflow permissions 2024-09-03 09:18:03 -07:00
assets Improve readability of sticky header in appendix 2024-08-13 11:38:06 +02:00
license-list-XML@b7470fcd38 license-list-XML as submodule and further monkeypatch licensee to use it 2021-02-26 13:47:53 -08:00
script rubocop ruby 3 things 2024-08-30 19:07:34 +00:00
spec rubocop ruby 3 things 2024-08-30 19:07:34 +00:00
_config.yml license-list-XML as submodule and further monkeypatch licensee to use it 2021-02-26 13:47:53 -08:00
.bowerrc move bower to assets/vendor so we can version the swf 2014-01-31 20:11:03 -05:00
.gitattributes Clean up .gitignore and .gitattributes. 2013-12-09 19:56:23 +02:00
.gitignore rm selectivizr from .gitignore 2023-08-31 16:34:47 -07:00
.gitmodules license-list-XML as submodule and further monkeypatch licensee to use it 2021-02-26 13:47:53 -08:00
.rubocop.yml update ruby version in tests to match gh pages version 2024-08-30 18:51:48 +00:00
404.md 404 screen 2022-01-22 23:38:19 +00:00
about.md edit edits 2019-08-26 16:04:07 -07:00
appendix.md Add z-index value 2024-08-30 09:59:05 +02:00
bower.json Merge branch 'gh-pages' into rmielt9 2023-08-31 16:32:12 -07:00
CNAME revert 48261c1c77 2013-07-25 13:51:32 -04:00
CODE_OF_CONDUCT.md Add Code of Conduct 2016-02-20 08:46:11 -08:00
community.md forgot precedence of `? 2023-08-28 21:47:27 -07:00
CONTRIBUTING.md Update SPDX request URL 2024-02-12 11:05:21 +02:00
favicon.ico initial work on new design 2012-09-12 15:20:27 -04:00
Gemfile rubocop 2021-04-05 00:17:33 -07:00
index.html Some wordiness reduction and grammar fixes 2019-08-26 16:43:35 -04:00
LICENSE.md Update year range 2023-06-20 01:16:41 -04:00
licenses.html Harmonize quotation marks and apostrophes 2020-10-13 17:56:36 +01:00
no-permission.md Partially revert "Harmonize quotation marks and apostrophes" 2020-11-14 14:43:23 -08:00
non-software.md Fix typo in non-software licenses page 2022-07-19 14:22:25 +01:00
Rakefile Ignore testing of opensource.org which fails only in CI 2022-09-05 13:54:12 -07:00
README.md add --recursive to getting started clone instructions 2023-08-25 18:22:14 -07:00
robots.txt Remove layout: nil. 2014-12-20 13:55:53 +02:00
terms-of-service.md Fix a typo in the terms of service 2020-10-13 17:59:43 +01:00

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

  • Be accurate, non-judgmental, and understandable. Our goal is to help you find a license that meets your goals.
  • The homepage should have just enough to help most folks make a decision about what license to use for a project they contribute to.
  • For the rest, the site will contain additional information about licenses common to specific communities and situations.
  • Collaborate with and reinforce other licensing best practices and standards projects.
  • Not comprehensive. Seems like an odd goal, but there are a bajillion licenses out there. We're going to have to filter that down to a small list of those that matter.

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

  • title - The license full name specified by https://spdx.org/licenses/
  • spdx-id - Short identifier specified by https://spdx.org/licenses/
  • description - A human-readable description of the license
  • how - Instructions on how to implement the license
  • using - A map of 3 notable projects using the license with straightforward LICENSE files which serve as examples newcomers can follow and that can be detected by licensee in the form of project_name: license_file_url
  • permissions - Bulleted list of permission rules
  • conditions - Bulleted list of condition rules
  • limitations - Bulleted list of limitation rules

Optional fields

  • featured - Whether the license should be featured on the main page (defaults to false)
  • hidden - Whether the license is neither popular nor fills out the spectrum of licenses from strongly conditional to unconditional (defaults to true)
  • nickname - Customary short name if applicable (e.g, GPLv3)
  • note - Additional information about the licenses
  • redirect_from - Relative path(s) to redirect to the license from, to prevent breaking old URLs

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

  • fullname - The full name or username of the repository owner
  • login - The repository owner's username
  • email - The repository owner's primary email address
  • project - The repository name
  • description - The description of the repository
  • year - The current year
  • projecturl - The repository URL or other project website

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

  • commercial-use - This software and derivatives may be used for commercial purposes.
  • modifications - This software may be modified.
  • distribution - This software may be distributed.
  • private-use - This software may be used and modified in private.
  • patent-use - This license provides an express grant of patent rights from contributors.

Conditions

  • include-copyright - A copy of the license and copyright notice must be included with the software.
  • include-copyright--source - A copy of the license and copyright notice must be included with the software in source form, but is not required for binaries.
  • document-changes - Changes made to the code must be documented.
  • disclose-source - Source code must be made available when the software is distributed.
  • network-use-disclose - Users who interact with the software via network are given the right to receive a copy of the source code.
  • same-license - Modifications must be released under the same license when distributing the software. In some cases a similar or related license may be used.
  • same-license--file - Modifications of existing files must be released under the same license when distributing the software. In some cases a similar or related license may be used.
  • same-license--library - Modifications must be released under the same license when distributing the software. In some cases a similar or related license may be used, or this condition may not apply to works that use the software as a library.

Limitations

  • trademark-use - This license explicitly states that it does NOT grant trademark rights, even though licenses without such a statement probably do not grant any implicit trademark rights.
  • liability - This license includes a limitation of liability.
  • patent-use - This license explicitly states that it does NOT grant any rights in the patents of contributors.
  • warranty - The license explicitly states that it does NOT provide any warranty.

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.