Skip to content
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

Schemas and other data are public domain #1173

Closed
wants to merge 13 commits into from

Conversation

awwright
Copy link
Member

A remedy for #1160.

@karenetheridge
Copy link
Member

  • does the filename UNLICENSE have any special meaning in that it is not a LICENSE?
  • I would put this file in the root of the repository, rather than in meta/, as the main schema file is in the root as schema.json. It will also be much more visible there to casual browsers of the repo.

@awwright
Copy link
Member Author

does the filename UNLICENSE have any special meaning in that it is not a LICENSE?

I think the name is to emphasize that, to the extent it is acting as a license, that it's not intending to be one. I've found that GitHub recognizes the filename. But it doesn't matter either way.

I would put this file in the root of the repository

To me, I would read this, and it would imply it's authoritative for all the content in the entire repository, but this isn't correct.

@karenetheridge
Copy link
Member

To me, I would read this, and it would imply it's authoritative for all the content in the entire repository, but this isn't correct.

The file should either say explicitly which files it applies to, or be rewritten so it does apply to all files.

I feel that if the file is not in the root it will not be seen, and certainly not be understood to apply to /schema.json.

@Relequestual
Copy link
Member

Relequestual commented Jan 17, 2022

I think this is fine, but let's add it to the agenda for our upcoming Open Community Working Meeting call (for which I have yet to create an issue... on it now and will update).

I'm not keen on the file name. It just, is odd. Interesting that GitHub recognise it.

I see you're using the "unlicense" license, which is OSI regonised and approved, as opposed to some statements about public domain.

@Relequestual
Copy link
Member

@karenetheridge do you use schemas in the output directory too?
If so, we will need the licence and readme there also.

@awwright
Copy link
Member Author

The file should either say explicitly which files it applies to, or be rewritten so it does apply to all files.

It's uncommon to modify the actual contents of the license file, and probably discouraged for possible legal complications that none of us can foresee. I think it's best if README.md describe which files are provided under which license. We can then include the text of each license to remove any remaining ambiguity.

I feel that if the file is not in the root it will not be seen, and certainly not be understood to apply to /schema.json.

I think it can be buried somewhat if that helps clarify its scope; it's more important that we be unambiguous. We can also specify: "As attached in the meta/UNLICENSE file in this repository." (Or "As attached in LICENSE.Unlicense", or whatever the filename is.)

@karenetheridge
Copy link
Member

I think it's best if README.md describe which files are provided under which license

Yup, it can't hurt to be explicit :)

I think it can be buried somewhat if that helps clarify its scope

Yes, but part of my point was that burying a licence file in meta/ would be wrong if we intend it to apply to /schema.json as well.

@karenetheridge do you use schemas in the output directory too?

I would assume that all the schema files would apply under the same licence.

Perhaps we should move them all to a common subdirectory. Then there can be a LICENSE file in that subdirectory, along with a README that clearly states that the licence is intended to apply to those files.

@jdesrosiers jdesrosiers changed the base branch from draft-next to main July 8, 2022 15:31
@jdesrosiers
Copy link
Member

The draft-next branch has been merged and is now closed. The merge target for this PR has been changed to main. Here are the recommended steps to get your branch reabsed properly.

  1. Make sure your remote for the json-schema-org/json-schema-spec repo is up-to-date. (Example: git fetch upstream).
  2. Rebase your commits onto main. (Example: git rebase --onto upstream/main abcd123~1 (replace abcd123 with the commit hash of the first commit in your PR)).
  3. Force push the rebased branch to your fork. (Example: git push --force origin my-branch).

@Julian
Copy link
Member

Julian commented Jul 12, 2022

#1255 covers the non-data related portion of #1160 (and so is related).

@handrews
Copy link
Contributor

@awwright @Julian is this an alternative to #1255 or is it complementary?
Austin, can you rebase/recreate/whatever this onto main so the diff is readable without having to dig out the individual commit?

@Julian
Copy link
Member

Julian commented Aug 15, 2022

This one was before we got guidance from OpenJS legal. It's still possibly relevant though if we want an even more liberal licence for the schemas than for the rest of the repo.

@karenetheridge
Copy link
Member

I just looked at this again. This bit causes me concern:

Anyone is free to copy, modify, publish, use, compile, sell, or distribute this software

