Skip to content

Commit cd0b8bd

Browse files
authored
Pull copyright and license into repo-level LICENSE.md (#1172)
* Pull copyright and license into repo-level LICENSE.md * Move to an appendix and reformat introduction * feedback and reorder * tweak
1 parent 1e29b8a commit cd0b8bd

8 files changed

+139
-123
lines changed

LICENSE.md

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# Appendix: Copyright and Licensing
2+
3+
The GraphQL Specification Project is made available by the
4+
[Joint Development Foundation](https://www.jointdevelopment.org/) Projects, LLC,
5+
GraphQL Series. The current
6+
[Working Group](https://github.com/graphql/graphql-wg) charter, which includes
7+
the IP policy governing all working group deliverables (including
8+
specifications, source code, and datasets) may be found at
9+
[https://technical-charter.graphql.org](https://technical-charter.graphql.org).
10+
11+
**Copyright Notice**
12+
13+
Copyright © 2015-2018, Facebook, Inc.
14+
15+
Copyright © 2019-present, GraphQL contributors
16+
17+
THESE MATERIALS ARE PROVIDED “AS IS”. The parties expressly disclaim any
18+
warranties (express, implied, or otherwise), including implied warranties of
19+
merchantability, non-infringement, fitness for a particular purpose, or title,
20+
related to the materials. The entire risk as to implementing or otherwise using
21+
the materials is assumed by the implementer and user. IN NO EVENT WILL THE
22+
PARTIES BE LIABLE TO ANY OTHER PARTY FOR LOST PROFITS OR ANY FORM OF INDIRECT,
23+
SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER FROM ANY CAUSES
24+
OF ACTION OF ANY KIND WITH RESPECT TO THIS DELIVERABLE OR ITS GOVERNING
25+
AGREEMENT, WHETHER BASED ON BREACH OF CONTRACT, TORT (INCLUDING NEGLIGENCE), OR
26+
OTHERWISE, AND WHETHER OR NOT THE OTHER MEMBER HAS BEEN ADVISED OF THE
27+
POSSIBILITY OF SUCH DAMAGE.
28+
29+
**Licensing**
30+
31+
The licenses for the GraphQL Specification Project are:
32+
33+
| Deliverable | License |
34+
| -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
35+
| 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) |
36+
| Source code | [MIT License](https://opensource.org/licenses/MIT) |
37+
| Data sets | [CC0 1.0](https://creativecommons.org/publicdomain/zero/1.0/) |

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
},
1515
"scripts": {
1616
"test": "npm run test:spelling && npm run test:format && npm run test:build",
17-
"test:spelling": "cspell \"spec/**/*.md\" README.md",
17+
"test:spelling": "cspell \"spec/**/*.md\" README.md LICENSE.md",
1818
"format": "prettier --write \"**/*.{md,yml,yaml,json}\"",
1919
"test:format": "prettier --check \"**/*.{md,yml,yaml,json}\" || npm run suggest:format",
2020
"test:algorithm-format": "node .github/algorithm-format-check.mjs",

scripts/update-appendix-c.mjs renamed to scripts/update-appendix-specified-definitions.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { writeFile } from 'node:fs/promises';
22
import { printIntrospectionSchema, buildSchema, specifiedScalarTypes, printType } from 'graphql';
33

4-
const FILE = './spec/Appendix C -- Specified Definitions.md';
4+
const FILE = './spec/Appendix D -- Specified Definitions.md';
55
function printSpecifiedScalars() {
66
return specifiedScalarTypes
77
.map((type) => printType(type))

spec/Appendix A -- Conformance.md

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# A. Appendix: Conformance
2+
3+
A conforming implementation of GraphQL must fulfill all normative requirements.
4+
Conformance requirements are described in this document via both descriptive
5+
assertions and key words with clearly defined meanings.
6+
7+
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD",
8+
"SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in the normative portions of
9+
this document are to be interpreted as described in
10+
[IETF RFC 2119](https://tools.ietf.org/html/rfc2119). These key words may appear
11+
in lowercase and still retain their meaning unless explicitly declared as
12+
non-normative.
13+
14+
A conforming implementation of GraphQL may provide additional functionality, but
15+
must not where explicitly disallowed or would otherwise result in
16+
non-conformance.
17+
18+
**Conforming Algorithms**
19+
20+
Algorithm steps phrased in imperative grammar (e.g. "Return the result of
21+
calling resolver") are to be interpreted with the same level of requirement as
22+
the algorithm it is contained within. Any algorithm referenced within an
23+
algorithm step (e.g. "Let completedResult be the result of calling
24+
CompleteValue()") is to be interpreted as having at least the same level of
25+
requirement as the algorithm containing that step.
26+
27+
Conformance requirements expressed as algorithms and data collections can be
28+
fulfilled by an implementation of this specification in any way as long as the
29+
perceived result is equivalent. Algorithms described in this document are
30+
written to be easy to understand. Implementers are encouraged to include
31+
equivalent but optimized implementations.
32+
33+
See [Appendix A](#sec-Appendix-Notation-Conventions) for more details about the
34+
definition of algorithms, data collections, and other notational conventions
35+
used in this document.
36+
37+
**Non-Normative Portions**
38+
39+
All contents of this document are normative except portions explicitly declared
40+
as non-normative.
41+
42+
Examples in this document are non-normative, and are presented to aid
43+
understanding of introduced concepts and the behavior of normative portions of
44+
the specification. Examples are either introduced explicitly in prose (e.g. "for
45+
example") or are set apart in example or counter-example blocks, like this:
46+
47+
```example
48+
This is an example of a non-normative example.
49+
```
50+
51+
```counter-example
52+
This is an example of a non-normative counter-example.
53+
```
54+
55+
Notes in this document are non-normative, and are presented to clarify intent,
56+
draw attention to potential edge-cases and pit-falls, and answer common
57+
questions that arise during implementation. Notes are either introduced
58+
explicitly in prose (e.g. "Note: ") or are set apart in a note block, like this:
59+
60+
Note: This is an example of a non-normative note.

spec/Appendix A -- Notation Conventions.md renamed to spec/Appendix B -- Notation Conventions.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# A. Appendix: Notation Conventions
1+
# B. Appendix: Notation Conventions
22

33
This specification document contains a number of notation conventions used to
44
describe technical concepts such as language grammar and semantics as well as

spec/Appendix B -- Grammar Summary.md renamed to spec/Appendix C -- Grammar Summary.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# B. Appendix: Grammar Summary
1+
# C. Appendix: Grammar Summary
22

33
## Source Text
44

spec/Appendix C -- Specified Definitions.md renamed to spec/Appendix D -- Specified Definitions.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# C. Appendix: Type System Definitions
1+
# D. Appendix: Type System Definitions
22

33
This appendix lists the specified type system definitions.
44

spec/GraphQL.md

Lines changed: 37 additions & 118 deletions
Original file line numberDiff line numberDiff line change
@@ -4,125 +4,40 @@ _Current Working Draft_
44

55
**Introduction**
66

7-
This is the specification for GraphQL, a query language and execution engine
8-
originally created at Facebook in 2012 for describing the capabilities and
9-
requirements of data models for client-server applications. The development of
10-
this open standard started in 2015. This specification was licensed under OWFa
11-
1.0 in 2017. The [GraphQL Foundation](https://graphql.org/foundation/) was
12-
formed in 2019 as a neutral focal point for organizations who support the
13-
GraphQL ecosystem, and the
14-
[GraphQL Specification Project](https://graphql.org/community/) was established
15-
also in 2019 as the Joint Development Foundation Projects, LLC, GraphQL Series.
16-
17-
If your organization benefits from GraphQL, please consider
18-
[becoming a member](https://graphql.org/foundation/join/#graphql-foundation) and
19-
helping us to sustain the activities that support the health of our neutral
20-
ecosystem.
21-
22-
The GraphQL Specification Project has evolved and may continue to evolve in
23-
future editions of this specification. Previous editions of the GraphQL
24-
specification can be found at permalinks that match their
7+
This is the specification for GraphQL, a query language and execution engine for
8+
describing and performing the capabilities and requirements of data models for
9+
client-server applications.
10+
11+
A conforming implementation of GraphQL must fulfill all normative requirements
12+
described in this specification (see [Conformance](#sec-Appendix-Conformance)).
13+
The GraphQL specification is provided under the OWFa 1.0 license (see
14+
[Copyright and Licensing](#sec-Appendix-Copyright-and-Licensing)).
15+
16+
GraphQL was originally created in 2012 and the development of this open standard
17+
started in 2015. It is a deliverable of the
18+
[GraphQL Specification Project](https://graphql.org/community/), established in
19+
2019 with the [Joint Development Foundation](https://www.jointdevelopment.org/).
20+
21+
The [GraphQL Foundation](https://graphql.org/foundation/) was formed in 2019 as
22+
a neutral focal point for organizations who support development of the GraphQL
23+
ecosystem. If your organization benefits from GraphQL, please consider
24+
[becoming a member](https://graphql.org/foundation/join/#graphql-foundation).
25+
26+
This specification is developed on GitHub at
27+
[graphql/graphql-spec](https://github.com/graphql/graphql-spec/). Contributions
28+
are managed by the
29+
[GraphQL Working Group](https://github.com/graphql/graphql-wg), hosted by the
30+
[GraphQL Technical Steering Committee](https://github.com/graphql/graphql-wg/blob/main/GraphQL-TSC.md).
31+
To learn more see the
32+
[contribution guide](https://github.com/graphql/graphql-spec/blob/main/CONTRIBUTING.md).
33+
34+
GraphQL has evolved and may continue to evolve in future editions of this
35+
specification. Previous editions of the GraphQL specification can be found at
36+
permalinks that match their
2537
[release tag](https://github.com/graphql/graphql-spec/releases). The latest
2638
working draft release can be found at
2739
[https://spec.graphql.org/draft](https://spec.graphql.org/draft).
2840

29-
**Copyright Notice**
30-
31-
Copyright © 2015-2018, Facebook, Inc.
32-
33-
Copyright © 2019-present, GraphQL contributors
34-
35-
THESE MATERIALS ARE PROVIDED “AS IS”. The parties expressly disclaim any
36-
warranties (express, implied, or otherwise), including implied warranties of
37-
merchantability, non-infringement, fitness for a particular purpose, or title,
38-
related to the materials. The entire risk as to implementing or otherwise using
39-
the materials is assumed by the implementer and user. IN NO EVENT WILL THE
40-
PARTIES BE LIABLE TO ANY OTHER PARTY FOR LOST PROFITS OR ANY FORM OF INDIRECT,
41-
SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER FROM ANY CAUSES
42-
OF ACTION OF ANY KIND WITH RESPECT TO THIS DELIVERABLE OR ITS GOVERNING
43-
AGREEMENT, WHETHER BASED ON BREACH OF CONTRACT, TORT (INCLUDING NEGLIGENCE), OR
44-
OTHERWISE, AND WHETHER OR NOT THE OTHER MEMBER HAS BEEN ADVISED OF THE
45-
POSSIBILITY OF SUCH DAMAGE.
46-
47-
**Licensing**
48-
49-
The GraphQL Specification Project is made available by the
50-
[Joint Development Foundation](https://www.jointdevelopment.org/). The current
51-
[Working Group](https://github.com/graphql/graphql-wg) charter, which includes
52-
the IP policy governing all working group deliverables (including
53-
specifications, source code, and datasets) may be found at
54-
[https://technical-charter.graphql.org](https://technical-charter.graphql.org).
55-
56-
Currently, the licenses governing GraphQL Specification Project deliverables
57-
are:
58-
59-
| Deliverable | License |
60-
| -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
61-
| 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) |
62-
| Source code | [MIT License](https://opensource.org/licenses/MIT) |
63-
| Data sets | [CC0 1.0](https://creativecommons.org/publicdomain/zero/1.0/) |
64-
65-
**Conformance**
66-
67-
A conforming implementation of GraphQL must fulfill all normative requirements.
68-
Conformance requirements are described in this document via both descriptive
69-
assertions and key words with clearly defined meanings.
70-
71-
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD",
72-
"SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in the normative portions of
73-
this document are to be interpreted as described in
74-
[IETF RFC 2119](https://tools.ietf.org/html/rfc2119). These key words may appear
75-
in lowercase and still retain their meaning unless explicitly declared as
76-
non-normative.
77-
78-
A conforming implementation of GraphQL may provide additional functionality, but
79-
must not where explicitly disallowed or would otherwise result in
80-
non-conformance.
81-
82-
**Conforming Algorithms**
83-
84-
Algorithm steps phrased in imperative grammar (e.g. "Return the result of
85-
calling resolver") are to be interpreted with the same level of requirement as
86-
the algorithm it is contained within. Any algorithm referenced within an
87-
algorithm step (e.g. "Let completedResult be the result of calling
88-
CompleteValue()") is to be interpreted as having at least the same level of
89-
requirement as the algorithm containing that step.
90-
91-
Conformance requirements expressed as algorithms and data collections can be
92-
fulfilled by an implementation of this specification in any way as long as the
93-
perceived result is equivalent. Algorithms described in this document are
94-
written to be easy to understand. Implementers are encouraged to include
95-
equivalent but optimized implementations.
96-
97-
See [Appendix A](#sec-Appendix-Notation-Conventions) for more details about the
98-
definition of algorithms, data collections, and other notational conventions
99-
used in this document.
100-
101-
**Non-Normative Portions**
102-
103-
All contents of this document are normative except portions explicitly declared
104-
as non-normative.
105-
106-
Examples in this document are non-normative, and are presented to aid
107-
understanding of introduced concepts and the behavior of normative portions of
108-
the specification. Examples are either introduced explicitly in prose (e.g. "for
109-
example") or are set apart in example or counter-example blocks, like this:
110-
111-
```example
112-
This is an example of a non-normative example.
113-
```
114-
115-
```counter-example
116-
This is an example of a non-normative counter-example.
117-
```
118-
119-
Notes in this document are non-normative, and are presented to clarify intent,
120-
draw attention to potential edge-cases and pit-falls, and answer common
121-
questions that arise during implementation. Notes are either introduced
122-
explicitly in prose (e.g. "Note: ") or are set apart in a note block, like this:
123-
124-
Note: This is an example of a non-normative note.
125-
12641
# [Overview](Section%201%20--%20Overview.md)
12742

12843
# [Language](Section%202%20--%20Language.md)
@@ -137,8 +52,12 @@ Note: This is an example of a non-normative note.
13752

13853
# [Response](Section%207%20--%20Response.md)
13954

140-
# [Appendix: Notation Conventions](Appendix%20A%20--%20Notation%20Conventions.md)
55+
# [Appendix: Conformance](Appendix%20A%20--%20Conformance.md)
56+
57+
# [Appendix: Notation Conventions](Appendix%20B%20--%20Notation%20Conventions.md)
58+
59+
# [Appendix: Grammar Summary](Appendix%20C%20--%20Grammar%20Summary.md)
14160

142-
# [Appendix: Grammar Summary](Appendix%20B%20--%20Grammar%20Summary.md)
61+
# [Appendix: Specified Definitions](Appendix%20D%20--%20Specified%20Definitions.md)
14362

144-
# [Appendix: Specified Definitions](Appendix%20C%20--%20Specified%20Definitions.md)
63+
# [Appendix: Licensing](../LICENSE.md)

0 commit comments

Comments
 (0)