community icon indicating copy to clipboard operation
community copied to clipboard

GSoD: How to Write a JSON Schema Implementation (... Using Bowtie)

Open Julian opened this issue 2 years ago • 4 comments

Project title

How to Write a JSON Schema Implementation Using Bowtie

Brief Description

Imagine you're someone who wants to create a new JSON Schema implementation -- a tool for someone, in some programming language, to use to validate JSON Schemas against their data.

The JSON Schema test suite is an amazing resource you can use to build up your new tool. It contains a library of tests with "known correct results" which you can use to help you implement correct behavior. The recent Bowtie tool can be used to interact with the suite if you integrate with it.

Let's show how to do so for a completely new implementation in a hands-on tutorial taking someone through the path they might take. Here's an example of how such a tutorial might be structured:

  • Writing a Bowtie Harness, even though you don't have any code yet -- to see all the tests fail but run!
  • Picking how to structure your new implementation's API for validating
  • Picking which JSON Schema keywords to start with
  • Passing your first tests for that keyword via Bowtie
  • Making a mistake in your API and having to rework it
  • Supporting multiple versions of JSON Schema
  • ...

Expected Outcomes

The main deliverable here is a tutorial, rather than the implementation itself, though you may of course also publish the implementation!

Skills Required

Good knowledge of a programming language of your choice Great writing skills, and maybe some previous time you wrote a post or tutorial for others to follow

Mentors

@Julian

Expected Difficulty Medium

Expected Time Commitment 350 hour

Julian avatar Jan 30 '24 16:01 Julian

Hi Julian, this seems to be a documentation idea. Are you ok if we keep this one for Google Season of Docs? It is great you detailed this idea so well because this is exactly what I had in mind for release 6 of our documentation strategy: https://github.com/json-schema-org/website/issues/158

benjagm avatar Jan 30 '24 20:01 benjagm

Great! Yeah all fine, agree it fits more with docs, I put this one in yesterday just because it randomly came to mind as I was otherwise distracted, will add a few more.

Julian avatar Jan 31 '24 15:01 Julian

Hi, @Julian @benjagm I would like to perform this task under GSoD, attaching my proposal PR in the GSoD repo. https://github.com/google/season-of-docs/pull/1199

DhairyaMajmudar avatar Feb 23 '24 06:02 DhairyaMajmudar

Hello! :wave:

This issue has been automatically marked as stale due to inactivity :sleeping:

It will be closed in 180 days if no further activity occurs. To keep it active, please add a comment with more details.

There can be many reasons why a specific issue has no activity. The most probable cause is a lack of time, not a lack of interest.

Let us figure out together how to push this issue forward. Connect with us through our slack channel : https://json-schema.org/slack

Thank you for your patience :heart:

github-actions[bot] avatar Jun 16 '24 00:06 github-actions[bot]