From 5e41181f25c084bad214ca91a1a85e69c5b85a7e Mon Sep 17 00:00:00 2001 From: Mike Linksvayer Date: Thu, 7 Apr 2016 16:08:58 -0700 Subject: [PATCH 1/4] replace /licenses listings with spectrum (on home page, non-hidden) -> (agplv3 to unlicense) no explanation or cruft removal done yet --- _includes/license-overview.html | 4 ++++ licenses.html | 21 +++++++-------------- 2 files changed, 11 insertions(+), 14 deletions(-) diff --git a/_includes/license-overview.html b/_includes/license-overview.html index d504c20..38a853f 100644 --- a/_includes/license-overview.html +++ b/_includes/license-overview.html @@ -1,3 +1,6 @@ +{% assign id = "/licenses/" | append: include.license-id %} +{% assign licenses = site.licenses | where:"id", id %} +{% for license in licenses %}

@@ -75,3 +78,4 @@ {% endfor %}

+{% endfor %} diff --git a/licenses.html b/licenses.html index e1811ba..6b4b6ea 100644 --- a/licenses.html +++ b/licenses.html @@ -7,17 +7,10 @@ title: Licenses

Featured licenses

-{% assign featured_licenses = site.licenses | where:"featured",true %} -{% for license in featured_licenses | sort: 'path' %} - {% include license-overview.html license=license %} -{% endfor %} - -

Other licenses

-

- Some communities tend to have specific licenses preferred by the - community. For example, Perl developers often choose the Artistic License. -

-{% assign licenses = site.licenses | where:"featured",false | where:"hidden",false | where:"variant",false %} -{% for license in licenses %} - {% 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" %} From baddd740af01a6f08d882ea5ce5c3e2da1f1c994 Mon Sep 17 00:00:00 2001 From: Mike Linksvayer Date: Thu, 7 Apr 2016 17:49:56 -0700 Subject: [PATCH 2/4] remove family display elements, add spectrum explanation --- _includes/license-overview.html | 36 ++------------------------------- assets/css/application.scss | 1 + licenses.html | 4 +++- 3 files changed, 6 insertions(+), 35 deletions(-) diff --git a/_includes/license-overview.html b/_includes/license-overview.html index 38a853f..944073b 100644 --- a/_includes/license-overview.html +++ b/_includes/license-overview.html @@ -5,15 +5,11 @@
-
- - {% if license.family %} - - {% endif %} -
- - {% 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 %} -
{% assign types = "permissions|conditions|limitations" | split: "|" %} @@ -61,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 %}
  • {{ rule_obj.label }} @@ -73,9 +43,7 @@ {% endfor %}
  • -

    View full {{ variation.title }} license »

    -
    - {% endfor %} +

    View full {{ license.title }} »

    {% endfor %} diff --git a/assets/css/application.scss b/assets/css/application.scss index 1e11bec..416c610 100644 --- a/assets/css/application.scss +++ b/assets/css/application.scss @@ -174,6 +174,7 @@ strong { .license-family-name { font-size: 28px; + margin-top: 5px; } .license-family-description { diff --git a/licenses.html b/licenses.html index 6b4b6ea..db4010c 100644 --- a/licenses.html +++ b/licenses.html @@ -5,7 +5,7 @@ class: license-types title: Licenses --- -

    Featured licenses

    +

    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 home page (GNU GPLv3, Apache License 2.0, and MIT License) fall within this spectrum.

    {% include license-overview.html license-id="agpl-3.0" %} {% include license-overview.html license-id="gpl-3.0" %} @@ -14,3 +14,5 @@ title: Licenses {% include license-overview.html license-id="apache-2.0" %} {% include license-overview.html license-id="mit" %} {% include license-overview.html license-id="unlicense" %} + +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 about page if you'd like to read more. From b4cf070a82a86d59a8aa403f190afa013cf6be97 Mon Sep 17 00:00:00 2001 From: Mike Linksvayer Date: Thu, 7 Apr 2016 18:48:15 -0700 Subject: [PATCH 3/4] rm no longer pertinent fields and tests --- README.md | 3 --- _data/meta.yml | 16 --------------- _includes/license-overview.html | 2 +- _licenses/agpl-3.0.txt | 4 ---- _licenses/apache-2.0.txt | 3 --- _licenses/artistic-2.0.txt | 2 -- _licenses/bsd-2-clause.txt | 4 ---- _licenses/bsd-3-clause-clear.txt | 3 --- _licenses/bsd-3-clause.txt | 4 ---- _licenses/cc0-1.0.txt | 4 ---- _licenses/epl-1.0.txt | 2 -- _licenses/eupl-1.1.txt | 3 --- _licenses/gpl-2.0.txt | 4 ---- _licenses/gpl-3.0.txt | 4 ---- _licenses/isc.txt | 3 --- _licenses/lgpl-2.1.txt | 4 ---- _licenses/lgpl-3.0.txt | 3 --- _licenses/lppl-1.3c.txt | 3 --- _licenses/mit.txt | 3 --- _licenses/mpl-2.0.txt | 2 -- _licenses/unlicense.txt | 3 --- spec/license_category_spec.rb | 20 ------------------ spec/license_meta_spec.rb | 12 ----------- spec/license_shown_spec.rb | 35 -------------------------------- spec/spec_helper.rb | 12 ----------- 25 files changed, 1 insertion(+), 157 deletions(-) delete mode 100644 spec/license_category_spec.rb delete mode 100644 spec/license_shown_spec.rb diff --git a/README.md b/README.md index 3387efe..fe23c4d 100644 --- a/README.md +++ b/README.md @@ -53,10 +53,7 @@ Licenses sit in the `/_licenses` folder. Each license has YAML front matter desc * `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 diff --git a/_data/meta.yml b/_data/meta.yml index 0b361e1..41d0c5c 100644 --- a/_data/meta.yml +++ b/_data/meta.yml @@ -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 diff --git a/_includes/license-overview.html b/_includes/license-overview.html index 944073b..56ca70b 100644 --- a/_includes/license-overview.html +++ b/_includes/license-overview.html @@ -1,7 +1,7 @@ {% assign id = "/licenses/" | append: include.license-id %} {% assign licenses = site.licenses | where:"id", id %} {% for license in licenses %} -
    +

    diff --git a/_licenses/agpl-3.0.txt b/_licenses/agpl-3.0.txt index 6d6d3ac..00f3fb8 100644 --- a/_licenses/agpl-3.0.txt +++ b/_licenses/agpl-3.0.txt @@ -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 diff --git a/_licenses/apache-2.0.txt b/_licenses/apache-2.0.txt index 79c914a..4fcc6b5 100644 --- a/_licenses/apache-2.0.txt +++ b/_licenses/apache-2.0.txt @@ -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 diff --git a/_licenses/artistic-2.0.txt b/_licenses/artistic-2.0.txt index 95bd968..af586e3 100644 --- a/_licenses/artistic-2.0.txt +++ b/_licenses/artistic-2.0.txt @@ -21,8 +21,6 @@ permissions: limitations: - no-liability - trademark-use - -hidden: false --- The Artistic License 2.0 diff --git a/_licenses/bsd-2-clause.txt b/_licenses/bsd-2-clause.txt index fba20fa..c878be9 100644 --- a/_licenses/bsd-2-clause.txt +++ b/_licenses/bsd-2-clause.txt @@ -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 BSD 2-Clause and BSD 3-Clause. Both have very minute differences to the MIT license. @@ -21,8 +19,6 @@ permissions: limitations: - no-liability - -hidden: false --- BSD 2-Clause License diff --git a/_licenses/bsd-3-clause-clear.txt b/_licenses/bsd-3-clause-clear.txt index 23035b2..a7a2a27 100644 --- a/_licenses/bsd-3-clause-clear.txt +++ b/_licenses/bsd-3-clause-clear.txt @@ -1,7 +1,5 @@ --- title: BSD 3-clause Clear License -family: BSD -variant: true description: A variant of the BSD 3-Clause License that explicitly does not grant any patent rights. @@ -21,7 +19,6 @@ permissions: limitations: - no-liability - patent-use - --- The Clear BSD License diff --git a/_licenses/bsd-3-clause.txt b/_licenses/bsd-3-clause.txt index 6cf6572..b3abf4c 100644 --- a/_licenses/bsd-3-clause.txt +++ b/_licenses/bsd-3-clause.txt @@ -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 BSD 2-Clause License, 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 diff --git a/_licenses/cc0-1.0.txt b/_licenses/cc0-1.0.txt index 4041707..a021bb3 100644 --- a/_licenses/cc0-1.0.txt +++ b/_licenses/cc0-1.0.txt @@ -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 Creative Commons CC0 Public Domain Dedication 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 diff --git a/_licenses/epl-1.0.txt b/_licenses/epl-1.0.txt index db3125f..bc89d4d 100644 --- a/_licenses/epl-1.0.txt +++ b/_licenses/epl-1.0.txt @@ -26,8 +26,6 @@ permissions: limitations: - no-liability - -hidden: false --- Eclipse Public License - v 1.0 diff --git a/_licenses/eupl-1.1.txt b/_licenses/eupl-1.1.txt index e1612ed..e9f26a1 100644 --- a/_licenses/eupl-1.1.txt +++ b/_licenses/eupl-1.1.txt @@ -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 diff --git a/_licenses/gpl-2.0.txt b/_licenses/gpl-2.0.txt index 23f940a..8cdf37b 100644 --- a/_licenses/gpl-2.0.txt +++ b/_licenses/gpl-2.0.txt @@ -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 diff --git a/_licenses/gpl-3.0.txt b/_licenses/gpl-3.0.txt index e83cc53..82268b3 100644 --- a/_licenses/gpl-3.0.txt +++ b/_licenses/gpl-3.0.txt @@ -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 diff --git a/_licenses/isc.txt b/_licenses/isc.txt index cfdaa12..a244204 100644 --- a/_licenses/isc.txt +++ b/_licenses/isc.txt @@ -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 BSD 2-Clause and MIT licenses, removing some language that is no longer necessary. @@ -23,8 +22,6 @@ permissions: limitations: - no-liability - -hidden: false --- ISC License diff --git a/_licenses/lgpl-2.1.txt b/_licenses/lgpl-2.1.txt index 5b1f6f8..aaa47db 100644 --- a/_licenses/lgpl-2.1.txt +++ b/_licenses/lgpl-2.1.txt @@ -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 diff --git a/_licenses/lgpl-3.0.txt b/_licenses/lgpl-3.0.txt index e827372..13a7d45 100644 --- a/_licenses/lgpl-3.0.txt +++ b/_licenses/lgpl-3.0.txt @@ -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 GNU GPLv3 license 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 diff --git a/_licenses/lppl-1.3c.txt b/_licenses/lppl-1.3c.txt index eb78cd3..80961c0 100644 --- a/_licenses/lppl-1.3c.txt +++ b/_licenses/lppl-1.3c.txt @@ -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 diff --git a/_licenses/mit.txt b/_licenses/mit.txt index a853540..262a4de 100644 --- a/_licenses/mit.txt +++ b/_licenses/mit.txt @@ -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 diff --git a/_licenses/mpl-2.0.txt b/_licenses/mpl-2.0.txt index b64ec40..defeb3a 100644 --- a/_licenses/mpl-2.0.txt +++ b/_licenses/mpl-2.0.txt @@ -22,8 +22,6 @@ permissions: limitations: - no-liability - trademark-use - -hidden: false --- Mozilla Public License Version 2.0 diff --git a/_licenses/unlicense.txt b/_licenses/unlicense.txt index d74418c..742bc39 100644 --- a/_licenses/unlicense.txt +++ b/_licenses/unlicense.txt @@ -1,6 +1,5 @@ --- title: The Unlicense -family: Public Domain source: http://unlicense.org/UNLICENSE description: Because copyright is automatic in most countries, the Unlicense 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. diff --git a/spec/license_category_spec.rb b/spec/license_category_spec.rb deleted file mode 100644 index f66ec0e..0000000 --- a/spec/license_category_spec.rb +++ /dev/null @@ -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 diff --git a/spec/license_meta_spec.rb b/spec/license_meta_spec.rb index d7bd689..8b5e583 100644 --- a/spec/license_meta_spec.rb +++ b/spec/license_meta_spec.rb @@ -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 diff --git a/spec/license_shown_spec.rb b/spec/license_shown_spec.rb deleted file mode 100644 index 37737da..0000000 --- a/spec/license_shown_spec.rb +++ /dev/null @@ -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 diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 03ec6b3..a9f820a 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -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) From 084b167ae0455cb33da0912f69b294fce04f3d35 Mon Sep 17 00:00:00 2001 From: Mike Linksvayer Date: Thu, 7 Apr 2016 19:09:25 -0700 Subject: [PATCH 4/4] missed hidden field in README --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index fe23c4d..0567d9b 100644 --- a/README.md +++ b/README.md @@ -51,7 +51,6 @@ 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 * `nickname` - A shorter, human-readable license name where the SPDX license name (`title` above) is long