1
0
mirror of https://github.com/github/choosealicense.com synced 2024-12-22 12:50:24 +01:00

Merge pull request #386 from github/spectrum

replace /licenses listings with spectrum
This commit is contained in:
Mike Linksvayer 2016-04-09 08:37:21 -07:00
commit c3e53e968d
27 changed files with 17 additions and 206 deletions

View File

@ -51,12 +51,8 @@ Licenses sit in the `/_licenses` folder. Each license has YAML front matter desc
* `note` - Additional information about the licenses * `note` - Additional information about the licenses
* `using` - A list of notable projects using the license in the form of `project_name: "url"` * `using` - A list of notable projects using the license in the form of `project_name: "url"`
* `hidden` - Whether the license is hidden from the license list (defaults to true)
* `redirect_from` - Relative path(s) to redirect to the license from, to prevent breaking old URLs * `redirect_from` - Relative path(s) to redirect to the license from, to prevent breaking old URLs
* `featured` - Whether the license should be featured on the main page (defaults to false)
* `nickname` - A shorter, human-readable license name where the SPDX license name (`title` above) is long * `nickname` - A shorter, human-readable license name where the SPDX license name (`title` above) is long
* `variant` - Whether the license is a variant of a family of licenses (defaults to false)
* `family` - If part of a license family, the name of the license family (e.g., `GPL`)
### Auto-populated fields ### Auto-populated fields

View File

@ -39,26 +39,10 @@
description: 'A list of notable projects using the license in the form of `project_name: "url"`' description: 'A list of notable projects using the license in the form of `project_name: "url"`'
required: false required: false
- name: hidden
description: Whether the license is hidden from the license list (defaults to true)
required: false
- name: redirect_from - name: redirect_from
description: Relative path(s) to redirect to the license from, to prevent breaking old URLs description: Relative path(s) to redirect to the license from, to prevent breaking old URLs
required: false required: false
- name: featured
description: Whether the license should be featured on the main page (defaults to false)
required: false
- name: nickname - name: nickname
description: A shorter, human-readable license name where the SPDX license name (`title` above) is long description: A shorter, human-readable license name where the SPDX license name (`title` above) is long
required: false required: false
- name: variant
description: Whether the license is a variant of a family of licenses (defaults to false)
required: false
- name: family
description: If part of a license family, the name of the license family (e.g., `GPL`)
required: false

View File

@ -1,16 +1,15 @@
<div class="license-family clearfix"> {% assign id = "/licenses/" | append: include.license-id %}
{% assign licenses = site.licenses | where:"id", id %}
{% for license in licenses %}
<div class="license-family clearfix" id="{{ include.license-id | slugify }}">
<div class="license-family-heading"> <div class="license-family-heading">
<h3 class="license-family-name"> <h3 class="license-family-name">
<a href="{{ license.url }}"> <a href="{{ license.url }}">
{% if license.family %}
{{ license.family }}
{% else %}
{% if license.nickname %} {% if license.nickname %}
{{ license.nickname }} {{ license.nickname }}
{% else %} {% else %}
{{ license.title }} {{ license.title }}
{% endif %} {% endif %}
{% endif %}
</a> </a>
</h3> </h3>
@ -18,32 +17,6 @@
</div> </div>
<div class="license-details"> <div class="license-details">
<div class="license-variations js-license-variations">
<!-- always show this div, even w/o variations, for proper spacing -->
{% if license.family %}
<ul class="nav-pills js-nav-pills">
{% assign variations = site.licenses | where:"hidden",false | where:"family",license.family %}
{% for variation in variations %}
<li{% if license.id == variation.id %} class="active"{% endif %}><a href="#{{ variation.id | remove: '/licenses/' | slugify }}" data-selected-tab="variation-{{ variation.id | remove: '/licenses/' | slugify }}">
{% if variation.nickname != nil %}
{{ variation.nickname }}
{% else %}
{{ variation.title }}
{% endif %}
</a></li>
{% endfor %}
</ul>
{% endif %}
</div>
{% if license.family %}
{% assign variations = site.licenses | where:"hidden",false | where:"family",license.family %}
{% else %}
{% assign variations = site.licenses | where:"title",license.title %}
{% endif %}
{% for variation in variations %}
<div {% if variation.id %}id="{{ variation.id | remove: '/licenses/' | slugify }}" {% endif %}class="variation-tab {% if variation.id %}variation-{{ variation.id | remove: '/licenses/' | slugify }}{% endif %} js-variation-tab{% if license.id == variation.id %} active{% endif %}">
<table class="license-rules"> <table class="license-rules">
<tr> <tr>
{% assign types = "permissions|conditions|limitations" | split: "|" %} {% assign types = "permissions|conditions|limitations" | split: "|" %}
@ -58,7 +31,7 @@
{% assign rules = site.data.rules[type] | sort: "label" %} {% assign rules = site.data.rules[type] | sort: "label" %}
{% for rule_obj in rules %} {% for rule_obj in rules %}
{% assign req = rule_obj.tag %} {% assign req = rule_obj.tag %}
{% if variation[type] contains req %} {% if license[type] contains req %}
<li class="{{ req }}"> <li class="{{ req }}">
<span class="license-sprite"></span> <span class="license-sprite"></span>
{{ rule_obj.label }} {{ rule_obj.label }}
@ -70,8 +43,7 @@
{% endfor %} {% endfor %}
</tr> </tr>
</table> </table>
<p class="small"><a href="{{ variation.url }}">View full {{ variation.title }} license »</a></p> <p class="small"><a href="{{ license.url }}">View full {{ license.title }} »</a></p>
</div>
{% endfor %}
</div> </div>
</div> </div>
{% endfor %}

