For one, the problem with React was with the specific limitations and conditions of Facebook's patent grant. These are completely different terms, so I don't see why you'd expect the same response.
Additionally, React is software while GraphQL is a specification. Different types of works require different types of licenses.
The BSD license says I can use the thing being licensed. With a library like React, it's pretty clear what 'use' means. By 'use', they mean they want to allow me to build software with it, so they're granting me all rights necessary to do that. With a specification, though? What does it mean that it grants me the right to use it? There's lots of things you might do with a specification. Did they intend to allow me to implement my own version? If they didn't, I might not have all the rights I need to do so.
This patent grant seems at first glance to be much less aggressive than BSD+patents. It seems to only work if the patent claim being filed is related to GraphQL.
the funny thing is, this means that the patent grant previously shipped with react had basically zero relevance to using react (even after a patent dispute).
I don't understand how this can be a patent. I seem to be infringing on the patent every day whenever I try to navigate through xmls and json files with a friendly API. Can anyone shed some light on how this patent is innovative?
> some people were pushing the unfounded idea that one's usage of react would somehow be impacted by the patent grant.
The idea wasn't unfounded, it was untested. People had worries because of how it looked like it could be used, and people with legal experience that weighed in seemed to have differing opinions on the possible impact. That was a foundation for concern.
what matters are whether patents are registered (public data), not what fb claims.
removing the patent grant only means you are less safe in terms of patents (fb can initiate a suit without penalty), and no more safe in terms of react usage (fb can still revoke your copyright grant at their discretion).
I'm not, by any means, a licensing expert but OWFa (the new spec license) has the following termination clause:
> All rights, grants, and promises made by me to you under this Agreement are terminated if you file, maintain, or voluntarily participate in a lawsuit against me or any person or entity asserting that its Permitted Uses infringe any Granted Claims you would have had the right to enforce had you signed this Agreement, unless that suit was in response to a corresponding suit first brought against you
Wasn't this the problem with the previous BSD + patents license? Not criticizing by any means, I'm genuinely curious.
It's important to note the difference between the specification (now licensed under OWFa) and the implementations (now licensed under MIT).
GraphQL.js and Relay are now basically in the same situation as React. The GraphQL specification however is more general and needs the Patents around it to be specifically granted. The above doesn't do anything but say "if you sue specifically over the rights granted herein then we'll revoke" but that's nothing like as broad as the problematic Patent grant was.
The license is certainly unclear from a layman's perspective.
The text specifically defines "Granted Claims" as "those patent claims that I own or control [...] that are infringed by Permitted Uses." And "I" refers only to the entity granting the patent rights.
So how does "Granted Claims you would have had the right to enforce" make any sense? Does it only apply to co-owners of the patent rights, or something like that?
> The license is certainly unclear from a layman's perspective.
If that's your standard then you'll either be using PD or leaving yourself up to your ears in very very risky code. Most laymen won't understand the full legal implications of something as simple as the BSD licence.
Great news! This follows on the heels of the relicensing of React, Jest, Flow, and Immutable.js. All MIT licensed now. Thank you, Facebook for taking the high road here and putting developers first.
In my opinion this is a lot more important than relicensing React. There are a few libraries that do React's job even better than React. But GraphQL and Relay are a bigger game changer... a 10x improvement compare to the current use of REST for server/client communication.
Are these licensing changes retroactive? If I'm already running Facebook's GraphQL reference implementation, do I have to upgrade to be free of the patent restrictions?
Great question. It applies to the variant of the spec as it exists today when the license was applied. Currently found at http://facebook.github.io/graphql/draft/
GraphQL's reference implementation (GraphQL.js) intends on not just being a great implementation, but also very closely following the spec, so you're in good shape.
Also, GraphQL.js has had a BSD3+PATENTS license until today, which meant you've always had that patent license. Later today I'll be releasing a version of GraphQL.js that is MIT license instead, understanding that the OWFa1.0 applies to all implementations including the reference implementation.
I obviously don't know for certain, but I wouldn't be surprised if it was Matt Mullenweg who framed the issue in a way that resonated well enough with Facebook to make them change their approach to licensing so drastically and swiftly...
> I think Facebook’s clause is actually clearer than many other approaches companies could take, and Facebook has been one of the better open source contributors out there. But we have a lot of problems to tackle, and convincing the world that Facebook’s patent clause is fine isn’t ours to take on. It’s their fight.
That last part summed it up perfectly for me. Facebook may well have been right (and I personally believe they were), but it's their responsibility to prove they're right to the world, not ours.
React has a revokable patent grant, people freak out about it, FB removes the patent grant, everyone rejoices.
GraphQL doesn't have a patent grant, people freak out about it, FB adds a revokable patent grant, everyone rejoices.
What am I missing?