JSON Schema draft 2020-11-rc-0
Published on November 12, 2020 by Ben Hutton
Admin


I don't need to remind anyone that the last six months or so have been difficult for many, yet the team working on the JSON Schema specification has continued to push towards delivering draft 2020-NN.

A lot changed after the last post back in March, and our goal somewhat slightly shifted from just patching draft 2019-09, to delivering a few small changes, and then to trying to wrap up pretty quick.

Despite all this, It's been great to see a few new faces in the community really getting involved, and a few old faces returning. I couldn't do all this on my own, so with thanks to the community, let's see where we're at.

Draft 2020-11?

We've been doing a dance with OpenAPI in terms of finalising specifics, working out how and when OAS 3.1 would be released, and if it would require JSON Schema draft 2019-09 or 2020-NN. Some of the team have found this more challenging than others, and levels of communication between the time zone distributed team have been a constant struggle. Putting a time frame and scope on draft 2020-NN has been incredibly difficult.

That being said, we are ready to announce JSON Schema draft 2020-11-rc-0. Our first release candidate.

You can view the core and validation specs at the following URLs TODAY!

https://json-schema.org/draft/preview/2020-11-rc-0/jsonschema-core.html

https://json-schema.org/draft/preview/2020-11-rc-0/jsonschema-validation.html

If you've been holding off reading the spec while it's being developed between versions, now is the time to start reading and providing feedback.

I'm anticipating a ONE WEEK review RC review period, in which I hope we can finalise a few issues. While there are 10 issues still open in the associated milestone, a number of these will be quick fixes, merged, punted to the next version, or be realised as a blog post or documentation. In terms of requirement changes, I THINK there's only one issue left, which puts us lose to delivering draft 2020-NN.

Our community and work

Since 2019-09, we've closed 66 issues or PRs associated with the current work milestone, and I'm sure some others which escaped the net. One of our issues racked up over 60 comments, which at least keeps it under tripleFortunatelycontroversialcertainly figures. Fortunately, most of the other issues proved much less controversial!

I've been fortunate to be able to work from home, although it's a bit of a tight squeeze. Our family has increased in size, and it's been a tricky adjustment for us all. I certainly don't remember not being able to stay up past 10 PM, which is usually when I got chunks of JSON Schema work done.

We've continued to see higher levels of developers asking questions in our Slack server and on StackOverflow. This year on StackOverflow, we've seen over 400 questions tagged with JSON Schema, and our community has provided an accepted answer for nearly 170 of them. (We remove the tag for unrelated questions, and some questions simply don't have good answers.) That's more than one question every day, and more than one accepted answer every other working day this year, with a few months still to go. Of course, this would be a lot less impressive if any of us were working on JSON Schema as part of our day job, but that continues to not be the case.

That's a huge community effort, and we thank you for your dedication.

When we release 2020-NN, I'm going to mention a few specific folks who have either emerged in our community or re-engaged in a really meaningful way over the past year - our community champions.

I realise that a 1 week RC review timescale is tight but manageable. Our pace of changes has been slower than previous, the number of changes has been less, and done with the review and comments of several implementations and industry members (from OAI) at the same time.

This DOES mean I (and our community) need to get busy over the next week, and it's going to be tight. Our only external pressure beyond general life is trying to publish in time for the OAS to switch default JSON Schema support requirements from 2019-09 to 2020-NN before OAS 3.1 is released. OAS is currently in RC, so we're cutting it close.

On to 2021

Henry is stepping back his involvement in JSON Schema, but will still be around now and then. I'll be publishing the upcoming release.

We are, for now putting JSON Hyper Schema on ice. It hasn't had a champion to move the work forward, nor a noticeable user base asking questions. We want to focus on what matters most for our community, and that's going to be the website, documentation, knowledge sharing.

I'm going to put a hold on further specification development for a time after we release 2020-NN. My plan is this will allow us to redirect our focus to the following :

  • Develop a code of conduct, formalise team, and recognise community champions
  • Reconstruct the site into something that reflects where we are today, as opposed to where it was 6 years ago when we inherited it
  • Extend documentation to include such things as creating new dialects and vocabularies
  • Support ongoing test suite work
  • Further, develop useful tooling and processes such as playgrounds and linting

Some of these items were already on our radar last year, but life is unpredictable, and open-source non-day-job work varies for most people. I hope our continued actions show our commitment to making JSON Schema happen, and be the best it can be.

In terms of leadership, if you feel you, or anyone you know, would be suited to joining us, please start those discussions now. Such things take time. We're looking for a mixture of commitment, from general daily availability to ad-hoc advisory type roles. We don't even have regular meetings, so any level of commitment is always going to be "best-effort".

Individual work continues

This year I cancelled several speaking engagements and ended up speaking at ASC2020 anyway. There were some questions, so at least a few people made sense of something. If you missed it, I gave a really quick tour of some fundamentals, why JSON Schema Vocabularies and Dialects are going to be so important, some 2019 and 2020 features, and what this all means for OpenAPI Specification 3.1.

You can catch the talk at https://youtu.be/_kNLrpce_lg

I found recording it from home a pretty fun experience, but sad not to be able to meet people in person.

(I'm still engaged to speak at API Days Paris next month... so let's hope I have some exciting news in time to prep the deck)

It got me thinking... I won't get the chance very often to record longer 30-minute talks like this, but short 5 or 10 minute talks could be much more viable.

To that end, I'm planning to create a series of short talks, looking to cover initially the basics of JSON Schema. Heck, it might end up being a full-blown course... but let's just see where it goes for now. I had a large (for me) support donation, which will allow me to buy a pro-level mic, which should make the recordings more professional sounding.

Further, I'm woefully aware that jsonschema.dev, the JSON Schema playground, has gone somewhat neglected. So much so, that I found the link shortening capabilities had been hobbled by my hosting company making some changes. With that fixed, it renewed my desire to see it developed into a tool which is essential to the JSON Schema community. Realistically, it's a lower priority than most of the above, but it might make a good change every once in a while.

If you want to see any specific aspect of the work receive more focus, please LET ME KNOW.

I'm contactable on Twitter and our open slack, and you can even find my new shiny jsonschema.dev email in the 2020 draft.

If you've reached this far, I'm guessing you might care about JSON Schema and what we're doing. Get in contact, reach out, say hello.

Photo by Clay Banks on Unsplash