Skip to content

Commit 6de5a04

Browse files
committed
Add a proposed mechanism for tracking known "quality" implementations.
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
1 parent b4e1533 commit 6de5a04

File tree

1 file changed

+90
-0
lines changed

1 file changed

+90
-0
lines changed
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
# This file, unlike the adjacent validator list data files, collects metrics to try and assist in identifying "higher quality" implementations.
2+
#
3+
# Absence from this list is not meant to be a slight against anyone or anyone's work certainly.
4+
#
5+
# The goals are to constructively help users choose libraries for their desired environment, and to identify gaps in the ecosystem that might need help.
6+
# In that spirit, the collection of languages below is simply an initial list, based largely on:
7+
#
8+
# * the GitHub popularity list (https://octoverse.github.com/2022/top-programming-languages)
9+
# * the TIOBE index (https://www.tiobe.com/tiobe-index/)
10+
#
11+
# where it combines languages at the top of the popularity list with those on the rising / fastest growing list.
12+
#
13+
# Only partial information is filled in here.
14+
#
15+
# You can help!
16+
# For each language, we wish to track whether one or more known implementations exist which:
17+
#
18+
# * Fail less than 2% (around 30) tests from the official JSON Schema test suite
19+
# (This 2% number was chosen simply because it represents the dividing point between one cluster of implementations supported by Bowtie.
20+
# Above this number is a collection of implementations failing larger orders of magnitude of tests).
21+
# * Supports one of the most recent 2 releases of JSON Schema
22+
# * Has had a release of itself in the last 3 years (which is around the timeline on which JSON Schema itself has seen its last release)
23+
# * Has had some human-authored commit in the last year
24+
# * Does not have explicit indication, by its maintainer or documentation, that it is not production ready
25+
#
26+
# and then highlight any languages for which this is not the case.
27+
#
28+
# For languages that *do* have one or more such implementations, we then wish to include:
29+
#
30+
# * the name and link to the implementation
31+
# * the date of its last commit
32+
# * the date of its last release
33+
# * the number of open security vulnerabilities it has, if known
34+
# * the number of open issues it has on its issue tracker
35+
# * the number of open pull requests it has
36+
# * whether it implements some or all of the interfaces specified on our Common Interfaces page (https://json-schema.org/implementers/interfaces),
37+
# and if so, which
38+
#
39+
# A number of the above data points are likely to change often.
40+
# We therefore assume only some of the above should be tracked in this file.
41+
# The remainder will likely be fetched dynamically from the GitHub API (or equivalent, for any implementations hosted elsewhere).
42+
#
43+
# An example entry for this file is then:
44+
#
45+
# - language: Blub
46+
# implementations:
47+
# - name: jsonschema-ftw
48+
# url: https://example.com/someone/jsonschema-ftw
49+
# known_to_have:
50+
# many_failing_tests: false
51+
# recent_draft_support: true
52+
# recent_release: true
53+
# recent_commit: true
54+
# non_production_status: false
55+
# metrics:
56+
# # last_commit_date: fetched from GitHub
57+
# # last_release_date: fetched from GitHub
58+
# # open_security_vulnerabilities: fetched from GitHub
59+
# # open_issues: fetched from GitHub
60+
# # open_prs: fetched from GitHub
61+
# known_interfaces:
62+
# instance-validation: https://docs.jsonschema-ftw.com/validation/validate_function
63+
# version-detection: https://docs.jsonschema-ftw.com/validation/version_of_schema
64+
#
65+
# Note that *not* all of the above must precisely match the above!
66+
# Specifically, an implementation with *no* recent commits is not disqualified from being considered "high quality".
67+
# One with a high number of failing tests however, is indeed likely not to meet the definition.
68+
# The above is simply meant to track these data points without necessarily imposing all of them as gospel -- users of these libraries should make their own judgements there.
69+
#
70+
#
71+
# Please pick a language you're familiar with and feel free to fill in such an entry!
72+
# When updating this page, it also is helpful to double check that what you find about an implementation is also up to date in the adjacent implementation data files (which track slightly different data points).
73+
#
74+
# Feedback on this format itself is also welcome in an issue!
75+
76+
- language: C
77+
- language: C#
78+
- language: C++
79+
- language: Command Line / Shell
80+
- language: Go
81+
- language: Java
82+
- language: JavaScript
83+
- language: Kotlin
84+
- language: Lua
85+
- language: PHP
86+
- language: Python
87+
- language: Ruby
88+
- language: Rust
89+
- language: Swift
90+
- language: TypeScript

0 commit comments

Comments
 (0)