View File

@ -2,8 +2,6 @@
title: GNU Affero General Public License v3.0 title: GNU Affero General Public License v3.0
nickname: GNU AGPLv3 nickname: GNU AGPLv3
redirect_from: /licenses/agpl/ redirect_from: /licenses/agpl/
family: GNU GPL
variant: true
source: http://www.gnu.org/licenses/agpl-3.0.txt source: http://www.gnu.org/licenses/agpl-3.0.txt
description: The GNU GPL family of licenses is the most widely used free software license and has a strong copyleft requirement. When distributing derived works, the source code of the work must be made available under the same license. GNU AGPLv3 is distinguished from GNU GPLv3 in that hosted services using the code are considered distribution and trigger the copyleft requirements. description: The GNU GPL family of licenses is the most widely used free software license and has a strong copyleft requirement. When distributing derived works, the source code of the work must be made available under the same license. GNU AGPLv3 is distinguished from GNU GPLv3 in that hosted services using the code are considered distribution and trigger the copyleft requirements.
@ -28,8 +26,6 @@ permissions:
limitations: limitations:
- no-liability - no-liability
hidden: false
--- ---
GNU AFFERO GENERAL PUBLIC LICENSE GNU AFFERO GENERAL PUBLIC LICENSE

View File

@ -1,7 +1,6 @@
--- ---
title: Apache License 2.0 title: Apache License 2.0
redirect_from: /licenses/apache/ redirect_from: /licenses/apache/
featured: true
source: http://www.apache.org/licenses/LICENSE-2.0.html source: http://www.apache.org/licenses/LICENSE-2.0.html
description: A permissive license that also provides an express grant of patent rights from contributors to users. description: A permissive license that also provides an express grant of patent rights from contributors to users.
@ -29,8 +28,6 @@ permissions:
limitations: limitations:
- trademark-use - trademark-use
- no-liability - no-liability
hidden: false
--- ---
Apache License Apache License

View File

@ -21,8 +21,6 @@ permissions:
limitations: limitations:
- no-liability - no-liability
- trademark-use - trademark-use
hidden: false
--- ---
The Artistic License 2.0 The Artistic License 2.0

View File

@ -2,8 +2,6 @@
title: BSD 2-clause "Simplified" License title: BSD 2-clause "Simplified" License
nickname: BSD 2-Clause nickname: BSD 2-Clause
redirect_from: /licenses/bsd/ redirect_from: /licenses/bsd/
family: BSD
variant: true
source: http://opensource.org/licenses/BSD-2-Clause source: http://opensource.org/licenses/BSD-2-Clause
description: A permissive license that comes in two variants, the <a href="/licenses/bsd-2-clause/">BSD 2-Clause</a> and <a href="/licenses/bsd-3-clause/">BSD 3-Clause</a>. Both have very minute differences to the MIT license. description: A permissive license that comes in two variants, the <a href="/licenses/bsd-2-clause/">BSD 2-Clause</a> and <a href="/licenses/bsd-3-clause/">BSD 3-Clause</a>. Both have very minute differences to the MIT license.
@ -21,8 +19,6 @@ permissions:
limitations: limitations:
- no-liability - no-liability
hidden: false
--- ---
BSD 2-Clause License BSD 2-Clause License

View File

@ -1,7 +1,5 @@
--- ---
title: BSD 3-clause Clear License title: BSD 3-clause Clear License
family: BSD
variant: true
description: A variant of the <a href="/licenses/bsd-3-clause/">BSD 3-Clause License</a> that explicitly does not grant any patent rights. description: A variant of the <a href="/licenses/bsd-3-clause/">BSD 3-Clause License</a> that explicitly does not grant any patent rights.
@ -21,7 +19,6 @@ permissions:
limitations: limitations:
- no-liability - no-liability
- patent-use - patent-use
--- ---
The Clear BSD License The Clear BSD License

View File

@ -1,8 +1,6 @@
--- ---
title: BSD 3-clause "New" or "Revised" License title: BSD 3-clause "New" or "Revised" License
nickname: BSD 3-Clause nickname: BSD 3-Clause
family: BSD
variant: true
source: http://opensource.org/licenses/BSD-3-Clause source: http://opensource.org/licenses/BSD-3-Clause
description: A permissive license similar to the <a href="/licenses/bsd-2-clause/">BSD 2-Clause License</a>, but with a 3rd clause that prohibits others from using the name of the project or its contributors to promote derived products without written consent. description: A permissive license similar to the <a href="/licenses/bsd-2-clause/">BSD 2-Clause License</a>, but with a 3rd clause that prohibits others from using the name of the project or its contributors to promote derived products without written consent.
@ -20,8 +18,6 @@ permissions:
limitations: limitations:
- no-liability - no-liability
hidden: false
--- ---
BSD 3-Clause License BSD 3-Clause License

View File

@ -2,8 +2,6 @@
title: Creative Commons Zero v1.0 Universal title: Creative Commons Zero v1.0 Universal
nickname: CC0 1.0 Universal nickname: CC0 1.0 Universal
redirect_from: /licenses/cc0/ redirect_from: /licenses/cc0/
family: Public Domain
variant: true
source: http://creativecommons.org/publicdomain/zero/1.0/ source: http://creativecommons.org/publicdomain/zero/1.0/
description: The <a href="http://creativecommons.org/publicdomain/zero/1.0/">Creative Commons CC0 Public Domain Dedication</a> waives copyright interest in any a work you've created and dedicates it to the world-wide public domain. Use CC0 to opt out of copyright entirely and ensure your work has the widest reach. As with the Unlicense and typical software licenses, CC0 disclaims warranties. CC0 is very similar to the Unlicense. description: The <a href="http://creativecommons.org/publicdomain/zero/1.0/">Creative Commons CC0 Public Domain Dedication</a> waives copyright interest in any a work you've created and dedicates it to the world-wide public domain. Use CC0 to opt out of copyright entirely and ensure your work has the widest reach. As with the Unlicense and typical software licenses, CC0 disclaims warranties. CC0 is very similar to the Unlicense.
@ -24,8 +22,6 @@ limitations:
- no-liability - no-liability
- trademark-use - trademark-use
- patent-use - patent-use
hidden: false
--- ---
CC0 1.0 Universal CC0 1.0 Universal

View File

@ -26,8 +26,6 @@ permissions:
limitations: limitations:
- no-liability - no-liability
hidden: false
--- ---
Eclipse Public License - v 1.0 Eclipse Public License - v 1.0

View File

