Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New proposal: JSON Referencing and Identification (JRI) #2

Merged
merged 32 commits into from
Nov 9, 2022

Conversation

handrews
Copy link
Contributor

@handrews handrews commented Oct 25, 2022

Note: This PR will be up for a minimum of 14 days. If we are nearing that and you want an extra couple of days to comment, please just comment with an estimate of how much additional time you need.

What this PR is about

As a "new proposal PR", this PR is for accepting a baseline from which to start discussions. As noted in the README, merging this PR does not indicate an endorsement by the JSON Schema Org, nor does it necessarily mean that it will ever be submitted to the IETF. Those things depend on the outcome of further discussions of this and other proposals.

Therefore for this and other such PRs (we expect at least one more in this repo):

Please do!

  • Check that you can get the general idea of the proposal from what's currently written, even if not all details are perfectly clear
  • Check for paragraphs/wording that is difficult to understand
  • Check for things that seem out of order (I rearranged the order of this proposal in the last few days based on some early feedback to separate the basics, the standalone/interoperable stuff, and the context specification stuff)
  • Check for anything that's flat-out wrong
  • Make sure I didn't do anything like leave a section titled "Reasons" 🤦 (an early version had this b/c I forgot to come back and make a better title)

Please do not...

  • Suggest substantive changes. Please go ahead and file an issue for that! (if possible, tag it with the jri label, but if GitHub won't let you, I'll take care of that) You do not need to wait for the PR to merge before filing discussion issues
  • Raise questions about scope and direction in general. Please also file issues for those things without waiting for the PR to merge! As they are larger concerns than any one proposal you should not tag them with this proposal's label

How to view the file

While there are numerous commits here, that is mostly for the folks who saw an early version of this who want to see how I re-organized it since that version. Otherwise you can ignore the commits and just review the file as of the most recent commit.

See the repository README for documentation of the Markdown RFC format. A few key points:

  • The first chunk of the text is a YAML header, so when you look at it as rendered Markdown it looks weird (including some giant headers that don't make sense because they're YAML comments).
  • From --- abstract onwards, it's Markdown, with some additions
  • {{!RFC1234}} is an automatic normative reference, {{?RFC1234}} is an automatic informative reference, and {{RFC1234}} is a reference to something that is explicitly defined in the YAML at the top of the file because the IETF doesn't have automatic entries for whatever it is (e.g. AsyncAPI and OpenAPI)
  • {#foo} is the equivalent of "anchor"="foo" in XML, and {{foo}} is the corresponding xref
  • Footnotes in Markdown become CREFs in the RFC, but that means that if you look at this as rendered Markdown the footnotes show up at the bottom, instead of inline like CREFs do
  • You might find it easier to check out my fork and (assuming you have python3 installed) type make to get the HTML version built; this will check out a submodule containing the build scripts, install a virtualenv inside that build tree, and run the build for you

It really should be IETF, "Independent" is something else.
No other changes.  Change Log and implementation inventory
are now stored elsewhere, which was why the intro note
needed updating and most of the informative references
were pruned.
In addition to the "Definitions" section.
...to the section focusing on context specification integration.
and why $defs is part of the spec.
Really, part of it is context-related and part is more fundamental.
Move some things to the standalone and context-sensitive sections.
@handrews handrews added new proposal pr PRs for merging a baseline rather than discussing contents jri Related to the JRI (JSON Referencing and Identification) proposal labels Oct 25, 2022
draft-handrews-jri.md Outdated Show resolved Hide resolved
draft-handrews-jri.md Show resolved Hide resolved
draft-handrews-jri.md Show resolved Hide resolved
draft-handrews-jri.md Show resolved Hide resolved
draft-handrews-jri.md Show resolved Hide resolved
draft-handrews-jri.md Outdated Show resolved Hide resolved
draft-handrews-jri.md Show resolved Hide resolved
draft-handrews-jri.md Show resolved Hide resolved
draft-handrews-jri.md Outdated Show resolved Hide resolved
draft-handrews-jri.md Outdated Show resolved Hide resolved
The most significant change here is reworking the discussion of
falling back to object-level semantics.
@handrews
Copy link
Contributor Author

@gregsdennis I think I have addressed each of your comments with either a change, an explanation, or a question as to how to proceed. Please let me know if I missed anything, and thank you for the speedy review!

Copy link

@DavidBiesack DavidBiesack left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for publishing this and soliciting feedback. I hope my comments are helpful.

draft-handrews-jri.md Outdated Show resolved Hide resolved
draft-handrews-jri.md Outdated Show resolved Hide resolved
draft-handrews-jri.md Show resolved Hide resolved
draft-handrews-jri.md Show resolved Hide resolved
draft-handrews-jri.md Outdated Show resolved Hide resolved
draft-handrews-jri.md Outdated Show resolved Hide resolved
draft-handrews-jri.md Outdated Show resolved Hide resolved
draft-handrews-jri.md Outdated Show resolved Hide resolved
draft-handrews-jri.md Show resolved Hide resolved
draft-handrews-jri.md Outdated Show resolved Hide resolved
@handrews
Copy link
Contributor Author

handrews commented Nov 8, 2022

@DavidBiesack I think I have addressed all of your comments that we did not move off to separate issues. Please take a look. Since this has been open for 14 days, once you have signed off I will merge this unless something else has come up. We will continue to discuss things in issues and all are welcome to file such issues after the merge.

It needs to be able to accomodate boolean schemas, and formats
in which any value can be a reference target.
@handrews
Copy link
Contributor Author

handrews commented Nov 9, 2022

OK, @gregsdennis I think I have now addressed everything- thanks for the IM about the ones that GitHub had "conveniently" hidden.

draft-handrews-jri.md Outdated Show resolved Hide resolved
draft-handrews-jri.md Outdated Show resolved Hide resolved
draft-handrews-jri.md Show resolved Hide resolved
draft-handrews-jri.md Show resolved Hide resolved
@handrews
Copy link
Contributor Author

handrews commented Nov 9, 2022

@DavidBiesack thanks for the speedy review! I think I have addressed everything you raised- I have no idea how I missed the $extRef comment in particular, this PR has gotten rather confusing to follow in the UI (I missed a comment or two of @gregsdennis's as well despite going over everything multiple times). Please let me know if this is insufficient or if you notice other things I have missed. I did kind of rush this most recent update.

draft-handrews-jri.md Outdated Show resolved Hide resolved
Copy link
Member

@gregsdennis gregsdennis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have one little nit remaining (omitted word), but overall I like this.

Copy link

@DavidBiesack DavidBiesack left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @handrews - I have no remaining changes

@handrews
Copy link
Contributor Author

handrews commented Nov 9, 2022

@DavidBiesack @gregsdennis thanks! I have fixed the word 🤦

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
jri Related to the JRI (JSON Referencing and Identification) proposal new proposal pr PRs for merging a baseline rather than discussing contents
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants