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

Research of existing implementations by language #418

Open
7 tasks
Relequestual opened this issue Jun 20, 2023 · 15 comments
Open
7 tasks

Research of existing implementations by language #418

Relequestual opened this issue Jun 20, 2023 · 15 comments
Assignees
Labels
Status: Do not close This is a long term issue with dependant issues. This label prevent it to be closed automatically. summit-results Issues created as the result of or related to the 2023 JSON Schema in person summit

Comments

@Relequestual
Copy link
Member

Relequestual commented Jun 20, 2023

Problem: We do not know which languages have high quality implementations.

While members of the core team / TSC (not yet formally formed) have implementaitons in different languages, we do not know if we have "high quality" implemenations in all major languages.

Having high quality implementaitons in all major languages would improve the ecosystem. If we can identify gaps in implementations, we could then target resources to support specific languages or implementations. Overall, this would improve our ecosystem.

This item is just about the research and report, and not about making any actions or decisoions as a result of such a report.

  • Decide on a list of ~10-15 programming languages or environments to assess (by some combination of popularity, TIOBE, recent publicity, commonality of use for API-adjacent or data validation-adjacent use cases, etc.)
  • Compare this list against the JSON Schema implementations page
    • Confirm this page seems correct for the programming language by searching independently for JSON Schema implementations in GitHub search, Google, etc.
    • Extract a crude "health" metric of how good support for JSON Schema is in the language based on version availability, maturity of the implementation, activity of development in the implementation and compliance with the specification (time boxed to not be fully in depth)
    • Document languages which are popular but which are deficient in their JSON Schema support
  • Update any out of date information on the implementations page on the website
  • Write a blog post report for general consumptions about the method, findings, and resulting insights. (And maybe potential future work)

Assessed as high impact/low effort during our collaborators summit 2023.

@Relequestual Relequestual converted this from a draft issue Jun 20, 2023
@Relequestual Relequestual added the summit-results Issues created as the result of or related to the 2023 JSON Schema in person summit label Jun 21, 2023
@Julian
Copy link
Member

Julian commented Jun 26, 2023

(A brief task list is now in the issue description!)

@Relequestual Relequestual added the agenda Items tagged to be included in OCWM agenda label Jun 30, 2023
@gregsdennis
Copy link
Member

gregsdennis commented Jul 3, 2023

Have we decided on what "high quality implementation" means?

I suspect some of the results of #408 (interfaces) will be part of that definition.

@Relequestual
Copy link
Member Author

Could a work product of this include a published report? Target readership being technical leads and senior leadership.

@benjagm benjagm removed the agenda Items tagged to be included in OCWM agenda label Jul 4, 2023
@benjagm
Copy link
Collaborator

benjagm commented Jul 4, 2023

As peer the last OCWM #429:
@Julian it would be great if we add action items to this plan to describe what is our understanding of high quality implementations.

@Julian
Copy link
Member

Julian commented Jul 10, 2023

Hey! Can you guys fill me in on what was meant by

describe what is our understanding of high quality implementations.

Are you saying something more elaborate than the task in the description? I.e.

Extract a crude "health" metric of how good support for JSON Schema is in the language based on version availability, maturity of the implementation, activity of development in the implementation and compliance with the specification (time boxed to not be fully in depth)

@Relequestual
Copy link
Member Author

I think that's it, yeah. Maybe you'd think of that as a "further research" task, and so out of scope. And maybe you're right. I think we were expecting to see something less crude and more specific in terms of criteria that can be reported on a regular basis. Something we can later use to demonstrate the developing maturity of the ecosystem.

@gregsdennis
Copy link
Member

Yeah that's pretty much it. The question came up in the last call, and scanning the issue, I didn't see anything, so I commented. Then @benjagm posted the same question as a meeting update.

@Julian
Copy link
Member

Julian commented Jul 10, 2023

Got it, here are a few more specifics then, which I'll also add to the description:

  • does it fail some very large number of tests
  • does it support recent versions of JSON Schema
  • does it have recent releases
  • does it have recent commits
  • does it have open security warnings
  • does its maintainer consider it production-ready (or explicitly the reverse)
  • how many open issues and pull requests does it have

I don't know that I believe in any objective summary metric for these (i.e. one single "yes it's good" or "no it's not") -- I don't believe such a metric exists in general for software, and JSON Schema implementations being no different in my opinion -- someone using them may however use these factoids to decide whether it's good or not I think. Perhaps watching for "improvement" on that list though is a good way to measure maturity.

@Relequestual
Copy link
Member Author

I think it's worth noting in any results we do publish, that things like "recent releases or commets" are not always good indicators of anything on their own. If an implementation is 100% compliant and not javascript (ha), it's probably fine and doesn't need updates.

@Julian
Copy link
Member

Julian commented Jul 10, 2023

100% agree -- I think the same thing is true for "how many open issues does it have", some projects have lots of feature requests and some not, I think these are the exact sort of things which make a full summary metric basically impossible/useless.

@Relequestual Relequestual added the agenda Items tagged to be included in OCWM agenda label Jul 10, 2023
@benjagm benjagm removed the agenda Items tagged to be included in OCWM agenda label Jul 11, 2023
@delixfe
Copy link

delixfe commented Jul 14, 2023

For the "health" metric, the JSON-Schema-Test-Suite should play an important part. The criteria could be:

  • JSON-Schema-Test-Suite runs in the release flow
  • the tests are green for every supported schema version

@gregsdennis
Copy link
Member

@delixfe that's definitely working into the equation, however we also have to recognize that an implementation may pass a majority of the tests but still have open, unaddressed issues, or it won't be updated when new tests are added, or other things.

@Relequestual Relequestual added the agenda Items tagged to be included in OCWM agenda label Jul 25, 2023
@Relequestual Relequestual removed the agenda Items tagged to be included in OCWM agenda label Aug 14, 2023
@Relequestual Relequestual moved this from Unspecified to Planning in The JSON Schema Roadmap Aug 21, 2023
@Relequestual Relequestual moved this from Planning to Planned in The JSON Schema Roadmap Sep 12, 2023
@Relequestual
Copy link
Member Author

After a recent chat, @Julian will be writing up a PR that includes a reporting template for this work.

Julian added a commit to json-schema-org/website that referenced this issue Nov 13, 2023
There is obvious overlap here with our existing list of implementations
-- note though that we have loose (or no) criteria for listing
implementations on the page.

Here instead we wish to specifically raise languages for which we know
no good implementation to exist, despite the language being popular or
widespread, if any.

What's here does *not* yet render this data anywhere, nor does it
implement the dynamic API calling mentioned in the body (for retrieving
statistics from any listed repository).

What it does do is identify a simple initial list of languages (from
TIOBE and GitHub's own lists), and propose a format for tracking data
points about implementations meeting the proposed criteria.

The initial goal is to get feedback on this template, and to solicit
help in filling it in for these languages.

Refs: json-schema-org/community#418
@Julian
Copy link
Member

Julian commented Nov 13, 2023

I've put said initial PR up for review: #554 with essentially the same criteria as what we were discussing. Let me know what y'all think.

@benjagm benjagm moved this from Planned to In Progress in The JSON Schema Roadmap Nov 23, 2023
Julian added a commit that referenced this issue Nov 28, 2023
There is obvious slight overlap here with our existing list of
implementations on the web page -- note though that we have loose (or
no) criteria for listing implementations on the page.

Here instead we wish to specifically raise languages for which we know
no good implementation to exist, despite the language being popular or
widespread, if any.

What's here does *not* yet render this data anywhere, nor does it
implement the dynamic API calling mentioned in the body (for retrieving
statistics from any listed repository).

What it does do is identify a simple initial list of languages (from
TIOBE and GitHub's own lists), and propose a format for tracking data
points about implementations meeting the proposed criteria.

The initial goal is to get feedback on this template, and to solicit
help in filling it in for these languages.

Refs: #418
Copy link

github-actions bot commented Jan 5, 2025

Hello! 👋

This issue has been automatically marked as stale due to inactivity 😴

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 ❤️

@github-actions github-actions bot added the Status: Stale It's believed that this issue is no longer important to the requestor. label Jan 5, 2025
@Relequestual Relequestual added Status: Do not close This is a long term issue with dependant issues. This label prevent it to be closed automatically. and removed Status: Stale It's believed that this issue is no longer important to the requestor. labels Jan 13, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Status: Do not close This is a long term issue with dependant issues. This label prevent it to be closed automatically. summit-results Issues created as the result of or related to the 2023 JSON Schema in person summit
Projects
Status: In Progress
Development

No branches or pull requests

5 participants