@ -2,8 +2,6 @@
title: European Union Public License 1.1 title: European Union Public License 1.1
nickname: EUPL-1.1 nickname: EUPL-1.1
redirect_from: /licenses/eupl-v1.1/ redirect_from: /licenses/eupl-v1.1/
family: EUPL
featured: false
source: https://joinup.ec.europa.eu/community/eupl/og_page/european-union-public-licence-eupl-v11 source: https://joinup.ec.europa.eu/community/eupl/og_page/european-union-public-licence-eupl-v11
description: The “European Union Public Licence” (EUPL) is a copyleft free/open source software license created on the initiative of and approved by the European Commission in 22 official languages of the European Union. description: The “European Union Public Licence” (EUPL) is a copyleft free/open source software license created on the initiative of and approved by the European Commission in 22 official languages of the European Union.
@ -29,7 +27,6 @@ permissions:
limitations: limitations:
- no-liability - no-liability
- trademark-use - trademark-use
--- ---
European Union Public Licence European Union Public Licence

View File

@ -2,8 +2,6 @@
title: GNU General Public License v2.0 title: GNU General Public License v2.0
nickname: GNU GPLv2 nickname: GNU GPLv2
redirect_from: /licenses/gpl-v2/ redirect_from: /licenses/gpl-v2/
family: GNU GPL
variant: true
source: http://www.gnu.org/licenses/gpl-2.0.txt source: http://www.gnu.org/licenses/gpl-2.0.txt
description: The GNU GPL is the most widely used free software license and has a strong copyleft requirement. When distributing derived works, the source code of the work must be made available under the same license. There are multiple variants of the GNU GPL, each with different requirements. description: The GNU GPL is the most widely used free software license and has a strong copyleft requirement. When distributing derived works, the source code of the work must be made available under the same license. There are multiple variants of the GNU GPL, each with different requirements.
@ -31,8 +29,6 @@ permissions:
limitations: limitations:
- no-liability - no-liability
hidden: false
--- ---
GNU GENERAL PUBLIC LICENSE GNU GENERAL PUBLIC LICENSE

View File

@ -2,8 +2,6 @@
title: GNU General Public License v3.0 title: GNU General Public License v3.0
nickname: GNU GPLv3 nickname: GNU GPLv3
redirect_from: /licenses/gpl-v3/ redirect_from: /licenses/gpl-v3/
family: GNU GPL
featured: true
source: http://www.gnu.org/licenses/gpl-3.0.txt source: http://www.gnu.org/licenses/gpl-3.0.txt
description: The GNU GPL is the most widely used free software license and has a strong copyleft requirement. When distributing derived works, the source code of the work must be made available under the same license. description: The GNU GPL is the most widely used free software license and has a strong copyleft requirement. When distributing derived works, the source code of the work must be made available under the same license.
@ -32,8 +30,6 @@ permissions:
limitations: limitations:
- no-liability - no-liability
hidden: false
--- ---
GNU GENERAL PUBLIC LICENSE GNU GENERAL PUBLIC LICENSE

View File

@ -1,6 +1,5 @@
--- ---
title: ISC License title: ISC License
family: BSD
source: http://opensource.org/licenses/isc-license source: http://opensource.org/licenses/isc-license
description: A permissive license lets people do anything with your code with proper attribution and without warranty. The ISC license is functionally equivalent to the <a href="/licenses/bsd-2-clause/">BSD 2-Clause</a> and <a href="/licenses/mit/">MIT</a> licenses, removing some language that is no longer necessary. description: A permissive license lets people do anything with your code with proper attribution and without warranty. The ISC license is functionally equivalent to the <a href="/licenses/bsd-2-clause/">BSD 2-Clause</a> and <a href="/licenses/mit/">MIT</a> licenses, removing some language that is no longer necessary.
@ -23,8 +22,6 @@ permissions:
limitations: limitations:
- no-liability - no-liability
hidden: false
--- ---
ISC License ISC License

View File

@ -2,8 +2,6 @@
title: GNU Lesser General Public License v2.1 title: GNU Lesser General Public License v2.1
nickname: GNU LGPLv2.1 nickname: GNU LGPLv2.1
redirect_from: /licenses/lgpl-v2.1/ redirect_from: /licenses/lgpl-v2.1/
family: GNU LGPL
variant: true
source: http://www.gnu.org/licenses/lgpl-2.1.txt source: http://www.gnu.org/licenses/lgpl-2.1.txt
description: Primarily used for software libraries, the GNU LGPL requires that derived works be licensed under the same license, but works that only link to it do not fall under this restriction. There are two commonly used versions of the GNU LGPL. description: Primarily used for software libraries, the GNU LGPL requires that derived works be licensed under the same license, but works that only link to it do not fall under this restriction. There are two commonly used versions of the GNU LGPL.
@ -26,8 +24,6 @@ permissions:
limitations: limitations:
- no-liability - no-liability
hidden: false
--- ---
GNU LESSER GENERAL PUBLIC LICENSE GNU LESSER GENERAL PUBLIC LICENSE

