fsf-license-api.git
8 years agopull: Add licenses-full.json with all the information
W. Trevor King [Sat, 11 Nov 2017 21:20:33 +0000 (13:20 -0800)]
pull: Add licenses-full.json with all the information

I prefer the minimal index (as I explain in the previous commit), but
some consumers need details on multiple licenses and prefer to collect
data with a single network request.  Even with all the data in one
endpoint, I don't expect this to grow to a point where it would be
expensive to serve.  And at the moment, GitHub is donating the server
bandwidth anyway.

Also add anchors to the README so folks can link to the docs for a
specific endpoint.  We need to use the explicit closing tag (vs.
<a name="..." />) to get GitHub to render Markdown in the remainer of
the license-list paragraphs.

8 years agopull: Add {scheme}/{id}.json hardlinks
W. Trevor King [Wed, 25 Oct 2017 18:05:19 +0000 (11:05 -0700)]
pull: Add {scheme}/{id}.json hardlinks

Putting additional metadata in the licenses.json index is a
slippery-slope.  This commit strips it down to an array of IDs, and
*all* per-license metadata must be fetched via a single-license
endpoint.

The new per-scheme links allow folks to retrieve per-license metadata
using their chosen scheme (assuming they trust the mapping maintained
in this API) without having to iterate over licenses.json retrieving
{FSF-id}.json until they find a match.  The OSI API uses the same
approach [1], although they currently have a fatter index [2,3,4,5].

os.link is implemented on Unix and Windows [6].  The ** recursive glob
pattern is new in Python 3.5 [7]; for older Pythons I'm falling back
to two non-recursive glob calls.

[1]: https://github.com/OpenSourceOrg/api/blob/c903651ef26c35202d6561b61b97d29ead1e08c5/doc/endpoints.md#licenseschemeidentifier
[2]: https://github.com/OpenSourceOrg/api/blob/c903651ef26c35202d6561b61b97d29ead1e08c5/doc/endpoints.md#licenses
[3]: https://github.com/OpenSourceOrg/api/blob/c903651ef26c35202d6561b61b97d29ead1e08c5/api.go#L52
[4]: https://github.com/OpenSourceOrg/api/blob/c903651ef26c35202d6561b61b97d29ead1e08c5/reload.go#L28
[5]: https://github.com/OpenSourceOrg/api/blob/c903651ef26c35202d6561b61b97d29ead1e08c5/license/license.go#L67
[6]: https://docs.python.org/3.6/library/os.html#os.link
[7]: https://docs.python.org/3.6/library/glob.html#glob.glob

8 years agoREADME: Slug (non-numeric) link references
W. Trevor King [Wed, 25 Oct 2017 18:15:42 +0000 (11:15 -0700)]
README: Slug (non-numeric) link references

These are easier to maintain as links are inserted into, removed from,
or reordered in the text.

8 years agopull: Add unused-SPLITS check
W. Trevor King [Sun, 22 Oct 2017 23:15:07 +0000 (16:15 -0700)]
pull: Add unused-SPLITS check

8 years agopull: Add unused-IDENTIFIERS check and fix FDL1.1 -> FDLv1.1, etc.
W. Trevor King [Sun, 22 Oct 2017 23:03:48 +0000 (16:03 -0700)]
pull: Add unused-IDENTIFIERS check and fix FDL1.1 -> FDLv1.1, etc.

8 years agoCONTRIBUTING: Link to LICENSE.md
W. Trevor King [Sun, 22 Oct 2017 05:25:21 +0000 (22:25 -0700)]
CONTRIBUTING: Link to LICENSE.md

8 years agoLICENSE: Add the MIT license text
W. Trevor King [Sun, 22 Oct 2017 05:21:37 +0000 (22:21 -0700)]
LICENSE: Add the MIT license text

This is available in a number of places [1,2,3].  I'm not entirely
clear what *its* license is, but presumably copying it verbatim with
changes to the copyright statement is allowed :p.

[1]: https://github.com/spdx/license-list-XML/blob/e5da40e25becb0aa7626d3f62649d2387284a623/src/MIT.xml
[2]: https://opensource.org/licenses/MIT
[3]: https://directory.fsf.org/wiki/License:Expat

8 years agopull: Fix FreeBSD SPDX identifier (to BSD-2-Clause-FreeBSD)
W. Trevor King [Sat, 21 Oct 2017 21:44:50 +0000 (14:44 -0700)]
pull: Fix FreeBSD SPDX identifier (to BSD-2-Clause-FreeBSD)

Based on Kate's list [1].  Looking more closely, the FSF's FreeBSD
text [2] includes the "The views and conclusions..." paragraph that is
unique to the BSD-2-Clause-FreeBSD [3].  The FSF's FreeBSD page [2]
also links [4].

[1]: https://github.com/spdx/license-list-XML/pull/453#issuecomment-338411910
[2]: https://directory.fsf.org/wiki?title=License:FreeBSD
[3]: https://github.com/spdx/license-list-XML/blob/e5da40e25becb0aa7626d3f62649d2387284a623/src/BSD-2-Clause-FreeBSD.xml#L38-L40
[4]: https://www.freebsd.org/copyright/freebsd-license.html

8 years agoREADME: Document this project
W. Trevor King [Fri, 20 Oct 2017 18:15:51 +0000 (11:15 -0700)]
README: Document this project

SPDX-License-Identifier: MIT

8 years agopull: Use sets of licenses in TAGS
W. Trevor King [Fri, 20 Oct 2017 17:46:26 +0000 (10:46 -0700)]
pull: Use sets of licenses in TAGS

Because the FSF considers GPL- and FDL-compatible licenses
free-as-in-libre as well.

8 years agopull: Resolve relative URIs relative to the FSF base
W. Trevor King [Fri, 20 Oct 2017 17:39:34 +0000 (10:39 -0700)]
pull: Resolve relative URIs relative to the FSF base

E.g. we want:

  "uri": "https://www.gnu.org/licenses/agpl.html"

in our output JSON, not:

  "uri": "/licenses/agpl.html"

8 years agopull: Add a script to scrape FSF license IDs, names, and tags
W. Trevor King [Fri, 20 Oct 2017 17:20:04 +0000 (10:20 -0700)]
pull: Add a script to scrape FSF license IDs, names, and tags

We want to use this to lookup FSF tags associated with a given SPDX
license.  The FSF is intestested [1], but maybe not enough to maintain
their own API.  Until they do maintain their own API, stub out a mock
API on their behalf, which we can hand over to them when they're
ready for it.

[1]: https://lists.spdx.org/pipermail/spdx-legal/2017-October/002281.html
     Subject: Issues added based on this weeks Legal Call
     Date: Fri, 13 Oct 2017 10:20:33 -0700
     Message-ID: <021801d34447$9443e280$bccba780$@com>