Skip to content

Commit

Permalink
Use CDLA-Permissive-2.0 for new managed data (#2155)
Browse files Browse the repository at this point in the history
* Use CDLA-Permissive-2.0 for new managed data

This implements the CDLA-Permissive-2.0 license for updated data.

The Linux Foundation legal team has asked us to use the
CDLA-Permissive-2.0 license for newer data.
This is an *extremely* permissive license, we've noted
this change with lots of warning, and it's a requirement for
our legal formation.

Signed-off-by: David A. Wheeler <dwheeler@dwheeler.com>

* Fix locale key

Signed-off-by: David A. Wheeler <dwheeler@dwheeler.com>

* Add various dates to trigger license statements

We want to trigger different dates to ensure that
nothing crashes on different dates :-).

Signed-off-by: David A. Wheeler <dwheeler@dwheeler.com>

* Make CDLA identifiers consistent

Signed-off-by: David A. Wheeler <dwheeler@dwheeler.com>

* Fix tests and eliminate oversensitivity

Signed-off-by: David A. Wheeler <dwheeler@dwheeler.com>

* README Clarify dataset licensing with SPDX

Signed-off-by: David A. Wheeler <dwheeler@dwheeler.com>

---------

Signed-off-by: David A. Wheeler <dwheeler@dwheeler.com>
  • Loading branch information
david-a-wheeler authored Aug 16, 2024
1 parent d8d7ee5 commit 84c188e
Show file tree
Hide file tree
Showing 12 changed files with 169 additions and 53 deletions.
3 changes: 3 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,9 @@ See the section on reuse for their license requirements
(they don't need to be MIT, but all required components must be
open source software).

The data *managed* by this application is released under different
open data licenses. See the README for more information.

### We are proactive

In general we try to be proactive to detect and eliminate
Expand Down
35 changes: 35 additions & 0 deletions LICENSES/CDLA-2.0
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Community Data License Agreement - Permissive - Version 2.0

This is the Community Data License Agreement - Permissive, Version 2.0 (the "agreement"). Data Provider(s) and Data Recipient(s) agree as follows:

## 1. Provision of the Data

1.1. A Data Recipient may use, modify, and share the Data made available by Data Provider(s) under this agreement if that Data Recipient follows the terms of this agreement.

1.2. This agreement does not impose any restriction on a Data Recipient's use, modification, or sharing of any portions of the Data that are in the public domain or that may be used, modified, or shared under any other legal exception or limitation.

## 2. Conditions for Sharing Data

2.1. A Data Recipient may share Data, with or without modifications, so long as the Data Recipient makes available the text of this agreement with the shared Data.

## 3. No Restrictions on Results

3.1. This agreement does not impose any restriction or obligations with respect to the use, modification, or sharing of Results.

## 4. No Warranty; Limitation of Liability

4.1. All Data Recipients receive the Data subject to the following terms:

THE DATA IS PROVIDED ON AN "AS IS" BASIS, WITHOUT REPRESENTATIONS, WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

NO DATA PROVIDER SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE DATA OR RESULTS, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

## 5. Definitions

5.1. "Data" means the material received by a Data Recipient under this agreement.

5.2. "Data Provider" means any person who is the source of Data provided under this agreement and in reliance on a Data Recipient's agreement to its terms.

5.3. "Data Recipient" means any person who receives Data directly or indirectly from a Data Provider and agrees to the terms of this agreement.

5.4. "Results" means any outcome obtained by computational analysis of Data, including for example machine learning models and models' insights.
12 changes: 12 additions & 0 deletions LICENSES/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Licenses

*Content* managed by the service and submitted more recently
is accepted and released under the
[Community Data License Agreement – Permissive, Version 2.0 (CDLA-Permissive-2.0](https://cdla.dev/permissive-2-0/).

This directory contains a
[local copy of the CDLA-Permissive-2.0 license](./CDLA-Permissive-2.0)
in markdown as
[retrieved from GitHub](https://raw.githubusercontent.com/Community-Data-License-Agreements/Releases/main/CDLA-Permissive-2.0.md).

Previous content was accepted under the CC-BY-3.0 or CC-BY-3.0+ licenses.
31 changes: 29 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -190,8 +190,9 @@ a top-level domain with our CDN; it's more efficient to use the subdomain.

## License

All material here is released under the [MIT license](./LICENSE).
All material that is not executable, including all text when not executed,
All material in this repository is released under the [MIT license](./LICENSE).
All material in this repository that is not executable,
including all text when not executed,
is also released under the
[Creative Commons Attribution 3.0 International (CC BY 3.0) license](https://creativecommons.org/licenses/by/3.0/) or later.
In SPDX terms, everything here is licensed under MIT;
Expand All @@ -203,3 +204,29 @@ other components with their own licenses.
Not all components we depend on are MIT-licensed, but all
*required* components are FLOSS. We prevent licensing issues
using various processes (see [CONTRIBUTING](./CONTRIBUTING.md)).

The data *managed* by this software is under different highly-permissive
[open data](https://opendefinition.org/od/2.1/en/) licenses,
depending on when the data was last updated:

* Data updated on or after 2024-08-23T12:00:00Z is released under the
[Community Data License Agreement – Permissive, Version 2.0 (CDLA-Permissive-2.0)](https://cdla.dev/permissive-2-0/).
This means that a Data Recipient
may share the Data, with or without modifications, so long as the
Data Recipient makes available the text of this agreement with
the shared Data.
This agreement does *not* impose any restriction or obligations
with respect to the use, modification, or sharing of Results.
* Otherwise, data updated on or after 2017-02-20T12:00:00Z is released under the
[Creative Commons Attribution 3.0 International (CC BY 3.0) license or later (CC-BY-3.0+)](https://creativecommons.org/licenses/by/3.0/).
* Otherwise, data is released under the
[Creative Commons Attribution 3.0 International (CC BY 3.0) license (CC-BY-3.0)](https://creativecommons.org/licenses/by/3.0/).

The *complete* collection of data *managed* by this application is thus
licensed with the SPDX license expression "(CC-BY-3.0 AND CDLA-Permissive-2.0)".
Only a few old entries are under the CC-BY-3.0, so if you omitted those
oldest data values, the dataset is released under the expression
"(CC-BY-3.0+ AND CDLA-Permissive-2.0)".

Submitters of data retain copyright (if any), and
the project license is unaffected.
23 changes: 23 additions & 0 deletions app/models/project.rb
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,9 @@ class Project < ApplicationRecord
# (CC-BY-3.0+)?
ENTRY_LICENSE_EXPLICIT_DATE = Time.iso8601('2017-02-20T12:00:00Z')

# When did we switch to CDLA-Permissive-2.0?
ENTRY_LICENSE_CDLA_PERMISSIVE_20_DATE = Time.iso8601('2024-08-23T12:00:00Z')

STATUS_CHOICE = %w[? Met Unmet].freeze
STATUS_CHOICE_NA = (STATUS_CHOICE + %w[N/A]).freeze
MIN_SHOULD_LENGTH = 5
Expand Down Expand Up @@ -354,6 +357,26 @@ def show_entry_license?
updated_at >= ENTRY_LICENSE_EXPLICIT_DATE
end

def show_cdla_permissive_20_license?
updated_at >= ENTRY_LICENSE_CDLA_PERMISSIVE_20_DATE
end

# Which field should we display for the data license?
# Using the project's last updated_at value, return the name of the
# field in i18n "projects.show" to display as the license.
def data_license_field
if show_cdla_permissive_20_license?
'cdla_permissive_20_html'
elsif show_entry_license?
'cc_by_3plus_html'
else
# This is older data and the user didn't indicate anything,
# so the "terms of use" of CII apply, which said that unless
# otherwise noted it's released under CC-BY-3.0 only.
'cc_by_3only_html'
end
end

# Update the badge percentage for a given level (expressed as a number;
# 0=passing), and update relevant event datetime if needed.
# It presumes the lower-level percentages (if relevant) are calculated.
Expand Down
22 changes: 8 additions & 14 deletions app/views/projects/_form_0.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -361,7 +361,7 @@
<% end %>
<% unless is_disabled %>
<div class="panel-footer text-center">
<%= t 'projects.edit.submit_cc_by_3plus_html' %>
<%= t 'projects.edit.submit_cdla_permissive_20_html' %>
<%= f.button t('projects.edit.save_and_continue'), type: 'submit', name: 'continue',
value: 'changecontrol', class:"btn btn-success btn-submit" %>
<%= f.submit t('projects.edit.submit_and_exit'), class:"btn btn-success btn-submit" %>
Expand Down Expand Up @@ -397,7 +397,7 @@
</ul>
<% unless is_disabled %>
<div class="panel-footer text-center">
<%= t 'projects.edit.submit_cc_by_3plus_html' %>
<%= t 'projects.edit.submit_cdla_permissive_20_html' %>
<%= f.button t('projects.edit.save_and_continue'), type: 'submit', name: 'continue',
value: 'reporting', class:"btn btn-success btn-submit" %>
<%= f.submit t('projects.edit.submit_and_exit'), class:"btn btn-success btn-submit" %>
Expand Down Expand Up @@ -429,7 +429,7 @@
</ul>
<% unless is_disabled %>
<div class="panel-footer text-center">
<%= t 'projects.edit.submit_cc_by_3plus_html' %>
<%= t 'projects.edit.submit_cdla_permissive_20_html' %>
<%= f.button t('projects.edit.save_and_continue'), type: 'submit', name: 'continue',
value: 'quality', class:"btn btn-success btn-submit" %>
<%= f.submit t('projects.edit.submit_and_exit'), class:"btn btn-success btn-submit" %>
Expand Down Expand Up @@ -471,7 +471,7 @@
</ul>
<% unless is_disabled %>
<div class="panel-footer text-center">
<%= t 'projects.edit.submit_cc_by_3plus_html' %>
<%= t 'projects.edit.submit_cdla_permissive_20_html' %>
<%= f.button t('projects.edit.save_and_continue'), type: 'submit', name: 'continue',
value: 'security', class:"btn btn-success btn-submit" %>
<%= f.submit t('projects.edit.submit_and_exit'), class:"btn btn-success btn-submit" %>
Expand Down Expand Up @@ -531,7 +531,7 @@
</ul>
<% unless is_disabled %>
<div class="panel-footer text-center">
<%= t 'projects.edit.submit_cc_by_3plus_html' %>
<%= t 'projects.edit.submit_cdla_permissive_20_html' %>
<%= f.button t('projects.edit.save_and_continue'), type: 'submit', name: 'continue',
value: 'analysis', class:"btn btn-success btn-submit" %>
<%= f.submit t('projects.edit.submit_and_exit'), class:"btn btn-success btn-submit" %>
Expand Down Expand Up @@ -566,16 +566,10 @@
<br>
<div class="center">
<% if is_disabled %>
<% if project.show_entry_license? %>
<%= t 'projects.show.cc_by_3plus_html', user: project.user_display_name %>
<% else %>
<!-- This is older data and the user didn't indicate anything,
so the "terms of use" of CII apply, which said that unless
otherwise noted it's released under CC-BY-3.0 only. -->
<%= t 'projects.show.cc_by_3only_html', user: project.user_display_name %>
<% end %>
<%= t "projects.show.#{project.data_license_field}",
user: project.user_display_name %>
<% else %>
<%= t 'projects.edit.submit_cc_by_3plus_html' %>
<%= t 'projects.edit.submit_cdla_permissive_20_html' %>
<%= f.button t('projects.edit.save_and_continue'), type: 'submit', name: 'continue',
value: 'Save', class:"btn btn-success btn-submit" %>
<%= f.submit t('projects.edit.submit_and_exit'), class:"btn btn-success btn-submit" %>
Expand Down
24 changes: 9 additions & 15 deletions app/views/projects/_form_1.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@

<% unless is_disabled %>
<div class="panel-footer text-center">
<%= t 'projects.edit.submit_cc_by_3plus_html' %>
<%= t 'projects.edit.submit_cdla_permissive_20_html' %>
<%= f.button t('projects.edit.save_and_continue'), type: 'submit', name: 'continue',
value: 'changecontrol', class:"btn btn-success btn-submit" %>
<%= f.submit t('projects.edit.submit_and_exit'), class:"btn btn-success btn-submit" %>
Expand Down Expand Up @@ -107,7 +107,7 @@
</ul>
<% unless is_disabled %>
<div class="panel-footer text-center">
<%= t 'projects.edit.submit_cc_by_3plus_html' %>
<%= t 'projects.edit.submit_cdla_permissive_20_html' %>
<%= f.button t('projects.edit.save_and_continue'), type: 'submit', name: 'continue',
value: 'reporting', class:"btn btn-success btn-submit" %>
<%= f.submit t('projects.edit.submit_and_exit'), class:"btn btn-success btn-submit" %>
Expand Down Expand Up @@ -138,7 +138,7 @@
</ul>
<% unless is_disabled %>
<div class="panel-footer text-center">
<%= t 'projects.edit.submit_cc_by_3plus_html' %>
<%= t 'projects.edit.submit_cdla_permissive_20_html' %>
<%= f.button t('projects.edit.save_and_continue'), type: 'submit', name: 'continue',
value: 'quality', class:"btn btn-success btn-submit" %>
<%= f.submit t('projects.edit.submit_and_exit'), class:"btn btn-success btn-submit" %>
Expand Down Expand Up @@ -187,7 +187,7 @@
</ul>
<% unless is_disabled %>
<div class="panel-footer text-center">
<%= t 'projects.edit.submit_cc_by_3plus_html' %>
<%= t 'projects.edit.submit_cdla_permissive_20_html' %>
<%= f.button t('projects.edit.save_and_continue'), type: 'submit', name: 'continue',
value: 'security', class:"btn btn-success btn-submit" %>
<%= f.submit t('projects.edit.submit_and_exit'), class:"btn btn-success btn-submit" %>
Expand Down Expand Up @@ -242,7 +242,7 @@
</ul>
<% unless is_disabled %>
<div class="panel-footer text-center">
<%= t 'projects.edit.submit_cc_by_3plus_html' %>
<%= t 'projects.edit.submit_cdla_permissive_20_html' %>
<%= f.button t('projects.edit.save_and_continue'), type: 'submit', name: 'continue',
value: 'analysis', class:"btn btn-success btn-submit" %>
<%= f.submit t('projects.edit.submit_and_exit'), class:"btn btn-success btn-submit" %>
Expand Down Expand Up @@ -273,7 +273,7 @@
</ul>
<% unless is_disabled %>
<div class="panel-footer text-center">
<%= t 'projects.edit.submit_cc_by_3plus_html' %>
<%= t 'projects.edit.submit_cdla_permissive_20_html' %>
<%= f.button t('projects.edit.save_and_continue'), type: 'submit', name: 'continue',
value: 'future', class:"btn btn-success btn-submit" %>
<%= f.submit t('projects.edit.submit_and_exit'), class:"btn btn-success btn-submit" %>
Expand All @@ -286,16 +286,10 @@
<br>
<div class="center">
<% if is_disabled %>
<% if project.show_entry_license? %>
<%= t 'projects.show.cc_by_3plus_html', user: project.user_display_name %>
<% else %>
<!-- This is older data and the user didn't indicate anything,
so the "terms of use" of CII apply, which said that unless
otherwise noted it's released under CC-BY-3.0 only. -->
<%= t 'projects.show.cc_by_3only_html', user: project.user_display_name %>
<% end %>
<%= t "projects.show.#{project.data_license_field}",
user: project.user_display_name %>
<% else %>
<%= t 'projects.edit.submit_cc_by_3plus_html' %>
<%= t 'projects.edit.submit_cdla_permissive_20_html' %>
<%= f.button t('projects.edit.save_and_continue'), type: 'submit', name: 'continue',
value: 'Save', class:"btn btn-success btn-submit" %>
<%= f.submit t('projects.edit.submit_and_exit'), class:"btn btn-success btn-submit" %>
Expand Down
22 changes: 8 additions & 14 deletions app/views/projects/_form_2.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@

<% unless is_disabled %>
<div class="panel-footer text-center">
<%= t 'projects.edit.submit_cc_by_3plus_html' %>
<%= t 'projects.edit.submit_cdla_permissive_20_html' %>
<%= f.button t('projects.edit.save_and_continue'), type: 'submit', name: 'continue',
value: 'changecontrol', class:"btn btn-success btn-submit" %>
<%= f.submit t('projects.edit.submit_and_exit'), class:"btn btn-success btn-submit" %>
Expand Down Expand Up @@ -96,7 +96,7 @@
</ul>
<% unless is_disabled %>
<div class="panel-footer text-center">
<%= t 'projects.edit.submit_cc_by_3plus_html' %>
<%= t 'projects.edit.submit_cdla_permissive_20_html' %>
<%= f.button t('projects.edit.save_and_continue'), type: 'submit', name: 'continue',
value: 'reporting', class:"btn btn-success btn-submit" %>
<%= f.submit t('projects.edit.submit_and_exit'), class:"btn btn-success btn-submit" %>
Expand Down Expand Up @@ -128,7 +128,7 @@
</ul>
<% unless is_disabled %>
<div class="panel-footer text-center">
<%= t 'projects.edit.submit_cc_by_3plus_html' %>
<%= t 'projects.edit.submit_cdla_permissive_20_html' %>
<%= f.button t('projects.edit.save_and_continue'), type: 'submit', name: 'continue',
value: 'security', class:"btn btn-success btn-submit" %>
<%= f.submit t('projects.edit.submit_and_exit'), class:"btn btn-success btn-submit" %>
Expand Down Expand Up @@ -179,7 +179,7 @@
</ul>
<% unless is_disabled %>
<div class="panel-footer text-center">
<%= t 'projects.edit.submit_cc_by_3plus_html' %>
<%= t 'projects.edit.submit_cdla_permissive_20_html' %>
<%= f.button t('projects.edit.save_and_continue'), type: 'submit', name: 'continue',
value: 'analysis', class:"btn btn-success btn-submit" %>
<%= f.submit t('projects.edit.submit_and_exit'), class:"btn btn-success btn-submit" %>
Expand All @@ -206,7 +206,7 @@
</ul>
<% unless is_disabled %>
<div class="panel-footer text-center">
<%= t 'projects.edit.submit_cc_by_3plus_html' %>
<%= t 'projects.edit.submit_cdla_permissive_20_html' %>
<%= f.button t('projects.edit.save_and_continue'), type: 'submit', name: 'continue',
value: 'future', class:"btn btn-success btn-submit" %>
<%= f.submit t('projects.edit.submit_and_exit'), class:"btn btn-success btn-submit" %>
Expand All @@ -219,16 +219,10 @@
<br>
<div class="center">
<% if is_disabled %>
<% if project.show_entry_license? %>
<%= t 'projects.show.cc_by_3plus_html', user: project.user_display_name %>
<% else %>
<!-- This is older data and the user didn't indicate anything,
so the "terms of use" of CII apply, which said that unless
otherwise noted it's released under CC-BY-3.0 only. -->
<%= t 'projects.show.cc_by_3only_html', user: project.user_display_name %>
<% end %>
<%= t "projects.show.#{project.data_license_field}",
user: project.user_display_name %>
<% else %>
<%= t 'projects.edit.submit_cc_by_3plus_html' %>
<%= t 'projects.edit.submit_cdla_permissive_20_html' %>
<%= f.button t('projects.edit.save_and_continue'), type: 'submit', name: 'continue',
value: 'Save', class:"btn btn-success btn-submit" %>
<%= f.submit t('projects.edit.submit_and_exit'), class:"btn btn-success btn-submit" %>
Expand Down
Loading

0 comments on commit 84c188e

Please sign in to comment.