-
Notifications
You must be signed in to change notification settings - Fork 140
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
App. X: Define custom license namespaces #209
Conversation
This commit is an initial attempt to define the custom license namespace concept that was agreed upon in Spring 2019, as reflected in spdx#113 and tech team minutes, but was not subsequently specified. Signed-off-by: Steve Winslow <steve@swinslow.net>
@swinslow Thanks for pulling this together! A nicely detailed proposal. It would be good to have the legal team review - especially Mark Atwood who made the original proposal. I recall 2 separate discussions which would impact the proposal. I can't find the notes on the exact discussions, so this is a bit from memory. I'm hoping some folks on the tech or legal team can provide a bit more detail.
|
As I recall, we had discussed two (independent) license namespaces:
The former was called dash-dot and the latter dash-dash, from the characters following |
Hi @goneall and @zvr, thanks for your comments. I agree, in #113 we had at least originally discussed having a second format option which was a "flat" or organization-name-based namespace as well. I had omitted it from the draft here, because to @zvr's point I don't think we had worked our a process where that would be authenticated or managed. For DNS names, it's pretty much an objective check to see -- a yes/no of whether or not the URL they're seeking to register is within the domain name from the DNS entry. For an organization name, it's more of a subjective question of, do we know that this person represents XYZ organization or company? Maybe that's acceptable, I'd just feel better if we had a process in place for overseeing this (or at least agreement on who would handle it). @goneall, thanks for the details on your understanding of registration being optional for DNS identifiers. I guess my question then is, how people would be able to derive the actual license text -- if all they have is a DNS-based identifier, but it's unregistered so there is no link back to an SPDX document with the license text. Maybe that's something we can discuss during the joint call tomorrow. |
cc @jlovejoy -- apologies, I meant to include you in the list of mass-cc's at the top of this pull request! This is my draft proposal for the "license list namespace" writeup, to implement what we'd discussed and agreed on last year. Grateful if you are able to weigh in as well, if you have input here. |
3. any other characters permitted by the license expression syntax (e.g., letters, digits, "-" and ".") | ||
|
||
For example, for the `example.com` namespace, the following could be valid identifiers: | ||
* `LicenseRef-.example.com.-XYZ-1.0` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Suggested on tech team call - also recommend that "--" and "-." should not be used for LicenseRef's that aren't part of namespaces.
Important to define hierarchy of resolution
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Syntax should be both accessible, obvious, intuitive, compatible and automatable
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is still open, and subject to outcome of conversation in the main thread.
An alternative proposal - we could use the external document referenced licenseRef's as defined in the License Expresions Appendix - Simple License Expressions. We could use a custom syntax for the External Document Ref to denote a "registered external document" containing licenses. |
Proposals from 2020-03-03 tech team call (thanks @zvr!):
look up \2 in namespace \1 |
Updated proposal from the call:
Examples:
The two examples above would both refer to the same external list of licenses. |
[comment can be disregarded; had it opened for too long while on phonecalls and @goneall already provided the info] |
Could we swap it around? with
That way |
@swinslow you raise a good point about making it easier to parse (both for computers and humans). Since the I think the cleanest approach would be to require the
If we don't require the
I'm OK with not requiring the |
Thanks @goneall. Appreciate you spelling these out. I'm in favor of the first of the two formats you proposed, using the appropriate prefix to indicate which type of reference it is. I do feel that the "namespace+colon without other prefix" makes the custom identifiers look too similar to official identifiers that are on the license list. I think it's a plus, not a minus, that the |
Actually, we could have it both ways:
This way the "NamespaceRef-" prefix is optional. Example in a source file:
|
Heh, of course if we go by my comment above, there is nothing stopping us from saying that the fourth alternative is actually:
since the presence of the colon signifies a non-standard namespace, which makes the need for the "LicenseRef-" prefix redundant. To put it another way, if |
I really think it needs to be crystal-clear to people about whether they're using a curated license identifier that's on the SPDX License List, or a custom license namespace. If it's on the License List then they know that it's been vetted, it has a stable URL and a settled reference text / markup. If it's a custom namespace then anyone using it is buying into the controller of that namespace being able to change its meaning at their whim. I'm really concerned about an assumption that the broader community will be able to distinguish between the implications of these two very different cases, just based on the presence of a colon. I'd strongly encourage that the custom namespace route have something that makes it really explicit, to a casual observer, that it's not an official and vetted license / identifier. That's why I'm a fan of something that puts (cc @jlovejoy for visibility) |
This is true for the syntax within the SPDX document making the external reference. The proposed solution for finding the actual text of the referenced licenses is to use SPDX documents. If we use an SPDX document to document the licenses referenced by the namespace, they would need to be preceeded by |
This updates the license namespace proposal to incorporate the second "organization name" format, as well as making some other conforming changes. Signed-off-by: Steve Winslow <steve@swinslow.net>
Signed-off-by: Steve Winslow <steve@swinslow.net>
All, I've updated the PR to add in the second, "organization name" format, and made some other conforming changes. I believe the only remaining open issue is whether to use the identifier format that was agreed upon last year, or whether to change it to something else (such as by incorporating My guess is that if we are taking one of those different approaches, there will need to be more extensive changes to e.g. the license expression syntax and grammar, as well as getting buy-in from the legal team on another joint legal/tech call. So I'd suggest that if we want to go that route, then we defer all of this to 3.0. I'm not sure what the timing looks like for 2.2, but if we want to add this in the near-term then I'd encourage we use the format that is described here, since (I think) it won't require those sort of further changes and discussions. |
Based on discussions on the call today, there is strong support for Namespace- proposal, and possibly using ":" symbol to separate. Alexios has volunteered to write up a pull request for this in 3.0, and Steve has volunteered to help, and coordinate with legal team. Since this seems to be the direction, we'll close this for 2.2 and not apply. |
This commit is an initial attempt to define the custom license namespace concept that was agreed upon in Spring 2019, as reflected in #113 and tech team minutes, but which was not subsequently specified.
This defines the DNS-style version of the
LicenseRef-
format. It also describes the process for a namespace maintainer to create and publish an SPDX document at a URL within that domain, where anyone can find the license text corresponding to each identifier defined within that namespace.This is a first cut to capture discussions from nearly a year ago, and I am sure that things could be worded better. Please, please throw rocks at it. :) cc @goneall @kestewart @MarkAtwood @pombredanne @zvr @tsteenbe @iamwillbar as well as anyone else who wants to weigh in.
Fixes #113
Signed-off-by: Steve Winslow steve@swinslow.net