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

Open Community Working Meeting 2022-08-01 #213

Closed
5 tasks done
Relequestual opened this issue Jul 28, 2022 · 5 comments
Closed
5 tasks done

Open Community Working Meeting 2022-08-01 #213

Relequestual opened this issue Jul 28, 2022 · 5 comments
Labels
Working Meeting Identify working meetings

Comments

@Relequestual
Copy link
Member

Relequestual commented Jul 28, 2022

📺 See Recording

📎 Attached Doc

Go To Previous Meeting

Agenda

Topic Owner Decision/NextSteps
Review last call's action items @Relequestual Last call's action items were reviewed
Presentation on forwards compatibility & designing for continuous evolution @awwright The presentation was given and members asked for examples and further details regarding the same
Media type registration update and status @jdesrosiers Follow the discussion #198
JSON Schema glossary page or site @Julian Follow the discussion json-schema-org/website#266
How to deprecate old versions @gregsdennis Follow the discussion #192

Highlights

  • Some agenda items were rolled over

  • Media-type work discussed

  • Compatibility and designing for continuous evolution

Actions

Attendees

Account
@Relequestual
@awwright
@jdesrosiers
@Julian
@gregsdennis
@handrews

Details

Media-type work

Updates shared by @jdesrosiers regarding media-type work.

  • @handrews brought up the lack of bootstrapping problems
  • @jdesrosiers we have current and previous considerations to cater to.
  • @handrews asked for more time to think and chat about media-type work
  • @jdesrosiers proposed registering the media type defined in the spec for now/current, and consider a new registration when we have fixed outstanding issues/challenges

Presentation regarding compatibility considerations

Compatibility presentation by @awwright. Some highlights from the presentation and member's comments are presented below.

  • New servers should be compatibile with old client and vice versa. i.e old schemas should be compatibile with new validators and vice versa.
  • No change to keywords behavior, scope of keyword should not reduce.
  • @handrews and @jdesrosiers acknowledge that there are issues with unknown keywords becoming keywords.
  • Incremental addition of keyword and additional meta-schemas, that allows for compatibility.
  • Regarding enabling evolution:
    • Defined responses should not shrink or grow
    • Defined request may grow in areas where answers and non-answers can be distinguished
    • Language space larger than behavior thereby allowing for evolution.

@Relequestual Relequestual pinned this issue Aug 1, 2022
@awwright
Copy link
Member

awwright commented Aug 1, 2022

I have a short presentation on forwards compatibility & designing a protocol for continuous evolution.

@jviotti
Copy link
Member

jviotti commented Aug 1, 2022

Sounds exciting!

@awwright
Copy link
Member

awwright commented Aug 1, 2022

Thanks for questions everyone. I presented a work-in-progress, so to clarify what the goal is:

Consider my example that showed the behavior for "draft-3":

Request Response
objects whose validation keywords are valid ✔️❌
objects with an invalid validation keyword ⁉️
non-objects ⁉️

This has very few options for forward compatibility, and none that permit defining a new property name. That is, the only way to add keywords is in a new release of JSON Schema is to do so in a way that "overlaps" with the behavior of previous specifications—depending on if you're using draft-3 or draft-4, you will get different answers.

What I'm going to spend this week doing is filling out this table for the all the other versions of JSON Schema.

This can help determine what overlapping behaviors we have, and where there's "over-allocated' behavior (behavior that looks like an answer, but isn't used by clients); and with this list of overlapping behaviors, I can craft examples, and we can debate how to resolve the ambiguity.

Importantly, this technique applies to $schema and $vocabulary; we can determine exactly where the specifications have defined contradictory behavior, and make a decision how to handle it.

@awwright
Copy link
Member

awwright commented Aug 1, 2022

Resolving the ambiguities will involve adding conditions that further constrains when a behavior may be used. For example, adding a condition "if $schema mentions draft-3, then use the old behavior; else use the new behavior."

Or maybe even removing some old behavior altogether. For example, draft-02 did not define "required". But it's unlikely that any schema used "required" and expected it to be ignored; therefore, the behavior where "required" is ignored can simply be removed, and this would resolve the ambiguity.

@Relequestual Relequestual unpinned this issue Aug 8, 2022
@handrews handrews added the Working Meeting Identify working meetings label Aug 22, 2022
@Relequestual Relequestual added the Needs minutes Flagging meetings that need minutes and actions for tracking label Oct 18, 2022
@benjagm benjagm removed the Needs minutes Flagging meetings that need minutes and actions for tracking label Dec 23, 2022
@benjagm
Copy link
Collaborator

benjagm commented Apr 5, 2023

Closing this issue as all tasks are completed. Thanks for your contributions!

@benjagm benjagm closed this as completed Apr 5, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Working Meeting Identify working meetings
Projects
None yet
Development

No branches or pull requests

5 participants