@@ -37,23 +37,30 @@ that our "drafts" are intended for use in production.
37
37
programming language. When it stops evolving, it will lose its relevance.
38
38
When we finish a release of JSON Schema, we don't disband, we start work on
39
39
the next release.
40
- * Every one of our releases is expected to be used in production and will be
41
- depended on for many years forward. This is not consistent with normal IETF
42
- drafts. Even if we don't publicly use the term "draft", we're still using the
43
- IETF I-D system in a way that's not intended.
40
+ * Since the project resumed activity after the gap following draft-04, every one
41
+ of our releases is expected to be used in production and will be depended on
42
+ for many years forward. This is not consistent with normal IETF drafts. Even
43
+ if we don't publicly use the term "draft", we're still using the IETF I-D
44
+ system in a way that's not intended.
44
45
* Under IETF, JSON Schema fits under the category of "draft". The community has
45
46
repeatedly told us that they perceive this to meant that JSON Schema
46
47
"incomplete" and not "not ready for production use". This is the wrong message
47
48
for us to be sending as all of our releases are intended to be used in
48
49
production. This ADR doesn't decide whether or not to drop the "draft" from
49
50
our releases, but decoupling from IETF gives us that option.
50
- * Several members of the JSON Schema team have had poor interactions with IETF
51
- and don't feel that working with them would be productive. This is a
52
- relatively minor consideration. If we thought IETF was right for JSON Schema,
53
- we could find ways to make those relationships work. We have a good
54
- relationship with the relatively new HTTPAPIs working group and working with
55
- them would be far more likely to be productive than the people/WG we were
56
- previously in communication with.
51
+ * Several members of the JSON Schema team have interacted with JSON-related IETF
52
+ working groups. Some of these interactions demonstrated an indifference or
53
+ hostility to JSON Schema, and a preference for projects taking a different
54
+ approach. Equally important was a lack of any active interest or constructive
55
+ engagement. Finally, we were informed that any schema project for JSON would
56
+ not necessarily start from JSON Schema as a base, indicating that a "JSON
57
+ Schema" working group would quite likely not involve JSON Schema itself. This
58
+ impression has been reinforced by observing the amount of change introduced to
59
+ JSON Path as a consequence of its adoption by an IETF working group. While we
60
+ have a good relationship with the relatively new HTTPAPIs working group, the
61
+ combination of these other experiences with other mismatches between our
62
+ project and the IETF process contributes to our reluctance to move forward
63
+ through the iETF.
57
64
58
65
## Considered Options
59
66
@@ -78,6 +85,17 @@ Although we don't have a replacement solution in place yet, we are confident
78
85
that continuing to abuse the IETF I-D process or conforming to a standards
79
86
organization process that doesn't fit our needs is not the way to go.
80
87
88
+ However, we still plan to use the IETF process to register the media types
89
+ defined by JSON Schema with IANA. This effort is currently in progress with the
90
+ HTTPAPIs working group.
91
+
92
+ The decision to not use IETF applies only to the main specification documents
93
+ and not necessarily supporting components we have defined or will define in the
94
+ future. Currently our only such component is Relative JSON Pointer, but there
95
+ could be others in the future. These components will be examined on a case by
96
+ case basis and we may choose an IETF standards path for those components if it
97
+ makes sense.
98
+
81
99
Option 2 and 3 are still on the table if we feel it makes sense when we get to a
82
100
more stable place in the future. The main concern is the pain this process is
83
101
causing while we are in this unusual phase of simultaneous unstable growth and
@@ -108,7 +126,7 @@ unproductive and have concerns about JSON Schema getting deeper involved without
108
126
compelling enough reason. Most agree that the reasons are not sufficiently
109
127
compelling at this point.
110
128
111
- Option 3 was rejected because it has the same problems as Option 2 accept that
129
+ Option 3 was rejected because it has the same problems as Option 2 except that
112
130
we don't have the same unpleasant history with W3C than we do with IETF.
113
131
114
132
### Positive Consequences
@@ -120,20 +138,21 @@ we don't have the same unpleasant history with W3C than we do with IETF.
120
138
121
139
### Negative Consequences
122
140
123
- * Not being associated with a recognized standards organization such as IETF,
124
- W3C, or IEEE reduces the credibility of JSON Schema in the eyes of some.
125
- However, we have received feedback from people involved in standards
126
- development that told us that they were comfortable referencing OpenAPI's self
127
- published specification in their standards and that OpenAPI's membership with
128
- the Linux Foundation was an important aspect of what makes them comfortable
129
- doing so. JSON Schema is a member of the OpenJS Foundation, which is a
130
- sub-group of the Linux Foundation, so we expect standards developers to be
131
- just as comfortable referencing JSON Schema as they are referencing OpenAPI.
132
141
* If we don't go the standardization route with IETF or W3C, we lose access to
133
142
their expert review process.
143
+ * Not being associated with a recognized standards organization such as IETF,
144
+ W3C, or IEEE reduces the credibility of JSON Schema in the eyes of some.
145
+ However, we have received feedback that our membership with OpenJS/Linux
146
+ Foundation provides the credibility that we need.
134
147
* One of the benefits of an RFC is other standards can normatively reference it,
135
- and use JSON Schema to define their JSON-based syntaxes. Independently
136
- publishing a specification does not permit this.
148
+ and use JSON Schema to define their JSON-based syntaxes. However, we have
149
+ received feedback from people involved in standards development that told us
150
+ that they were comfortable referencing OpenAPI's self published specification
151
+ in their standards and that OpenAPI's membership with the Linux Foundation was
152
+ an important aspect of what makes them comfortable doing so. JSON Schema is a
153
+ member of the OpenJS Foundation, which is a sub-group of the Linux Foundation,
154
+ so we expect standards developers to be just as comfortable referencing JSON
155
+ Schema as they are referencing OpenAPI.
137
156
* Defining our own SLDC process will be a lot of work and none of us have
138
157
expertise in defining such a process. However, we can take inspiration from
139
158
existing well established projects and we would have the freedom to update our
0 commit comments