View File

@ -2,7 +2,6 @@
title: GNU Lesser General Public License v3.0 title: GNU Lesser General Public License v3.0
nickname: GNU LGPLv3 nickname: GNU LGPLv3
redirect_from: /licenses/lgpl-v3/ redirect_from: /licenses/lgpl-v3/
family: GNU LGPL
source: http://www.gnu.org/licenses/lgpl-3.0.txt source: http://www.gnu.org/licenses/lgpl-3.0.txt
description: Version 3 of the GNU LGPL is an additional set of permissions to the <a href="/licenses/gpl-3.0/">GNU GPLv3 license</a> that requires that derived works be licensed under the same license, but works that only link to it do not fall under this restriction. description: Version 3 of the GNU LGPL is an additional set of permissions to the <a href="/licenses/gpl-3.0/">GNU GPLv3 license</a> that requires that derived works be licensed under the same license, but works that only link to it do not fall under this restriction.
@ -26,8 +25,6 @@ permissions:
limitations: limitations:
- no-liability - no-liability
hidden: false
--- ---
GNU LESSER GENERAL PUBLIC LICENSE GNU LESSER GENERAL PUBLIC LICENSE

View File

@ -1,8 +1,6 @@
--- ---
title: LaTeX Project Public License v1.3c title: LaTeX Project Public License v1.3c
hidden: true
nickname: LPPL-1.3c nickname: LPPL-1.3c
family: LPPL
source: https://latex-project.org/lppl/lppl-1-3c.html source: https://latex-project.org/lppl/lppl-1-3c.html
description: The LaTeX Project Public License (LPPL) is the primary license under which the LaTeX kernel and the base LaTeX packages are distributed. description: The LaTeX Project Public License (LPPL) is the primary license under which the LaTeX kernel and the base LaTeX packages are distributed.
@ -24,7 +22,6 @@ permissions:
limitations: limitations:
- no-liability - no-liability
--- ---
The LaTeX Project Public License The LaTeX Project Public License

View File

@ -1,6 +1,5 @@
--- ---
title: MIT License title: MIT License
featured: true
source: https://opensource.org/licenses/MIT source: https://opensource.org/licenses/MIT
description: A permissive license that is short and to the point. It lets people do anything with your code with proper attribution and without warranty. description: A permissive license that is short and to the point. It lets people do anything with your code with proper attribution and without warranty.
@ -23,8 +22,6 @@ permissions:
limitations: limitations:
- no-liability - no-liability
hidden: false
--- ---
MIT License MIT License

View File

@ -22,8 +22,6 @@ permissions:
limitations: limitations:
- no-liability - no-liability
- trademark-use - trademark-use
hidden: false
--- ---
Mozilla Public License Version 2.0 Mozilla Public License Version 2.0

View File

@ -1,6 +1,5 @@
--- ---
title: The Unlicense title: The Unlicense
family: Public Domain
source: http://unlicense.org/UNLICENSE source: http://unlicense.org/UNLICENSE
description: Because copyright is automatic in most countries, <a href="http://unlicense.org">the Unlicense</a> is a template to waive copyright interest in software you've written and dedicate it to the public domain. Use the Unlicense to opt out of copyright entirely. It also includes the no-warranty statement from the MIT/X11 license. description: Because copyright is automatic in most countries, <a href="http://unlicense.org">the Unlicense</a> is a template to waive copyright interest in software you've written and dedicate it to the public domain. Use the Unlicense to opt out of copyright entirely. It also includes the no-warranty statement from the MIT/X11 license.
@ -17,8 +16,6 @@ conditions: []
limitations: limitations:
- no-liability - no-liability
hidden: false
--- ---
This is free and unencumbered software released into the public domain. This is free and unencumbered software released into the public domain.

View File

