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
* `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
* `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
* `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

View File

@ -39,26 +39,10 @@
description: 'A list of notable projects using the license in the form of `project_name: "url"`'
required: false
- name: hidden
description: Whether the license is hidden from the license list (defaults to true)
required: false
- name: redirect_from
description: Relative path(s) to redirect to the license from, to prevent breaking old URLs
required: false
- name: featured
description: Whether the license should be featured on the main page (defaults to false)
required: false
- name: nickname
description: A shorter, human-readable license name where the SPDX license name (`title` above) is long
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">
<h3 class="license-family-name">
<a href="{{ license.url }}">
{% if license.family %}
{{ license.family }}
{% else %}
{% if license.nickname %}
{{ license.nickname }}
{% else %}
{{ license.title }}
{% endif %}
{% endif %}
</a>
</h3>
@ -18,32 +17,6 @@
</div>
<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">
<tr>
{% assign types = "permissions|conditions|limitations" | split: "|" %}
@ -58,7 +31,7 @@
{% assign rules = site.data.rules[type] | sort: "label" %}
{% for rule_obj in rules %}
{% assign req = rule_obj.tag %}
{% if variation[type] contains req %}
{% if license[type] contains req %}
<li class="{{ req }}">
<span class="license-sprite"></span>
{{ rule_obj.label }}
@ -70,8 +43,7 @@
{% endfor %}
</tr>
</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>
</div>
{% endfor %}
</div>
</div>

View File

@ -2,8 +2,6 @@
title: GNU Affero General Public License v3.0
nickname: GNU AGPLv3
redirect_from: /licenses/agpl/
family: GNU GPL
variant: true
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.
@ -28,8 +26,6 @@ permissions:
limitations:
- no-liability
hidden: false
---
GNU AFFERO GENERAL PUBLIC LICENSE

View File

@ -1,7 +1,6 @@
---
title: Apache License 2.0
redirect_from: /licenses/apache/
featured: true
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.
@ -29,8 +28,6 @@ permissions:
limitations:
- trademark-use
- no-liability
hidden: false
---
Apache License

View File

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

View File

@ -2,8 +2,6 @@
title: BSD 2-clause "Simplified" License
nickname: BSD 2-Clause
redirect_from: /licenses/bsd/
family: BSD
variant: true
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.
@ -21,8 +19,6 @@ permissions:
limitations:
- no-liability
hidden: false
---
BSD 2-Clause License

View File

@ -1,7 +1,5 @@
---
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.
@ -21,7 +19,6 @@ permissions:
limitations:
- no-liability
- patent-use
---
The Clear BSD License

View File

@ -1,8 +1,6 @@
---
title: BSD 3-clause "New" or "Revised" License
nickname: BSD 3-Clause
family: BSD
variant: true
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.
@ -20,8 +18,6 @@ permissions:
limitations:
- no-liability
hidden: false
---
BSD 3-Clause License

View File

@ -2,8 +2,6 @@
title: Creative Commons Zero v1.0 Universal
nickname: CC0 1.0 Universal
redirect_from: /licenses/cc0/
family: Public Domain
variant: true
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.
@ -24,8 +22,6 @@ limitations:
- no-liability
- trademark-use
- patent-use
hidden: false
---
CC0 1.0 Universal

View File

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

View File

@ -2,8 +2,6 @@
title: European Union Public License 1.1
nickname: EUPL-1.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
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:
- no-liability
- trademark-use
---
European Union Public Licence

View File

@ -2,8 +2,6 @@
title: GNU General Public License v2.0
nickname: GNU GPLv2
redirect_from: /licenses/gpl-v2/
family: GNU GPL
variant: true
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.
@ -31,8 +29,6 @@ permissions:
limitations:
- no-liability
hidden: false
---
GNU GENERAL PUBLIC LICENSE

View File

@ -2,8 +2,6 @@
title: GNU General Public License v3.0
nickname: GNU GPLv3
redirect_from: /licenses/gpl-v3/
family: GNU GPL
featured: true
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.
@ -32,8 +30,6 @@ permissions:
limitations:
- no-liability
hidden: false
---
GNU GENERAL PUBLIC LICENSE

View File

@ -1,6 +1,5 @@
---
title: ISC License
family: BSD
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.
@ -23,8 +22,6 @@ permissions:
limitations:
- no-liability
hidden: false
---
ISC License

View File

@ -2,8 +2,6 @@
title: GNU Lesser General Public License v2.1
nickname: GNU LGPLv2.1
redirect_from: /licenses/lgpl-v2.1/
family: GNU LGPL
variant: true
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.
@ -26,8 +24,6 @@ permissions:
limitations:
- no-liability
hidden: false
---
GNU LESSER GENERAL PUBLIC LICENSE

View File

@ -2,7 +2,6 @@
title: GNU Lesser General Public License v3.0
nickname: GNU LGPLv3
redirect_from: /licenses/lgpl-v3/
family: GNU LGPL
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.
@ -26,8 +25,6 @@ permissions:
limitations:
- no-liability
hidden: false
---
GNU LESSER GENERAL PUBLIC LICENSE

View File

@ -1,8 +1,6 @@
---
title: LaTeX Project Public License v1.3c
hidden: true
nickname: LPPL-1.3c
family: LPPL
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.
@ -24,7 +22,6 @@ permissions:
limitations:
- no-liability
---
The LaTeX Project Public License

View File

@ -1,6 +1,5 @@
---
title: MIT License
featured: true
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.
@ -23,8 +22,6 @@ permissions:
limitations:
- no-liability
hidden: false
---
MIT License

View File

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

View File

@ -1,6 +1,5 @@
---
title: The Unlicense
family: Public Domain
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.
@ -17,8 +16,6 @@ conditions: []
limitations:
- no-liability
hidden: false
---
This is free and unencumbered software released into the public domain.

View File

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

View File

@ -5,19 +5,14 @@ class: license-types
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 %}
{% for license in featured_licenses | sort: 'path' %}
{% include license-overview.html license=license %}
{% endfor %}
{% include license-overview.html license-id="agpl-3.0" %}
{% include license-overview.html license-id="gpl-3.0" %}
{% include license-overview.html license-id="lgpl-3.0" %}
{% 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>
<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 %}
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.

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
expect(missing).to be_empty
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

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
def hidden_licenses
licenses.select { |l| l['hidden'] }
end
def shown_licenses
licenses.select { |l| !l['hidden'] }
end
def license_ids
licenses.map { |l| l['id'] }
end
def families
licenses.map { |l| l['family'] }.compact.uniq
end
def site
SpecHelper.site ||= begin
site = Jekyll::Site.new(config)