That’s right! The json-everything
project is officially a .Net Foundation member!
How it started
Inspiration from JSON Schema
A couple years ago JSON Schema started the onboarding process to join the OpenJS Foundation. Joining a foundation means that they can lean on the experience of other members for help on things like governance, outreach, project organization, etc. It helps to have the backing of a larger organization.
However, while the specification group would be joining the Foundation, all of the tooling built around the spec remained independent.
Sadly, the OpenJS Foundation onboarding journey was interrupted, so JSON Schema is still independent. We’ll likely try again, maybe with another foundation, but that’s on the horizon for right now… and this post is about json-everything
anyway!
A push via JSON Path
As part of the JSON Path specification effort with IETF, I reached out to a lot of JSON Path implementations to let them know a specification was coming, and I kept my eyes open for other places where JSON Path was being used and/or requested. One of those places was a .Net issue requesting that System.Text.Json get first-party support for the query syntax. I posted about JsonPath.Net, and one of the responses intrigued me.
That is awesome and for my personal stuff this is great, but professionally, I might be limited by corporate policy to use 1st party (Microsoft), or 2nd party (.net foundation membered), or “verified” 3rd party, (Newtonsoft), libraries. - @frankhaugen
I had never considered that a professional wouldn’t be able to use my libraries because of a corporate policy.
They go on to say that many of these policies are driven by “auditing agencies for things like SOC2 and ISO2700 -certifications.”
As I created these libraries to help developers make great software, this barrier bothered me.
Investigation
Looking into the three options mentioned, I first discovered that I am not Microsoft. (This was a devastating realization, and I had to re-evaluate my entire worldview.) I’m also not a .Net Foundation member, but I could look into joining. But first I wondered what it would take to have my packages verified on Nuget.
Verifying packages is pretty simple: you just need a signing certificate. There are a lot of companies that provide them… and WOW are they expensive!
So, .Net Foundation seemed to be my best option. I researched the benefits, the requirements, and the T&Cs. (I’m looking for links to all of the pages I found before, but the site has changed, and it looks like the application process now starts by filling out a web form. When I looked into it before, I just had to open an issue on the .Net Foundation’s Projects repo. If you’d like to join, I recommend going through the web form.)
Application
They use a very extensive issue template that plainly lists all of their requirements. Fortunately, through wanting to make my repository the best it could be, most of the requirements had already been met.
I had some questions about the IP implications of joining, and the Projects Committee was very helpful. Shaun Walker answered these questions to my satisfaction, and Chris Sfanos has been guiding the application through the rest of the process.
Acceptance
The Projects Committee decides on projects to be inducted on what appears to be a monthly basis. The result of their decision then goes to the .Net Foundation Board, who ultimately accepts or rejects the application.
I was quite pleased when I received notification that my humble json-everything
had been accepted.
How it’s going
I’m currently finishing up the onboarding process. There a checklist on my application issue that details all of the things that need to happen (or ensure have happened).
I think the biggest change is that the project will be under a CLA. I’ve read through it, and it basically says the contributor allows the project and .Net Foundation to distribute and potentially patent their contribution (as part of the project). I’m not sure anything contributed to json-everything
will or could be patented, but I suppose it’s come up enough for them to add it to the CLA. Outside of that, the contributor retains all rights.
I’ve also moved all of the related repos into a new json-everything
org, and I spruced up the place a bit, made all the readmes pretty. GitHub has done a good job of applying redirects, so everyone’s links should still work.
Then there are some housekeeping things for the repos and their public announcement, which will come via their newsletter.
The future
The future is bright for the project. I expect to be working mostly on the new learning site by adding more lessons for JsonSchema.Net and the other libraries.
I’ve been working hard over in JSON-Schema-Land getting the spec ready for its next release. Keep an eye out on the JSON Schema blog for news about that.
And hopefully this means that more people can use my work!
If you like the work I put out, and would like to help ensure that I keep it up, please consider becoming a sponsor!