From 794c2fe5df47da42c47d12e995cedec8f5ca039a Mon Sep 17 00:00:00 2001 From: Lee Byron Date: Tue, 1 Jul 2025 14:20:54 -0700 Subject: [PATCH 1/2] Pull copyright and license into repo-level LICENSE.md --- LICENSE.md | 35 +++++++++++++++++++++++++++++++++++ package.json | 2 +- spec/GraphQL.md | 36 +----------------------------------- 3 files changed, 37 insertions(+), 36 deletions(-) create mode 100644 LICENSE.md diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 000000000..e4a7cd970 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,35 @@ +**Copyright Notice** + +Copyright © 2015-2018, Facebook, Inc. + +Copyright © 2019-present, GraphQL contributors + +THESE MATERIALS ARE PROVIDED “AS IS”. The parties expressly disclaim any +warranties (express, implied, or otherwise), including implied warranties of +merchantability, non-infringement, fitness for a particular purpose, or title, +related to the materials. The entire risk as to implementing or otherwise using +the materials is assumed by the implementer and user. IN NO EVENT WILL THE +PARTIES BE LIABLE TO ANY OTHER PARTY FOR LOST PROFITS OR ANY FORM OF INDIRECT, +SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER FROM ANY CAUSES +OF ACTION OF ANY KIND WITH RESPECT TO THIS DELIVERABLE OR ITS GOVERNING +AGREEMENT, WHETHER BASED ON BREACH OF CONTRACT, TORT (INCLUDING NEGLIGENCE), OR +OTHERWISE, AND WHETHER OR NOT THE OTHER MEMBER HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + +**Licensing** + +The GraphQL Specification Project is made available by the +[Joint Development Foundation](https://www.jointdevelopment.org/). The current +[Working Group](https://github.com/graphql/graphql-wg) charter, which includes +the IP policy governing all working group deliverables (including +specifications, source code, and datasets) may be found at +[https://technical-charter.graphql.org](https://technical-charter.graphql.org). + +Currently, the licenses governing GraphQL Specification Project deliverables +are: + +| Deliverable | License | +| -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| Specifications | [Open Web Foundation Agreement 1.0 (Patent and Copyright Grants)](https://www.openwebfoundation.org/the-agreements/the-owf-1-0-agreements-granted-claims/owfa-1-0) | +| Source code | [MIT License](https://opensource.org/licenses/MIT) | +| Data sets | [CC0 1.0](https://creativecommons.org/publicdomain/zero/1.0/) | diff --git a/package.json b/package.json index afca0f11e..7a4185ff6 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ }, "scripts": { "test": "npm run test:spelling && npm run test:format && npm run test:build", - "test:spelling": "cspell \"spec/**/*.md\" README.md", + "test:spelling": "cspell \"spec/**/*.md\" README.md LICENSE.md", "format": "prettier --write \"**/*.{md,yml,yaml,json}\"", "test:format": "prettier --check \"**/*.{md,yml,yaml,json}\" || npm run suggest:format", "test:algorithm-format": "node .github/algorithm-format-check.mjs", diff --git a/spec/GraphQL.md b/spec/GraphQL.md index 51cb13577..9551cd25f 100644 --- a/spec/GraphQL.md +++ b/spec/GraphQL.md @@ -26,41 +26,7 @@ specification can be found at permalinks that match their working draft release can be found at [https://spec.graphql.org/draft](https://spec.graphql.org/draft). -**Copyright Notice** - -Copyright © 2015-2018, Facebook, Inc. - -Copyright © 2019-present, GraphQL contributors - -THESE MATERIALS ARE PROVIDED “AS IS”. The parties expressly disclaim any -warranties (express, implied, or otherwise), including implied warranties of -merchantability, non-infringement, fitness for a particular purpose, or title, -related to the materials. The entire risk as to implementing or otherwise using -the materials is assumed by the implementer and user. IN NO EVENT WILL THE -PARTIES BE LIABLE TO ANY OTHER PARTY FOR LOST PROFITS OR ANY FORM OF INDIRECT, -SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER FROM ANY CAUSES -OF ACTION OF ANY KIND WITH RESPECT TO THIS DELIVERABLE OR ITS GOVERNING -AGREEMENT, WHETHER BASED ON BREACH OF CONTRACT, TORT (INCLUDING NEGLIGENCE), OR -OTHERWISE, AND WHETHER OR NOT THE OTHER MEMBER HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -**Licensing** - -The GraphQL Specification Project is made available by the -[Joint Development Foundation](https://www.jointdevelopment.org/). The current -[Working Group](https://github.com/graphql/graphql-wg) charter, which includes -the IP policy governing all working group deliverables (including -specifications, source code, and datasets) may be found at -[https://technical-charter.graphql.org](https://technical-charter.graphql.org). - -Currently, the licenses governing GraphQL Specification Project deliverables -are: - -| Deliverable | License | -| -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Specifications | [Open Web Foundation Agreement 1.0 (Patent and Copyright Grants)](https://www.openwebfoundation.org/the-agreements/the-owf-1-0-agreements-granted-claims/owfa-1-0) | -| Source code | [MIT License](https://opensource.org/licenses/MIT) | -| Data sets | [CC0 1.0](https://creativecommons.org/publicdomain/zero/1.0/) | +# [LICENSE](../LICENSE.md) **Conformance** From 62e5c1ffe9ac01ccc51a9533672aaa18a712b6ba Mon Sep 17 00:00:00 2001 From: Lee Byron Date: Tue, 1 Jul 2025 16:49:29 -0700 Subject: [PATCH 2/2] Move to an appendix and reformat introduction --- LICENSE.md | 19 ++-- spec/Appendix D -- Conformance & Licensing.md | 64 +++++++++++++ spec/GraphQL.md | 96 +++++-------------- 3 files changed, 96 insertions(+), 83 deletions(-) create mode 100644 spec/Appendix D -- Conformance & Licensing.md diff --git a/LICENSE.md b/LICENSE.md index e4a7cd970..ebeab4db0 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,3 +1,12 @@ +## Copyright and Licensing + +The GraphQL Specification Project is made available by the +[Joint Development Foundation](https://www.jointdevelopment.org/). The current +[Working Group](https://github.com/graphql/graphql-wg) charter, which includes +the IP policy governing all working group deliverables (including +specifications, source code, and datasets) may be found at +[https://technical-charter.graphql.org](https://technical-charter.graphql.org). + **Copyright Notice** Copyright © 2015-2018, Facebook, Inc. @@ -18,15 +27,7 @@ POSSIBILITY OF SUCH DAMAGE. **Licensing** -The GraphQL Specification Project is made available by the -[Joint Development Foundation](https://www.jointdevelopment.org/). The current -[Working Group](https://github.com/graphql/graphql-wg) charter, which includes -the IP policy governing all working group deliverables (including -specifications, source code, and datasets) may be found at -[https://technical-charter.graphql.org](https://technical-charter.graphql.org). - -Currently, the licenses governing GraphQL Specification Project deliverables -are: +The licenses for the GraphQL Specification Project are: | Deliverable | License | | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | diff --git a/spec/Appendix D -- Conformance & Licensing.md b/spec/Appendix D -- Conformance & Licensing.md new file mode 100644 index 000000000..0ff79ba65 --- /dev/null +++ b/spec/Appendix D -- Conformance & Licensing.md @@ -0,0 +1,64 @@ +# D. Appendix: Conformance & Licensing + +## Conformance + +A conforming implementation of GraphQL must fulfill all normative requirements. +Conformance requirements are described in this document via both descriptive +assertions and key words with clearly defined meanings. + +The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", +"SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in the normative portions of +this document are to be interpreted as described in +[IETF RFC 2119](https://tools.ietf.org/html/rfc2119). These key words may appear +in lowercase and still retain their meaning unless explicitly declared as +non-normative. + +A conforming implementation of GraphQL may provide additional functionality, but +must not where explicitly disallowed or would otherwise result in +non-conformance. + +**Conforming Algorithms** + +Algorithm steps phrased in imperative grammar (e.g. "Return the result of +calling resolver") are to be interpreted with the same level of requirement as +the algorithm it is contained within. Any algorithm referenced within an +algorithm step (e.g. "Let completedResult be the result of calling +CompleteValue()") is to be interpreted as having at least the same level of +requirement as the algorithm containing that step. + +Conformance requirements expressed as algorithms and data collections can be +fulfilled by an implementation of this specification in any way as long as the +perceived result is equivalent. Algorithms described in this document are +written to be easy to understand. Implementers are encouraged to include +equivalent but optimized implementations. + +See [Appendix A](#sec-Appendix-Notation-Conventions) for more details about the +definition of algorithms, data collections, and other notational conventions +used in this document. + +**Non-Normative Portions** + +All contents of this document are normative except portions explicitly declared +as non-normative. + +Examples in this document are non-normative, and are presented to aid +understanding of introduced concepts and the behavior of normative portions of +the specification. Examples are either introduced explicitly in prose (e.g. "for +example") or are set apart in example or counter-example blocks, like this: + +```example +This is an example of a non-normative example. +``` + +```counter-example +This is an example of a non-normative counter-example. +``` + +Notes in this document are non-normative, and are presented to clarify intent, +draw attention to potential edge-cases and pit-falls, and answer common +questions that arise during implementation. Notes are either introduced +explicitly in prose (e.g. "Note: ") or are set apart in a note block, like this: + +Note: This is an example of a non-normative note. + +## [LICENSE](../LICENSE.md) diff --git a/spec/GraphQL.md b/spec/GraphQL.md index 9551cd25f..b924cb0b0 100644 --- a/spec/GraphQL.md +++ b/spec/GraphQL.md @@ -4,91 +4,37 @@ _Current Working Draft_ **Introduction** -This is the specification for GraphQL, a query language and execution engine -originally created at Facebook in 2012 for describing the capabilities and -requirements of data models for client-server applications. The development of -this open standard started in 2015. This specification was licensed under OWFa -1.0 in 2017. The [GraphQL Foundation](https://graphql.org/foundation/) was -formed in 2019 as a neutral focal point for organizations who support the -GraphQL ecosystem, and the +This is the specification for GraphQL, a query language and execution engine for +describing and performing the capabilities and requirements of data models for +client-server applications. + +GraphQL was originally created in 2012 and the development of this open standard +started in 2015. This specification was licensed under OWFa 1.0 in 2017 (see +[Licensing](#sec-Copyright-and-Licensing)). The +[GraphQL Foundation](https://graphql.org/foundation/) was formed in 2019 as a +neutral focal point for organizations who support the GraphQL ecosystem, and the [GraphQL Specification Project](https://graphql.org/community/) was established also in 2019 as the Joint Development Foundation Projects, LLC, GraphQL Series. - If your organization benefits from GraphQL, please consider [becoming a member](https://graphql.org/foundation/join/#graphql-foundation) and helping us to sustain the activities that support the health of our neutral ecosystem. -The GraphQL Specification Project has evolved and may continue to evolve in -future editions of this specification. Previous editions of the GraphQL -specification can be found at permalinks that match their +This specification is developed on GitHub at +[graphql/graphql-spec](https://github.com/graphql/graphql-spec/). Contributions +are managed by the +[GraphQL Working Group](https://github.com/graphql/graphql-wg), hosted by the +[GraphQL TSC](https://github.com/graphql/graphql-wg/blob/main/GraphQL-TSC.md). +To learn more see the +[contribution guide](https://github.com/graphql/graphql-spec/blob/main/CONTRIBUTING.md). + +GraphQL has evolved and may continue to evolve in future editions of this +specification. Previous editions of the GraphQL specification can be found at +permalinks that match their [release tag](https://github.com/graphql/graphql-spec/releases). The latest working draft release can be found at [https://spec.graphql.org/draft](https://spec.graphql.org/draft). -# [LICENSE](../LICENSE.md) - -**Conformance** - -A conforming implementation of GraphQL must fulfill all normative requirements. -Conformance requirements are described in this document via both descriptive -assertions and key words with clearly defined meanings. - -The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", -"SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in the normative portions of -this document are to be interpreted as described in -[IETF RFC 2119](https://tools.ietf.org/html/rfc2119). These key words may appear -in lowercase and still retain their meaning unless explicitly declared as -non-normative. - -A conforming implementation of GraphQL may provide additional functionality, but -must not where explicitly disallowed or would otherwise result in -non-conformance. - -**Conforming Algorithms** - -Algorithm steps phrased in imperative grammar (e.g. "Return the result of -calling resolver") are to be interpreted with the same level of requirement as -the algorithm it is contained within. Any algorithm referenced within an -algorithm step (e.g. "Let completedResult be the result of calling -CompleteValue()") is to be interpreted as having at least the same level of -requirement as the algorithm containing that step. - -Conformance requirements expressed as algorithms and data collections can be -fulfilled by an implementation of this specification in any way as long as the -perceived result is equivalent. Algorithms described in this document are -written to be easy to understand. Implementers are encouraged to include -equivalent but optimized implementations. - -See [Appendix A](#sec-Appendix-Notation-Conventions) for more details about the -definition of algorithms, data collections, and other notational conventions -used in this document. - -**Non-Normative Portions** - -All contents of this document are normative except portions explicitly declared -as non-normative. - -Examples in this document are non-normative, and are presented to aid -understanding of introduced concepts and the behavior of normative portions of -the specification. Examples are either introduced explicitly in prose (e.g. "for -example") or are set apart in example or counter-example blocks, like this: - -```example -This is an example of a non-normative example. -``` - -```counter-example -This is an example of a non-normative counter-example. -``` - -Notes in this document are non-normative, and are presented to clarify intent, -draw attention to potential edge-cases and pit-falls, and answer common -questions that arise during implementation. Notes are either introduced -explicitly in prose (e.g. "Note: ") or are set apart in a note block, like this: - -Note: This is an example of a non-normative note. - # [Overview](Section%201%20--%20Overview.md) # [Language](Section%202%20--%20Language.md) @@ -108,3 +54,5 @@ Note: This is an example of a non-normative note. # [Appendix: Grammar Summary](Appendix%20B%20--%20Grammar%20Summary.md) # [Appendix: Specified Definitions](Appendix%20C%20--%20Specified%20Definitions.md) + +# [Appendix: Conformance & Licensing](Appendix%20D%20--%20Conformance%20&%20Licensing.md)