From 84e98d3f03f61c4dacdff070f80f6021732721e7 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Thu, 15 Aug 2019 16:03:07 +0200 Subject: [PATCH 1/6] Add PEP draft for SPDX license expressions Signed-off-by: Philippe Ombredanne --- pep-9999.rst | 155 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 155 insertions(+) create mode 100644 pep-9999.rst diff --git a/pep-9999.rst b/pep-9999.rst new file mode 100644 index 00000000000..d4266fa9d64 --- /dev/null +++ b/pep-9999.rst @@ -0,0 +1,155 @@ +PEP: 9999 +Title: Metadata for Python Software Packages 2.2 +Version: $Revision$ +Last-Modified: $Date$ +Author: Philippe Ombredanne +BDFL-Delegate: +Discussions-To: distutils-sig +Status: +Type: Standards Track +Content-Type: text/x-rst +Created: 15-Aug-2018 +Python-Version: 3.x +Post-History: +Replaces: 566 +Resolution: + +Abstract +======== + +This PEP describes the changes between versions 2.1 and 2.2 of the core +metadata specification for Python packages. Version 2.1 is specified in PEP +566. + +The key and only change introduced in this PEP is how license is documented in +package medata. + +Software is licensed and providing accurate licensing information to Python +packages users is an important matter. Yet, license metadata are limited often +leading to some confusion. + +- There are two overlapping places where a license can be documented leading to + confusion for packagers: license-related `Classifiers` and the `License` + attribute. + +- Furthermore, it is difficult to convey anything but simple licensing using + these two fields. License information expressiveness and clarity when creating + packages will help packagers and users alike. + +License expressions provide a better way to express the license of a +distribution using a well defined syntax and well known license ids from SPDX. + +This PEP was started based on several discussions and in particular: + +- ``_ +- ``_ +- ``_ +- ``_ + +Fields +====== + +The canonical source for the names and semantics of each of the supported +metadata fields is the `Core Metadata Specification`_ document. + +The details for the update to the `Core Metadata Specification`_ document are +in this `Core Metadata Specification pull request`_. + + +New in Version 2.2 +------------------ + +License-Expression (optional) +::::::::::::::::::::::::::::: + +A string containing a license expression using the SPDX license expression +syntax and SPDX-listed license identifiers so that user can express accurately +the licensing of a package in a way that is both easy to read for humans and +easy to process automatically by tools. + +A string containing a license expression using `SPDX license expression syntax and +identifiers `__ that indicates the license(s) covering the +distribution. The license expressions are specified in the `SPDX specification +`_. +SPDX also publishes a companion `list of license ids `_ +for use in license expressions. + +Note: this field is not case sensitive though the normalized representation of +an SPDX license expression has a well defined case. + +Examples:: + + License-Expression: BSD-3-Clause + + License-Expression: MIT OR GPL-2.0-or-later AND (FSFUL AND BSD-2-Clause) + + License-Expression: GPL-3.0-or-later WITH Classpath-Exception-2.0 OR BSD-3-Clause + + +Tools `should` validate that this field contains a valid license expression +and `should` report a warning if the field contains an invalid expression. + + +Changed in Version 2.2 +---------------------- + +License +::::::: + +This field will be deprecated in the future and its documentation has been +updated accordingly. Tools are encouraged to provide a warning when this field +is used. + +Classifiers +::::::::::: + +The use of license-related classifiers in this field will be deprecated in the +future and its documentation has been updated accordingly. Tools are encouraged +to provide a warning when this field is used with license-related classifiers. + + +Summary of Differences From PEP 566 +=================================== + +* Metadata-Version is now 2.2. + +* Added one new field: ``License-Expression`` + +* Updated the documentation of two fields: ``License`` and ``Classifiers`` + + +References +========== + +This document specifies version 2.2 of the metadata format. +Version 1.0 is specified in PEP 241. +Version 1.1 is specified in PEP 314. +Version 1.2 is specified in PEP 345. +Version 2.0, while not formally accepted, was specified in PEP 426. +Version 2.1 is specified in PEP 566. + +.. _`Core Metadata Specification`: + https://packaging.python.org/specifications/core-metadata/ + +.. _`Core Metadata Specification pull request`: + https://github.com/pypa/packaging.python.org/pull/635/ + + +Copyright +========= + +This document has been placed in the public domain. + + +Acknowledgements +================ + + + +.. + Local Variables: + mode: indented-text + indent-tabs-mode: nil + sentence-end-double-space: t + fill-column: 80 + End: From a7c8efc110208322abdff23197cf20d0f48eabc3 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Thu, 15 Aug 2019 16:07:07 +0200 Subject: [PATCH 2/6] Add reference to another license-related ticket https://github.com/pypa/packaging-problems/issues/41 Signed-off-by: Philippe Ombredanne --- pep-9999.rst | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/pep-9999.rst b/pep-9999.rst index d4266fa9d64..7c41838037f 100644 --- a/pep-9999.rst +++ b/pep-9999.rst @@ -41,10 +41,12 @@ distribution using a well defined syntax and well known license ids from SPDX. This PEP was started based on several discussions and in particular: -- ``_ -- ``_ -- ``_ -- ``_ +- ``_ +- ``_ +- ``_ +- ``_ +- ``_ + Fields ====== From ce880d2f55cd1ee118019899c5a3d9ad106ce2c5 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Thu, 15 Aug 2019 16:22:51 +0200 Subject: [PATCH 3/6] Add proper Draft status Signed-off-by: Philippe Ombredanne --- pep-9999.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pep-9999.rst b/pep-9999.rst index 7c41838037f..ba94b80021e 100644 --- a/pep-9999.rst +++ b/pep-9999.rst @@ -5,7 +5,7 @@ Last-Modified: $Date$ Author: Philippe Ombredanne BDFL-Delegate: Discussions-To: distutils-sig -Status: +Status: Draft Type: Standards Track Content-Type: text/x-rst Created: 15-Aug-2018 From 795ffaaaf5b1d0cea2ad335d30a91a7d00ed94c3 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Thu, 15 Aug 2019 16:56:19 +0200 Subject: [PATCH 4/6] Direct PEP discussions to discuss.python.org Signed-off-by: Philippe Ombredanne --- pep-9999.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pep-9999.rst b/pep-9999.rst index ba94b80021e..64e76e57a11 100644 --- a/pep-9999.rst +++ b/pep-9999.rst @@ -4,7 +4,7 @@ Version: $Revision$ Last-Modified: $Date$ Author: Philippe Ombredanne BDFL-Delegate: -Discussions-To: distutils-sig +Discussions-To: https://discuss.python.org/t/improving-license-clarity-with-better-package-metadata Status: Draft Type: Standards Track Content-Type: text/x-rst From 68f0b045d9637ee982140b25b8b25a7e23773c7d Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Thu, 15 Aug 2019 18:10:54 +0200 Subject: [PATCH 5/6] Adopt latest PEP copyright conventions Reported-by: Aliaksei Urbanski @Jamim Signed-off-by: Philippe Ombredanne --- pep-9999.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pep-9999.rst b/pep-9999.rst index 64e76e57a11..59cf675aa30 100644 --- a/pep-9999.rst +++ b/pep-9999.rst @@ -140,7 +140,8 @@ Version 2.1 is specified in PEP 566. Copyright ========= -This document has been placed in the public domain. +This document is placed in the public domain or under the +CC0-1.0-Universal license, whichever is more permissive. Acknowledgements From 5e11d3741d8d1f392e5175bc0027a36b457e482d Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Thu, 15 Aug 2019 19:48:23 +0200 Subject: [PATCH 6/6] Add @pf_moore as BDFL delegate. And fix minor typo Signed-off-by: Philippe Ombredanne --- pep-9999.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pep-9999.rst b/pep-9999.rst index 59cf675aa30..104ce6dc60b 100644 --- a/pep-9999.rst +++ b/pep-9999.rst @@ -2,8 +2,8 @@ PEP: 9999 Title: Metadata for Python Software Packages 2.2 Version: $Revision$ Last-Modified: $Date$ -Author: Philippe Ombredanne -BDFL-Delegate: +Author: Philippe Ombredanne +BDFL-Delegate: Paul Moore Discussions-To: https://discuss.python.org/t/improving-license-clarity-with-better-package-metadata Status: Draft Type: Standards Track @@ -22,7 +22,7 @@ metadata specification for Python packages. Version 2.1 is specified in PEP 566. The key and only change introduced in this PEP is how license is documented in -package medata. +package metadata. Software is licensed and providing accurate licensing information to Python packages users is an important matter. Yet, license metadata are limited often