Skip to content
This repository was archived by the owner on Nov 2, 2023. It is now read-only.

Commit 654daa3

Browse files
committed
Review page for draft-07-WORK-IN-PROGRESS
1 parent 7deb266 commit 654daa3

File tree

1 file changed

+145
-0
lines changed

1 file changed

+145
-0
lines changed

work-in-progress/index.md

Lines changed: 145 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,145 @@
1+
---
2+
layout: page
3+
title: Work In Progress Feedback
4+
permalink: /work-in-progress
5+
---
6+
7+
* TOC
8+
{:toc}
9+
10+
The next draft (informally known as **draft-07**, formal IETF draft names to be determined)
11+
is now feature-frozen and entering the final feedback month before publication. The feedback
12+
period will last from October 20th to November 20th, 2017.
13+
14+
The timeline may be compressed if, after at least two weeks, there is a clear consensus that
15+
the drafts are solid and it would be best to publish sooner rather than later.
16+
17+
The following sorts of feedback are particularly desired:
18+
19+
* Clarity, readability, and accessibility to new readers
20+
* Contradictions, inconsistencies and other bugs
21+
* Anything so egregious that implementation would be infeasible or impossible
22+
23+
New features or major changes to existing features will be deferred to a future draft,
24+
and work on the next draft will begin immediately after this one is published.
25+
26+
## Pre-Built Review Documents
27+
28+
To encourage as many reviewers as possible, pre-built documents are available. These may
29+
slightly lag those in the GitHub repository, although all efforts will be made to keep them
30+
in sync during the review period. After the review period, these will be removed. In particular,
31+
using "WORK IN PROGRESS" meta-schemas **is not allowed** and **will break** as soon as the files
32+
are moved to their permanent homes.
33+
34+
* Specifications:
35+
* [WIP: JSON Schema (core)](/work-in-progress/WIP-jsonschema-core.html)
36+
* [WIP: JSON Schema Validation](/work-in-progress/WIP-jsonschema-validation.html)
37+
* [WIP: JSON Schema Hyper-Schema](/work-in-progress/WIP-jsonschema-hyperschema.html)
38+
* [WIP: Relative JSON Pointer](/work-in-progress/WIP-relative-json-pointer.html)
39+
* Meta-schemas:
40+
* [WIP: schema.json](/work-in-progress/WIP-schema.json) (core and validation)
41+
* [WIP: links.json](/work-in-progress/WIP-links.json) (individual link description object)
42+
* [WIP: hyper-schema.json](/work-in-progress/WIP-hyper-schema.json) (hyper-schema, references
43+
schema and links)
44+
* Output schema:
45+
* [WIP: hyper-schema-output.json](/work-in-progress/WIP-hyper-schema-output.json) (format used by the proposed hyper-schema test suite, and used in examples in the specification)
46+
47+
48+
## Providing Feedback and Tracking Progress in GitHub
49+
50+
* The active sources are on the
51+
["master" branch of json-schema-org/json-schema-spec](https://github.com/json-schema-org/json-schema-spec)
52+
* The [draft-07 milestone](https://github.com/json-schema-org/json-schema-spec/milestone/5)
53+
tracks all issues and PRs for this draft
54+
* Check the [open PRs](https://github.com/json-schema-org/json-schema-spec/pulls)
55+
to see what is already being changed from other feedback
56+
* [file an issue](https://github.com/json-schema-org/json-schema-spec/issues/new?milestone=draft-07)
57+
or [join the mailing list](https://groups.google.com/forum/#!forum/json-schema) to submit feedback
58+
59+
## Summary of Changes
60+
61+
The primary focus of this draft has been JSON Hyper-Schema, which has been given a top-to-bottom
62+
rewrite in addition to numerous new features. As part of this, we have (with the original
63+
author's permission), revived the Relative JSON Pointer proposal to be submitted alongside
64+
of hyper-schema.
65+
66+
In the course of that rewrite, several concepts that apply across all JSON Schema specifications
67+
became more clear, so in addition to new keywords in both Core and Validation, some of the
68+
introductory and other text has been reworked to fit into the new conceptual model.
69+
70+
We are **particularly interested** in feedback on whether the wording and concepts is an
71+
improvement in terms of how easy it is to understand and learn the specifications.
72+
73+
Note that _all drafts have Changelog appendicies_, for a concise list of notable changes.
74+
75+
### Changes to Concepts
76+
77+
These are properly explained in the documents as noted. They are listed here to
78+
highlight their importance: If you read the drafts and do not understand these
79+
concepts, please file an issue or let us know on the mailing list.
80+
81+
* _applicability_ (defined in the validation spec)
82+
* _assertions_ (defined in the validation spec, also mentioned in core)
83+
* `true` and `false` as trivial assertions (explained in core)
84+
* _annotations_ (defined in the validation spec)
85+
* _generic user agent_ (defined in hyper-schema)
86+
* _client application_ and _client input_ (defined in hyper-schema)
87+
88+
### Changes to Specification Boundaries
89+
90+
The `readOnly` and `media` keywords, previously in Hyper-Schema, are often used (or people
91+
ask about using them) outside of Hyper-Schema. As a result, they have been moved to the
92+
validation spec:
93+
94+
* `readOnly` is now a metadata keyword in the validation spec
95+
* `media` and its `type` and `binaryEncoding` keywords get their own validation spec section as `contentMediaType` and `contentEncoding`
96+
97+
Hyper-schema now solely describes the Link Description Object (LDO), plus the two keywords
98+
(`base` and `links`) necessary to connect the LDO to schemas.
99+
100+
### Changes to the Core Specification
101+
102+
* `application/schema-instance+json` optional instance media type
103+
* Proposed "schema" link relation type in place of using "profile"
104+
* Added `$comment` (also added to Hyper-Schema's LDO)
105+
* Better wording around `$id` and fragments
106+
* Note the challenges of extending meta-schemas more clearly
107+
108+
### Changes to the Validation Specification
109+
110+
Only `if`/`then`/`else` is a mandatory new implementation requirement. Everything else
111+
is either an annotation (no defined requirements) or gives implementations the option
112+
to **not** implement validation (format and content keywords).
113+
114+
* Added `if`, `then`, and `else`
115+
* Note: imperative vs declarative [exhaustively discussed](https://github.com/json-schema-org/json-schema-spec/issues/180)
116+
* Note: we [may remove the schema form of `dependencies`](https://github.com/json-schema-org/json-schema-spec/issues/442)
117+
* Added many new formats, clarified the "json-pointer" format
118+
* Added `writeOnly` alongside `readOnly` (moved from Hyper-Schema)
119+
* Moved the hyper-schema `media` object to the `content*` keywords in validation
120+
121+
### Changes to the Hyper-Schema specification
122+
123+
124+
Basically everything is different. It's probably best to just read it top to bottom
125+
and pretend you've never heard of it before.
126+
127+
* Added overview explaining the general purpose and scope
128+
* Aligned LDO with how links are described in [RFC 5988bis](https://mnot.github.io/I-D/rfc5988bis/)
129+
* Context adjustment with `anchor` and `anchorPointers`
130+
* Pseudocode specification for URI Template resolution
131+
* `templatePointers` and `templateRequired` added to URI Template resolution process
132+
* `mediaType` and `submissionEncType` are now `targetMediaType` and `submissionMediaType`
133+
* `targetHints` and `headerSchema` for working with HTTP request and response headers
134+
* HTTP guidance has its own section
135+
* API usage has an appendix, including a subsection on static docs and code
136+
* Collections and items are recognizable based on link relation types
137+
138+
## Known Issues
139+
140+
* Hyper-Schema needs a lot more examples (suggestions encouraged!)
141+
* Hyper-Schema examples would be better if they fit together to tell a single story
142+
* Hyper-Schema needs to be consistent about cross-references
143+
144+
The primary author of this draft (and this page) notoriously struggles to write
145+
effective examples. Help on this aspect of the spec would be very much appreciated.

0 commit comments

Comments
 (0)