@ -174,6 +174,7 @@ strong {
.license-family-name { .license-family-name {
font-size: 28px; font-size: 28px;
margin-top: 5px;
} }
.license-family-description { .license-family-description {

View File

@ -5,19 +5,14 @@ class: license-types
title: Licenses title: Licenses
--- ---
<h2>Featured licenses</h2> <p style="margin-bottom:50px">Open source licenses grant permission to everyone to use, modify, and share licensed software for any purpose, subject to conditions preserving the provenance and openness of the software. The following licenses are arranged from one with the strongest of these conditions (GNU AGPLv3) to one with no conditions (Unlicense). Notice that the popular licenses featured on the <a href="/">home page</a> (GNU GPLv3, Apache License 2.0, and MIT License) fall within this spectrum.</p>
{% assign featured_licenses = site.licenses | where:"featured",true %} {% include license-overview.html license-id="agpl-3.0" %}
{% for license in featured_licenses | sort: 'path' %} {% include license-overview.html license-id="gpl-3.0" %}
{% include license-overview.html license=license %} {% include license-overview.html license-id="lgpl-3.0" %}
{% endfor %} {% include license-overview.html license-id="mpl-2.0" %}
{% include license-overview.html license-id="apache-2.0" %}
{% include license-overview.html license-id="mit" %}
{% include license-overview.html license-id="unlicense" %}
<h2>Other licenses</h2> The above licenses represent the entire spectrum of open source licenses, from highly protective to unconditional. One of these should work for most new open source projects. Many other open source licenses exist, including older versions of and close substitutes for some of the above. See the resources listed on our <a href="/about/">about page</a> if you'd like to read more.
<p>
Some communities tend to have specific licenses preferred by the
community. For example, Perl developers often choose the Artistic License.
</p>
{% assign licenses = site.licenses | where:"featured",false | where:"hidden",false | where:"variant",false %}
{% for license in licenses %}
{% include license-overview.html license=license %}
{% endfor %}

View File

@ -1,20 +0,0 @@
require 'spec_helper'
describe 'license categories' do
families.each do |family|
context "the #{family} family" do
family_licenses = licenses.select { |l| l['family'] == family }
primary = family_licenses.select { |l| l['variant'] == false }
variants = family_licenses.select { |l| l['variant'] == true }
it 'should only have one primary license' do
expect(primary.count).to eql(1)
end
it 'all other licenses should be variants' do
expected = family_licenses.count - 1
expect(variants.count).to eql(expected)
end
end
end
end

View File

@ -16,18 +16,6 @@ describe 'license meta' do
missing = required - raw_fields.keys missing = required - raw_fields.keys
expect(missing).to be_empty expect(missing).to be_empty
end end
if license['family']
it 'should contain the required license variant fields' do
missing = %w(family) - license.keys
expect(missing).to be_empty
end
else
it 'should not contain license family specific fields' do
extra = %w(variant family).select { |f| raw_fields.keys.include?(f) }
expect(extra).to be_empty
end
end
end end
end end
end end

View File

@ -1,35 +0,0 @@
require 'spec_helper'
describe 'shown licenses' do
# Whitelist of popular licenses that are shown (non-hidden)
# Note: most new licenses that are added should be hidden by default
SHOWN_LICENSES = %w(
agpl-3.0
apache-2.0
artistic-2.0
bsd-2-clause
bsd-3-clause
cc0-1.0
epl-1.0
gpl-2.0
gpl-3.0
isc
lgpl-2.1
lgpl-3.0
mit
mpl-2.0
unlicense
).freeze
it 'has the expected number of shown licenses' do
expect(shown_licenses.count).to eql(15)
end
shown_licenses.each do |license|
context "the #{license['title']} license" do
it 'is whitelisted to be shown' do
expect(SHOWN_LICENSES).to include(license['id'])
end
end
end
end

View File

@ -40,22 +40,10 @@ def licenses
end end
end end
def hidden_licenses
licenses.select { |l| l['hidden'] }
end
def shown_licenses
licenses.select { |l| !l['hidden'] }
end
def license_ids def license_ids
licenses.map { |l| l['id'] } licenses.map { |l| l['id'] }
end end
def families
licenses.map { |l| l['family'] }.compact.uniq
end
def site def site
SpecHelper.site ||= begin SpecHelper.site ||= begin
site = Jekyll::Site.new(config) site = Jekyll::Site.new(config)