How would we feel if someone took the main metaschema, modified it (say to change the semantics for a keyword they didn't like), and then published it in their implementation without changing the $id? That would cause confusion among any who used that implementation, and surely is something we would ask the author to stop doing. Can we avoid that by spelling out that the files can be redistributed but not altered?

@ljharb
Copy link

ljharb commented Aug 29, 2022

That's how open source works; nothing stops someone from doing that - but in practice, who would actually care about the knockoff?

@handrews
Copy link
Contributor

Can we avoid that by spelling out that the files can be redistributed but not altered?

I think one of the Creative Commons variations might do that.

@gregsdennis
Copy link
Member

who would actually care about the knockoff?

If the knockoff is an implementation like ajv (which already does some roguish things), the impact could be significant.

@handrews
Copy link
Contributor

If the knockoff is an implementation like ajv (which already does some roguish things), the impact could be significant.

That's a good point. We should probably be better about defining what it means to claim you implement JSON Schema. Which is not a spec thing, but is a thing the JSON Schema Org should think about. At this point, what AJV implements by default (without having to reconfigure it) is not JSON Schema despite the claims, and it's a problem.

@ljharb
Copy link

ljharb commented Aug 29, 2022

If a deviation is sufficiently useful that it gains adoption, then perhaps that’s a strong signal that the spec should incorporate it.

@handrews
Copy link
Contributor

@ljharb not if the deviations results in a constant stream of people showing up asking us why their schema that ought to work doesn't work. AJV is one implementation, no matter how popular. We don't get people showing up in the slack asking for more implementations to act like it, but we do get a lot of people who are confused and annoyed.

@handrews
Copy link
Contributor

We've adopted quite a few innovations from the community, including AJV (which played a large role in the adoption of if/then/else). But those adoptions are due to broader demand beyond any one implementation.

@Julian
Copy link
Member

Julian commented Aug 29, 2022

(Any language or license that limits peoples' ability to create derivative works from official metaschemas is going to cause issues for people creating metaschemas we do want them to create, i.e. ones where they do indeed change $id and add stuff, or modify stuff, or use what we produce as a baseline, etc. So I too would oppose any restrictions there personally, for whatever my vote counts.)

@handrews
Copy link
Contributor

@Julian the language would be tied to the $id value. Other people shouldn't publish json-schema.org identifiers.

@Julian
Copy link
Member

Julian commented Aug 29, 2022

I still think such a thing would cause issues personally. Any custom language typically does for e.g. corporate users.

@handrews
Copy link
Contributor

Any custom language

  1. That's overly vague, let's talk about specifics
  2. There are many licenses covering many usage patterns, it need not be "custom" (we shouldn't be writing custom legal language without a lawyer)

The things to consider are:

  • Can you use a json-schema.org-identified schema (JSOIS) in a for-profit application? Yes
  • Can you redistribute an unmodified JSOIS in a for-profit application? Yes
  • Can you create a derivation of a JSOIS that does not use json-schema.org in its $id and do anything you want with it? Yes
  • Can you non-functionally modify (e.g. minify or otherwise reformat) a JSOIS and use/redistribute it just as the original? Yes
  • Can you functionally modify a JSOIS and re-publish it with the same $id? No
  • Can you create a new schema with a json-schema.org $id and publish it? No

@Julian
Copy link
Member

Julian commented Aug 29, 2022

I've shared my opinion. Feel free to have your own or disregard mine, but I stand by what I said.

EDIT: by which I mean any such language that would limit someone's use of $id is what I mean by custom, even if written by a lawyer.

@handrews
Copy link
Contributor

I'd be interested in hearing from any FOSS compliance people on whether the approach I sketched out would cause any problems.

I'm not dead set on these restrictions, but it's worth considering, and perhaps checking to see if the OpenJS Foundation has any resources or advice to consider.

@Julian
Copy link
Member

Julian commented Aug 29, 2022

Yep that definitely seems reasonable to me too. (Obviously they will ask about what license the existing ones are under, which I'd suspect would be presumed to be BSD like the documents).

@gregoa
Copy link

gregoa commented Oct 11, 2022 via email

@awwright awwright closed this Feb 28, 2023
@awwright awwright deleted the draft-next branch February 28, 2023 06:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants