@@ -15,10 +15,14 @@ Related Issues:
1515## Context and Problem Statement
1616
1717Currently JSON Schema loosely follows the IETF Internet-Draft (I-D) process for
18- spec development and releases but isn't associated with IETF in any way. Our
19- perceived involvement with IETF causes confusion and misunderstanding within our
20- community in the cases were our practices and the realities of our situation
21- deviate from the typical IETF I-D process.
18+ spec development and releases but isn't associated with any IETF working group.
19+ JSON Schema is an individual draft. That means it isn't on a standards track
20+ with IETF and IETF is not involved nor supports the spec in any way other than
21+ hosting the canonical version of our I-Ds. Our perceived involvement with IETF
22+ causes confusion and misunderstanding within our community in the cases were our
23+ practices and the realities of our situation deviate from a typical IETF I-D
24+ lifecycle. The thing that makes our situation different than a typical I-D is
25+ that our "drafts" are intended for use in production.
2226
2327## Decision Drivers
2428
@@ -46,13 +50,19 @@ deviate from the typical IETF I-D process.
4650* Several members of the JSON Schema team have had poor interactions with IETF
4751 and don't feel that working with them would be productive. This is a
4852 relatively minor consideration. If we thought IETF was right for JSON Schema,
49- we could find ways to make those relationships work.
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.
5057
5158## Considered Options
5259
53601 . Continue to submit I-Ds, while using our customized process with no intention
54- of pursing standards track RFC status.
55- 2 . Go all-in with IETF and pursue a standards track RFC with the IETF.
61+ of pursing standards track RFC status.
62+ 2 . Go all-in with IETF and pursue a standards track RFC with the IETF. The
63+ approach would be to describe the essential characteristics of evaluating a
64+ JSON Schema: the keywords that everybody is guaranteed to support, and any
65+ extension mechanisms.
56663 . Join W3C and pursue a standards track with them using their process.
57674 . Decouple completely from any standards organization and come up with our own
5868 specification development lifecycle (SDLC) model inspired by well established
@@ -62,12 +72,45 @@ deviate from the typical IETF I-D process.
6272
6373Our decision is to go with Option 4 and decouple from standards organizations
6474that don't fit our needs. We don't currently have a plan for what to replace
65- IETF with. We are currently investigating how other established projects do
75+ IETF with, but we are currently investigating how other established projects do
6676their SDLC and will likely choose one to emulate and adapt to our needs.
6777Although we don't have a replacement solution in place yet, we are confident
6878that continuing to abuse the IETF I-D process or conforming to a standards
6979organization process that doesn't fit our needs is not the way to go.
7080
81+ Option 2 and 3 are still on the table if we feel it makes sense when we get to a
82+ more stable place in the future. The main concern is the pain this process is
83+ causing while we are in this unusual phase of simultaneous unstable growth and
84+ production use. Standardization isn't out of the question, it's just not
85+ productive for us to be developing JSON Schema within the constraints of a
86+ standards organizations procedures.
87+
88+ Option 1 was rejected because it ignores the problems we've been facing and
89+ provides no solution. No one wants this.
90+
91+ Option 2 was rejected for several reasons. If we go all in with IETF, we would
92+ have to join a working group and treat JSON Schema like a normal I-D. That means
93+ we would have to start treating drafts as drafts, which means not recommending
94+ production use until we are ready for RFC and not releasing a new
95+ production-ready version of JSON Schema until we've reached RFC status. Most of
96+ the core contributors don't believe that we are close enough to an RFC-ready
97+ release that we want to commit to not being able to issue another release until
98+ that happens.
99+
100+ There are other concerns including skepticism that even with an extension
101+ mechanism that the RFC wouldn't need regular updates, which is not normal
102+ practice for an RFC and would require significant effort to issue a replacing
103+ RFC. Without a concrete proposal on the scope of the RFC and the extension
104+ mechanisms, it's hard to commit to this path.
105+
106+ Additionally, many of the core contributors have found working with the IETF
107+ unproductive and have concerns about JSON Schema getting deeper involved without
108+ compelling enough reason. Most agree that the reasons are not sufficiently
109+ compelling at this point.
110+
111+ Option 3 was rejected because it has the same problems as Option 2 accept that
112+ we don't have the same unpleasant history with W3C than we do with IETF.
113+
71114### Positive Consequences
72115
73116* Decoupling from IETF allows us to distance ourselves from the assumptions that
@@ -79,8 +122,14 @@ organization process that doesn't fit our needs is not the way to go.
79122
80123* Not being associated with a recognized standards organization such as IETF,
81124 W3C, or IEEE reduces the credibility of JSON Schema in the eyes of some.
125+ However, people seem comfortable adopting OpenAPI without it being associated
126+ with a standards organization, so we don't expect this to be a significant
127+ issue for JSON Schema either.
82128* If we don't go the standardization route with IETF or W3C, we lose access to
83129 their expert review process.
130+ * One of the benefits of an RFC is other standards can normatively reference it,
131+ and use JSON Schema to define their JSON-based syntaxes. Independently
132+ publishing a specification does not permit this.
84133* Defining our own SLDC process will be a lot of work and none of us have
85134 expertise in defining such a process. However, we can take inspiration from
86135 existing well established projects and we would have the freedom to update our
0 commit comments