From a1f6e2fc31d5b1f0ff509a6acf04ce733571389e Mon Sep 17 00:00:00 2001 From: Ben Hutton Date: Tue, 28 May 2024 15:34:35 +0100 Subject: [PATCH 01/31] Initial version of schema for tooling self identification document --- .../identification.schema.json | 195 ++++++++++++++++++ 1 file changed, 195 insertions(+) create mode 100644 projects/tooling-self-identification/identification.schema.json diff --git a/projects/tooling-self-identification/identification.schema.json b/projects/tooling-self-identification/identification.schema.json new file mode 100644 index 0000000..fb0c5df --- /dev/null +++ b/projects/tooling-self-identification/identification.schema.json @@ -0,0 +1,195 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://schemas.json-schema.org/ecosystem/identification-v-0.0.1", + "title": "Tooling Project Self Identification Document", + "$comment": "Decided not to use JSON-LD and Schema.org concepts, as this complicates things without a clear benefit for our use case.", + "description": "This is a schema which represents a self reporting document published by a JSON Schema tooling creator, maintainer, or vendor.", + "$defs": { + "persons": { + "type": "array", + "items": { + "$comment": "TODO: Fill in this schema.", + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "github": { + "type": "string" + } + } + } + } + }, + "type": "object", + "properties": { + "name": { + "description": "The name of the project", + "type": "string" + }, + "description": { + "description": "A brief description of the project", + "type": "string" + }, + "toolingType": { + "description": "The category of tooling of the project", + "type": "string", + "enum": [ + "validator", + "hyper-schema", + "benchmarks", + "documentation", + "LDO-utility", + "code-to-schema", + "data-to-schema", + "model-to-schema", + "schema-to-types", + "schema-to-code", + "schema-to-web-UI", + "schema-to-data", + "util-general-processing", + "util-schema-to-schema", + "util-draft-migration", + "util-format-conversion", + "util-testing", + "editors", + "schema-to-documentation", + "schema-repository", + "linter", + "linter-plugins" + ] + }, + "creators": { + "description": "The creators or authors of the project", + "$ref": "#/$defs/persons" + }, + "maintainers": { + "description": "The maintainers of the project", + "$ref": "#/$defs/persons" + }, + "license": { + "description": "The license under which the project is distributed. SPDX expressions or a URL.", + "$comment": "Schemastore package.json schema uses enum to assist in auto complete. Could be worth doing the same.", + "type": "string" + }, + "projectType": { + "description": "The type of project, classified by Nadia Eghbal in Working in Public - https://project-types.github.io", + "type": "string", + "enum": [ + "toy", + "club", + "stadium", + "federation" + ] + }, + "repositoryURL": { + "type": "string", + "description": "The URL of the project's repository" + }, + "repositoryStatus": { + "description": "The status of the project's repository, defined at https://www.repostatus.org", + "type": "string", + "enum": [ + "concpet", + "WIP", + "suspended", + "abandoned", + "active", + "inactive", + "unsupported", + "moved" + ] + }, + "homepageURL": { + "description": "The URL of the project's homepage", + "type": "string" + }, + "documentation": { + "$comment": "This is reserved for future use", + "type": "object" + }, + "supportedDialects": { + "description": "The declared supported dialects of JSON Schema. This includes draft version identifiers.", + "type": "object", + "properties": { + "draft": { + "description": "An array of dialects of JSON Schema.", + "type": "array", + "items": { + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + "2019-09", + "2020-12" + ] + } + } + } + }, + "bowtie": { + "description": "Information related to compliance testing by Bowtie - https://bowtie.report - Presence of this property implies the tool is being tested in Bowtie", + "type": "object", + "properties": { + "identifier": { + "description": "The identifier used for the tool in Bowtie, including the language.", + "examples": [ + "dotnet-jsonschema-net", + "js-ajv" + ] + } + }, + "required": [ + "identifier" + ], + "additionalProperties": false + }, + "toolingListingNotes": { + "description": "Notes about the tooling which will appear in the tooling listing on the website.", + "type": "string" + }, + "compliance": { + "description": "Details on what must be done to make the implementation the most compliant that it can be. This is displayed on the website with the tooling details", + "type": "object", + "properties": { + "config": { + "type": "object", + "properties": { + "docs": { + "description": "A URL which links to the documentation which explains how to follow the given instructions.", + "type": "string" + }, + "instructions": { + "description": "Instructions on how to make the implementation the most compliant.", + "type": "string" + } + } + } + } + }, + "landscape": { + "description": "Additional informatin that should be used when generating the JSON Schema landscape diagram - https://github.com/json-schema-org/landscape", + "type": "object", + "properties": { + "logo": { + "description": "The filename of the logo to use for the JSON Schema landscape diagram - Must be included in the landscape repo under the logos directory, and in SVG format.", + "type": "string" + } + } + }, + "last-updated": { + "description": "A date in the format of YYYY-MM-DD which repersents when the document was last updated.", + "type": "string", + "regex": "^\\d{4}\\-(0[1-9]|1[012])\\-(0[1-9]|[12][0-9]|3[01])$" + } + }, + "required": [ + "name", + "repositoryURL" + ], + "additionalProperties": false +} \ No newline at end of file From 6c0fc78e22d7d6aead768934c645c6246c669f67 Mon Sep 17 00:00:00 2001 From: Ben Hutton Date: Thu, 6 Jun 2024 13:15:03 +0100 Subject: [PATCH 02/31] Make tooling type field an array to avoid needing duplicate entries for multi-functional tools --- .../identification.schema.json | 57 ++++++++++--------- 1 file changed, 31 insertions(+), 26 deletions(-) diff --git a/projects/tooling-self-identification/identification.schema.json b/projects/tooling-self-identification/identification.schema.json index fb0c5df..dd696b4 100644 --- a/projects/tooling-self-identification/identification.schema.json +++ b/projects/tooling-self-identification/identification.schema.json @@ -32,32 +32,37 @@ "type": "string" }, "toolingType": { - "description": "The category of tooling of the project", - "type": "string", - "enum": [ - "validator", - "hyper-schema", - "benchmarks", - "documentation", - "LDO-utility", - "code-to-schema", - "data-to-schema", - "model-to-schema", - "schema-to-types", - "schema-to-code", - "schema-to-web-UI", - "schema-to-data", - "util-general-processing", - "util-schema-to-schema", - "util-draft-migration", - "util-format-conversion", - "util-testing", - "editors", - "schema-to-documentation", - "schema-repository", - "linter", - "linter-plugins" - ] + "description": "The categories of tooling for the project", + "type": "array", + "uniqueItems": true, + "items": { + "description": "One of the categories of tooling of the project", + "type": "string", + "enum": [ + "validator", + "hyper-schema", + "benchmarks", + "documentation", + "LDO-utility", + "code-to-schema", + "data-to-schema", + "model-to-schema", + "schema-to-types", + "schema-to-code", + "schema-to-web-UI", + "schema-to-data", + "util-general-processing", + "util-schema-to-schema", + "util-draft-migration", + "util-format-conversion", + "util-testing", + "editors", + "schema-to-documentation", + "schema-repository", + "linter", + "linter-plugins" + ] + } }, "creators": { "description": "The creators or authors of the project", From 18f95d1f327c81eed9027122095d0e97b7643e78 Mon Sep 17 00:00:00 2001 From: Ben Hutton Date: Thu, 6 Jun 2024 13:16:01 +0100 Subject: [PATCH 03/31] Fix use of hyphen rather than camelcase --- projects/tooling-self-identification/identification.schema.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/tooling-self-identification/identification.schema.json b/projects/tooling-self-identification/identification.schema.json index dd696b4..a56c38a 100644 --- a/projects/tooling-self-identification/identification.schema.json +++ b/projects/tooling-self-identification/identification.schema.json @@ -186,7 +186,7 @@ } } }, - "last-updated": { + "lastUpdated": { "description": "A date in the format of YYYY-MM-DD which repersents when the document was last updated.", "type": "string", "regex": "^\\d{4}\\-(0[1-9]|1[012])\\-(0[1-9]|[12][0-9]|3[01])$" From 60bce4329650397f78cfb552abc0e243376e9680 Mon Sep 17 00:00:00 2001 From: Ben Hutton Date: Thu, 6 Jun 2024 13:16:56 +0100 Subject: [PATCH 04/31] Add required fields to the base object --- .../tooling-self-identification/identification.schema.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/projects/tooling-self-identification/identification.schema.json b/projects/tooling-self-identification/identification.schema.json index a56c38a..bd0ad40 100644 --- a/projects/tooling-self-identification/identification.schema.json +++ b/projects/tooling-self-identification/identification.schema.json @@ -194,7 +194,10 @@ }, "required": [ "name", - "repositoryURL" + "description", + "repositoryURL", + "toolingType", + "lastUpdated" ], "additionalProperties": false } \ No newline at end of file From 458de5870aaa47b42de4ef0807ae32ed38a7d358 Mon Sep 17 00:00:00 2001 From: Ben Hutton Date: Thu, 6 Jun 2024 13:24:16 +0100 Subject: [PATCH 05/31] Tighten up schema requirements --- .../identification.schema.json | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/projects/tooling-self-identification/identification.schema.json b/projects/tooling-self-identification/identification.schema.json index bd0ad40..226ab89 100644 --- a/projects/tooling-self-identification/identification.schema.json +++ b/projects/tooling-self-identification/identification.schema.json @@ -7,9 +7,13 @@ "$defs": { "persons": { "type": "array", + "uniqueItems": "true", "items": { - "$comment": "TODO: Fill in this schema.", "type": "object", + "required": [ + "name", + "github" + ], "properties": { "name": { "type": "string" @@ -17,7 +21,8 @@ "github": { "type": "string" } - } + }, + "additionalProperties": false } } }, From 05e0f0385fcc4de1d9b62e5140700d9f823b764e Mon Sep 17 00:00:00 2001 From: Ben Hutton Date: Thu, 6 Jun 2024 14:48:49 +0100 Subject: [PATCH 06/31] Add requirement to include $schema --- .../tooling-self-identification/identification.schema.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/projects/tooling-self-identification/identification.schema.json b/projects/tooling-self-identification/identification.schema.json index 226ab89..2675e37 100644 --- a/projects/tooling-self-identification/identification.schema.json +++ b/projects/tooling-self-identification/identification.schema.json @@ -28,6 +28,11 @@ }, "type": "object", "properties": { + "$schema": { + "description": "Identifies the exact version of the schema and self reporting data structure to which the file intends to conform", + "type": "string", + "pattern": "https://schemas.json-schema.org/ecosystem/identification-v-\\d\\.\\d\\.\\d" + }, "name": { "description": "The name of the project", "type": "string" From ea0601a75aacdba3fd38248a0b9fda8067664581 Mon Sep 17 00:00:00 2001 From: Ben Hutton Date: Thu, 6 Jun 2024 15:31:15 +0100 Subject: [PATCH 07/31] Add opt-out for appearing on the landscape, so tool could just appear on the website --- .../tooling-self-identification/identification.schema.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/projects/tooling-self-identification/identification.schema.json b/projects/tooling-self-identification/identification.schema.json index 2675e37..75948da 100644 --- a/projects/tooling-self-identification/identification.schema.json +++ b/projects/tooling-self-identification/identification.schema.json @@ -193,6 +193,11 @@ "logo": { "description": "The filename of the logo to use for the JSON Schema landscape diagram - Must be included in the landscape repo under the logos directory, and in SVG format.", "type": "string" + }, + "optOut": { + "description": "Set this value to a boolean `true` value if you do not wish to be included in the JSON Schema Landscape. If you do, we would like to hear why.", + "type": "boolean", + "default": false } } }, From a6054b31328c1316a17cb62f6f648836836f9ff0 Mon Sep 17 00:00:00 2001 From: Ben Hutton Date: Thu, 6 Jun 2024 15:31:42 +0100 Subject: [PATCH 08/31] Add readme to explain the project and its purpose --- .../tooling-self-identification/readme.md | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 projects/tooling-self-identification/readme.md diff --git a/projects/tooling-self-identification/readme.md b/projects/tooling-self-identification/readme.md new file mode 100644 index 0000000..aaac2cd --- /dev/null +++ b/projects/tooling-self-identification/readme.md @@ -0,0 +1,28 @@ +# Self Identification of Open Source JSON Schema Tooling + +JSON Schema has a vast ecosystem. We have documented a fraction of the existing tools out there for JSON Schema. + +This project aims to enable tooling authors and maintainers to detail their tools existance and additional informaiton to be listed on the JSON Schema website and Landscape diagram. + +The approach is to define a data structure for a file which is located in their own repo, which will then be located and extracted into a single file within this repository. Other repositories such as the website and landscape repositories, will then copy and transform the data as required. The data may be used to augment or totally replace the data they hold, if any. + +## Just Open Source for now + +This project only aims to capture the open source tooling, and does not include detailing or tracking of tools which are not open source. + +There may be further projects which aim to collate and combine data collected from other locations (such as this project), and primary data (such as information deposited into the website or later this repository in relation to close source tools). + +## How do I self identify my tool? + +We (will) have automation that looks for data daily. It will look for data in GitHub repositories which meet the following conditions: + +- Repository has the Topic `json-schema` assigned +- Has a file called `.json-schema-identification.json` in the project's root +- The JSON file validates successfully against the version of the self identification JSON Schema it declares + +## Why should I include this file in my tooling repository? + +If you define this file in your tooling repository, you will: +- Be able to update your listing on the JSON Schema website's tooling page +- Have your tool listing show it's project status and be filterable based on the project status +- Have your tool shown in the JSON Schema Landscape diagram (unless you opt out) \ No newline at end of file From 381571449f494ae8ddd30f910562909e2e202cdb Mon Sep 17 00:00:00 2001 From: Ben Hutton Date: Fri, 7 Jun 2024 15:33:28 +0100 Subject: [PATCH 09/31] Add to languages enum and move some values to new envrionments field. Also add editor-plugins as tooling category --- .../identification.schema.json | 76 ++++++++++++++++++- 1 file changed, 75 insertions(+), 1 deletion(-) diff --git a/projects/tooling-self-identification/identification.schema.json b/projects/tooling-self-identification/identification.schema.json index 75948da..bb029bd 100644 --- a/projects/tooling-self-identification/identification.schema.json +++ b/projects/tooling-self-identification/identification.schema.json @@ -66,7 +66,8 @@ "util-draft-migration", "util-format-conversion", "util-testing", - "editors", + "editor", + "editor-plugins", "schema-to-documentation", "schema-repository", "linter", @@ -74,6 +75,79 @@ ] } }, + "languages": { + "description": "The languages the tool supports or can be used in or with", + "type": "array", + "items": { + "description": "Individual language name, from the list unless not included.", + "type": "string", + "anyOf": [ + { + "enum": [ + [ + "Common Lisp", + "Rust", + "Elm", + ".NET", + "PHP", + "Clojure", + "Python", + "XSD", + "Scala", + "Orderly", + "Kotlin", + "Elixir", + "RAML", + "Erlang", + "Java", + "Lua/LuaJIT", + "OpenAPI", + "Perl", + "TypeScript", + "Ruby", + "Objective-C", + "Swift", + "C#", + "Go", + "C++", + "JavaScript" + ] + ] + }, + { + "description": "A string value not yet included in the list of languages" + } + ] + } + }, + "environment": { + "description": "The platforms or environments in which the tool or library is designed to operate. This field is optional and should be included when the tool or library is specific to a certain platform or environment.", + "type": "array", + "items": { + "type": "string", + "anyOf": [ + { + "enum": [ + "Web (Online)", + "GitHub Actions", + "Command Line", + "COM/ActiveX" + ] + }, + { + "description": "A string value not yet included in the list of envrionments" + } + ] + } + }, + "dependsOnValidators": { + "description": "Documents if the tool is the primary validator provider or depends on another tool", + "type": "array", + "items": { + "description": "The names of the tooling that this tooling depends upon", + "type": "string" + } + }, "creators": { "description": "The creators or authors of the project", "$ref": "#/$defs/persons" From 0b7700451f61c345c0b811a79f5c0fa0dba73284 Mon Sep 17 00:00:00 2001 From: Ben Hutton Date: Fri, 7 Jun 2024 15:34:10 +0100 Subject: [PATCH 10/31] Harden schema definition by preventing additional properties which was missed --- .../tooling-self-identification/identification.schema.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/projects/tooling-self-identification/identification.schema.json b/projects/tooling-self-identification/identification.schema.json index bb029bd..de9c653 100644 --- a/projects/tooling-self-identification/identification.schema.json +++ b/projects/tooling-self-identification/identification.schema.json @@ -218,7 +218,8 @@ ] } } - } + }, + "additionalProperties": false }, "bowtie": { "description": "Information related to compliance testing by Bowtie - https://bowtie.report - Presence of this property implies the tool is being tested in Bowtie", From 81922bb22c5c36a1b3ebedc484ccff4f997ac804 Mon Sep 17 00:00:00 2001 From: Ben Hutton Date: Tue, 11 Jun 2024 09:17:46 +0100 Subject: [PATCH 11/31] Update projects/tooling-self-identification/identification.schema.json Fix typo Co-authored-by: Julian Berman --- projects/tooling-self-identification/identification.schema.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/tooling-self-identification/identification.schema.json b/projects/tooling-self-identification/identification.schema.json index de9c653..eda26df 100644 --- a/projects/tooling-self-identification/identification.schema.json +++ b/projects/tooling-self-identification/identification.schema.json @@ -179,7 +179,7 @@ "description": "The status of the project's repository, defined at https://www.repostatus.org", "type": "string", "enum": [ - "concpet", + "concept", "WIP", "suspended", "abandoned", From e48621ee8ddd4fa184a3068b5e09f16b46c78747 Mon Sep 17 00:00:00 2001 From: Ben Hutton Date: Tue, 11 Jun 2024 09:19:40 +0100 Subject: [PATCH 12/31] Update projects/tooling-self-identification/identification.schema.json Fix typo Co-authored-by: Julian Berman --- projects/tooling-self-identification/identification.schema.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/tooling-self-identification/identification.schema.json b/projects/tooling-self-identification/identification.schema.json index eda26df..4510aa7 100644 --- a/projects/tooling-self-identification/identification.schema.json +++ b/projects/tooling-self-identification/identification.schema.json @@ -262,7 +262,7 @@ } }, "landscape": { - "description": "Additional informatin that should be used when generating the JSON Schema landscape diagram - https://github.com/json-schema-org/landscape", + "description": "Additional information that should be used when generating the JSON Schema landscape diagram - https://github.com/json-schema-org/landscape", "type": "object", "properties": { "logo": { From c753ae551f12d67bfa09fd24429974f5120d14cb Mon Sep 17 00:00:00 2001 From: Ben Hutton Date: Tue, 11 Jun 2024 10:09:24 +0100 Subject: [PATCH 13/31] Make description not required and note that if the source is hosted on a supported platform, the API will be used to obtain the project description. In response to https://github.com/json-schema-org/ecosystem/pull/12/files/0b7700451f61c345c0b811a79f5c0fa0dba73284\?diff\=unified\&w\=0\#r1633514610 --- projects/tooling-self-identification/identification.schema.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/tooling-self-identification/identification.schema.json b/projects/tooling-self-identification/identification.schema.json index 4510aa7..0a263ed 100644 --- a/projects/tooling-self-identification/identification.schema.json +++ b/projects/tooling-self-identification/identification.schema.json @@ -39,6 +39,7 @@ }, "description": { "description": "A brief description of the project", + "$comment": "If this is omitted and description is already defined on GitHub or GitLab for the repository, we will use that information.", "type": "string" }, "toolingType": { @@ -284,7 +285,6 @@ }, "required": [ "name", - "description", "repositoryURL", "toolingType", "lastUpdated" From dc45af863e92258d660721ab567ad1e38d762c57 Mon Sep 17 00:00:00 2001 From: Ben Hutton Date: Tue, 11 Jun 2024 11:51:17 +0100 Subject: [PATCH 14/31] Specify that non-unique names should use the full URL of the source repository In response to https://github.com/json-schema-org/ecosystem/pull/12/files/0b7700451f61c345c0b811a79f5c0fa0dba73284\?diff\=unified\&w\=0\#r1633520481 --- projects/tooling-self-identification/identification.schema.json | 1 + 1 file changed, 1 insertion(+) diff --git a/projects/tooling-self-identification/identification.schema.json b/projects/tooling-self-identification/identification.schema.json index 0a263ed..0ff821d 100644 --- a/projects/tooling-self-identification/identification.schema.json +++ b/projects/tooling-self-identification/identification.schema.json @@ -146,6 +146,7 @@ "type": "array", "items": { "description": "The names of the tooling that this tooling depends upon", + "$comment": "In the case where it's known that there are implementations with the same name in different programming languages, please use the repository or source URL.", "type": "string" } }, From 40924c4fe99c1bb3fa9622b4607ec71172723def Mon Sep 17 00:00:00 2001 From: Ben Hutton Date: Tue, 11 Jun 2024 16:08:08 +0100 Subject: [PATCH 15/31] Remove project type and repo status. Hard to justify and may increase friction. In response to two PR commnets --- .../identification.schema.json | 56 +++++++++---------- 1 file changed, 26 insertions(+), 30 deletions(-) diff --git a/projects/tooling-self-identification/identification.schema.json b/projects/tooling-self-identification/identification.schema.json index 0ff821d..5f10c8c 100644 --- a/projects/tooling-self-identification/identification.schema.json +++ b/projects/tooling-self-identification/identification.schema.json @@ -11,18 +11,38 @@ "items": { "type": "object", "required": [ - "name", - "github" + "username", + "platform" ], "properties": { "name": { + "description": "The persons name, should they wish to provide it", "type": "string" }, - "github": { + "email": { + "description": "" + }, + "username": { + "description": "The persons username on the platform where the user exists", "type": "string" - } - }, - "additionalProperties": false + }, + "platform": { + "type": "string", + "anyOf": [ + { + "enum": [ + "github", + "gitlab", + "bitbucket" + ] + }, + { + "description": "A string value not yet included in the list of platforms" + } + ] + }, + "additionalProperties": false + } } } }, @@ -163,34 +183,10 @@ "$comment": "Schemastore package.json schema uses enum to assist in auto complete. Could be worth doing the same.", "type": "string" }, - "projectType": { - "description": "The type of project, classified by Nadia Eghbal in Working in Public - https://project-types.github.io", - "type": "string", - "enum": [ - "toy", - "club", - "stadium", - "federation" - ] - }, "repositoryURL": { "type": "string", "description": "The URL of the project's repository" }, - "repositoryStatus": { - "description": "The status of the project's repository, defined at https://www.repostatus.org", - "type": "string", - "enum": [ - "concept", - "WIP", - "suspended", - "abandoned", - "active", - "inactive", - "unsupported", - "moved" - ] - }, "homepageURL": { "description": "The URL of the project's homepage", "type": "string" From 3c0fae8f511ea29eacfa05608b085ea11fa77dd1 Mon Sep 17 00:00:00 2001 From: Ben Hutton Date: Tue, 11 Jun 2024 16:20:27 +0100 Subject: [PATCH 16/31] Aligns naming convention with Bowtie, which makes sense. --- .../identification.schema.json | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/projects/tooling-self-identification/identification.schema.json b/projects/tooling-self-identification/identification.schema.json index 5f10c8c..3847729 100644 --- a/projects/tooling-self-identification/identification.schema.json +++ b/projects/tooling-self-identification/identification.schema.json @@ -183,13 +183,15 @@ "$comment": "Schemastore package.json schema uses enum to assist in auto complete. Could be worth doing the same.", "type": "string" }, - "repositoryURL": { + "source": { + "description": "The URL of the project's repository", "type": "string", - "description": "The URL of the project's repository" + "format": "URL" }, - "homepageURL": { + "homepage": { "description": "The URL of the project's homepage", - "type": "string" + "type": "string", + "format": "URL" }, "documentation": { "$comment": "This is reserved for future use", @@ -282,7 +284,7 @@ }, "required": [ "name", - "repositoryURL", + "source", "toolingType", "lastUpdated" ], From 3b0f9d7e1dfce28d2eb2261a1486236992424739 Mon Sep 17 00:00:00 2001 From: Ben Hutton Date: Tue, 11 Jun 2024 16:24:01 +0100 Subject: [PATCH 17/31] Remove lastUpdated field. We don't need this data here, and we can get it if we do using the time the file was last updated. In response to https://github.com/json-schema-org/ecosystem/pull/12/files/0b7700451f61c345c0b811a79f5c0fa0dba73284\?diff\=unified\&w\=0\#r1633530303 --- .../identification.schema.json | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/projects/tooling-self-identification/identification.schema.json b/projects/tooling-self-identification/identification.schema.json index 3847729..28a7e27 100644 --- a/projects/tooling-self-identification/identification.schema.json +++ b/projects/tooling-self-identification/identification.schema.json @@ -275,18 +275,12 @@ "default": false } } - }, - "lastUpdated": { - "description": "A date in the format of YYYY-MM-DD which repersents when the document was last updated.", - "type": "string", - "regex": "^\\d{4}\\-(0[1-9]|1[012])\\-(0[1-9]|[12][0-9]|3[01])$" } }, "required": [ "name", "source", - "toolingType", - "lastUpdated" + "toolingType" ], "additionalProperties": false } \ No newline at end of file From 9c098290d92c5bddd350145145134a5e610dc10f Mon Sep 17 00:00:00 2001 From: Ben Hutton Date: Tue, 11 Jun 2024 16:27:29 +0100 Subject: [PATCH 18/31] Add paragraph to recognize that we want to support other source hosts. In response to https://github.com/json-schema-org/ecosystem/pull/12/files/0b7700451f61c345c0b811a79f5c0fa0dba73284\?diff\=unified\&w\=0\#r1633535131 --- projects/tooling-self-identification/readme.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/projects/tooling-self-identification/readme.md b/projects/tooling-self-identification/readme.md index aaac2cd..885ab16 100644 --- a/projects/tooling-self-identification/readme.md +++ b/projects/tooling-self-identification/readme.md @@ -20,6 +20,8 @@ We (will) have automation that looks for data daily. It will look for data in Gi - Has a file called `.json-schema-identification.json` in the project's root - The JSON file validates successfully against the version of the self identification JSON Schema it declares +While this tooling will initially only use GitHub, we will begin working on supporting other source hosts as soon as possible. We recognize that GitHub is not the only source code platform. If you'd like to help with this, please reach make yourself know in our Slack server. + ## Why should I include this file in my tooling repository? If you define this file in your tooling repository, you will: From 2749e0609a623cd7a9d4923cd11cdd409a118bf5 Mon Sep 17 00:00:00 2001 From: Ben Hutton Date: Wed, 12 Jun 2024 15:11:13 +0100 Subject: [PATCH 19/31] Add definitions for each tooling category. Fix typos. Remove schema-to-documentation category from tooling types in schema. This seems the same as the category --- .../identification.schema.json | 1 - .../tooling-self-identification/readme.md | 41 +++++++++++++++++-- 2 files changed, 38 insertions(+), 4 deletions(-) diff --git a/projects/tooling-self-identification/identification.schema.json b/projects/tooling-self-identification/identification.schema.json index 28a7e27..9c60fbb 100644 --- a/projects/tooling-self-identification/identification.schema.json +++ b/projects/tooling-self-identification/identification.schema.json @@ -89,7 +89,6 @@ "util-testing", "editor", "editor-plugins", - "schema-to-documentation", "schema-repository", "linter", "linter-plugins" diff --git a/projects/tooling-self-identification/readme.md b/projects/tooling-self-identification/readme.md index 885ab16..47de6b1 100644 --- a/projects/tooling-self-identification/readme.md +++ b/projects/tooling-self-identification/readme.md @@ -2,7 +2,7 @@ JSON Schema has a vast ecosystem. We have documented a fraction of the existing tools out there for JSON Schema. -This project aims to enable tooling authors and maintainers to detail their tools existance and additional informaiton to be listed on the JSON Schema website and Landscape diagram. +This project aims to enable tooling authors and maintainers to detail their tools existence and additional information to be listed on the JSON Schema website and Landscape diagram. The approach is to define a data structure for a file which is located in their own repo, which will then be located and extracted into a single file within this repository. Other repositories such as the website and landscape repositories, will then copy and transform the data as required. The data may be used to augment or totally replace the data they hold, if any. @@ -20,11 +20,46 @@ We (will) have automation that looks for data daily. It will look for data in Gi - Has a file called `.json-schema-identification.json` in the project's root - The JSON file validates successfully against the version of the self identification JSON Schema it declares -While this tooling will initially only use GitHub, we will begin working on supporting other source hosts as soon as possible. We recognize that GitHub is not the only source code platform. If you'd like to help with this, please reach make yourself know in our Slack server. +While this tooling will initially only use GitHub, we will begin working on supporting other source hosts as soon as possible. We recognize that GitHub is not the only source code platform. If you'd like to help with this, please reach make yourself know in our [Slack server](https://json-schema.org/slack). ## Why should I include this file in my tooling repository? If you define this file in your tooling repository, you will: - Be able to update your listing on the JSON Schema website's tooling page - Have your tool listing show it's project status and be filterable based on the project status -- Have your tool shown in the JSON Schema Landscape diagram (unless you opt out) \ No newline at end of file +- Have your tool shown in the JSON Schema Landscape diagram (unless you opt out) + +## Tooling categories definitions + +The `toolingType` field defines the category or type of tool, which enables filtering by end users on the website. Here's an explanation of what each category means. If you're unsure what categories your tool fits into, please reach out to us on [Slack](https://json-schema.org/slack) or raise an Issue on GitHub. + +
+View Category Definitions + + + + + + + + + + + + + + + + + + + + + + + + + +
ValueDefinition
"validator"A library which itself directly validates JSON data using a JSON Schema, providing an assertion result.
"hyper-schema"A library which provides utility and processing in relation to JSON Hyper Schema.
"benchmarks"A tool which performs benchmarking of JSON Schema tooling.
"LDO-utility"A library which provides utility in relation to Link Description Objects found in JSON Hyper Schema.
"code-to-schema"A tool or library which enables the creation of a JSON Schema from existing code.
"data-to-schema"A tool or library which enables the creation of a JSON Schema from existing data.
"model-to-schema"A tool or library which enables the creation of a JSON Schema from existing models.
"schema-to-types"A tool or library which enables the creation of types from a JSON Schema.
"schema-to-code"A tool or library which enables the creation of code from a JSON Schema.
"schema-to-web-UI"A tool or library which enables the creation of Web UI (such as forms) from a JSON Schema.
"schema-to-data"A tool or library which enables the creation of data from a JSON Schema.
"util-general-processing"A library or tool which makes processing and using JSON Schema easier.
"util-schema-to-schema"A library or tool which enables or provides utilities to assist with Schema to Schema transformations.
"util-draft-migration"A library or tool which enables or provides utilities to assist with JSON Schema version/draft migration.
"util-format-conversion"A library or tool which enables or provides utilities to assist with converting from a format to or from JSON Schema.
"util-testing"A library or tool which enables or provides utilities to assist with utilizing JSON Schema with tests.
"editor"A tool which allows you to create and edit JSON documents with specific support for authoring and editing JSON Schema documents.
"editor-plugins"Plugins for editors which augment the use of JSON Schema within an editor.
"schema-to-documentation"A tool or library which enables the creation of documentation from a JSON Schema.
"schema-repository"A collection of Schemas. This may not be an example of best use, nor does it signal endorsement.
"linter"A tool or library which provides the ability for rule based validation of JSON Schemas.
"linter-plugins"Plugins for other linter based tooling which enables rule based validation of JSON Schemas.
+ +
From a0fa9cfa842d55c20b22e7f309cd023b0830a062 Mon Sep 17 00:00:00 2001 From: Ben Hutton Date: Wed, 12 Jun 2024 16:15:34 +0100 Subject: [PATCH 20/31] Detail some of the process and what files can be edited and how --- .../tooling-self-identification/readme.md | 54 ++++++++++++++++++- 1 file changed, 53 insertions(+), 1 deletion(-) diff --git a/projects/tooling-self-identification/readme.md b/projects/tooling-self-identification/readme.md index 47de6b1..616fc4d 100644 --- a/projects/tooling-self-identification/readme.md +++ b/projects/tooling-self-identification/readme.md @@ -6,13 +6,37 @@ This project aims to enable tooling authors and maintainers to detail their tool The approach is to define a data structure for a file which is located in their own repo, which will then be located and extracted into a single file within this repository. Other repositories such as the website and landscape repositories, will then copy and transform the data as required. The data may be used to augment or totally replace the data they hold, if any. +🚨 Note: This document details how everything SHOULD work when fully set up and running. The realization of this effort has not yet happened. This note will be removed once everything is working. + +## What data is here? + +In this repository in the `data` folder, there will be three files (sets of data) relating to tools and libraries which are in relation to this project. + +Community-Contributed Legacy data: The data provided by the community and maintainers which has been used for listing on the website. + +Maintainer-Provided data: The data provided by tooling and library maintainers through a file in their repositories, which is then copied into this repository. + +Ecosystem-Controlled Override data: The data used to override or correct data provided from maintainer repositories or legacy data. + +## What is the data used for? + +This data will be used for the listing of tools and libraries on the JSON Schema website, and for populating the JSON Schema landscape diagram (unless opted out). + +## How do I add to or modify the data? + +The Community-Contributed Legacy data is no longer accepting updates. No one should update this data. + +Any changes to the data requested by the maintainers or community should be done by detailing or updating self identifying data as explained later in this document. The Maintainer-Provided data in this repository should not be edited by anyone directly. + +The Ecosystem-Controlled Override data should hopefully not be used or modified very often. Such cases may be correcting data where the maintainer is no longer responding to requests to change the data or accept a Pull Request which would make the fix. This will only be edited by the JSON Schema team. + ## Just Open Source for now This project only aims to capture the open source tooling, and does not include detailing or tracking of tools which are not open source. There may be further projects which aim to collate and combine data collected from other locations (such as this project), and primary data (such as information deposited into the website or later this repository in relation to close source tools). -## How do I self identify my tool? +## How do I self identify my tool or library? We (will) have automation that looks for data daily. It will look for data in GitHub repositories which meet the following conditions: @@ -29,6 +53,16 @@ If you define this file in your tooling repository, you will: - Have your tool listing show it's project status and be filterable based on the project status - Have your tool shown in the JSON Schema Landscape diagram (unless you opt out) +## What will happen with the data? + +Data that's collected when it meets the above stated criteria will be used to create a Pull Request into the ecosystem repo to add or update the information. + +The data for tools lives in a single file in this repository, and will be duplicated out to the website repository and the landscape repository when modified. (You can opt-out of appearing in the landscape diagram if you wish, by setting `landscape > optOut` to `true`. This will mean the tool will only appear on the website.) + +The Pull Request will be reviewed by the JSON Schema team. If we need to ask for changes to your data file, we will do so by raising an Issue in the originating repository. + +When we receive and accept Maintainer-Provided data for a tool or library, we will remove the entry from the Community-Contributed Legacy data. + ## Tooling categories definitions The `toolingType` field defines the category or type of tool, which enables filtering by end users on the website. Here's an explanation of what each category means. If you're unsure what categories your tool fits into, please reach out to us on [Slack](https://json-schema.org/slack) or raise an Issue on GitHub. @@ -63,3 +97,21 @@ The `toolingType` field defines the category or type of tool, which enables filt + +## My tool or library is already on the website or landscape diagram, but I haven't added the file. Where did that come from? + +Over the years many people have added to the list of "implementations" or tools on the JSON Schema website. We are using the data from the website repository as the basis for the initial data in this repository in relation to details of a tool or library. + +## The data shown on the site or the landscape diagram is different to the data I provided in the repository. What's happening? + +We reserve the right to override and/or augment any aspect of the provided data where we feel it is the right thing to do for whatever reason. We will do so by using another file in this repository which will contain only overriding data, which will take precedence. + +## I created the required file but it's not showing up! What's happening? + +We understand it may be frustrating, but we are here to help! + +First, check the data is valid according to the JSON Schema. + +Second, check the provided source URL matches the the repository location. If it doesn't, we may assume your repository is a fork which isn't intended to be an alternative to the forked project, to avoid duplicate entries. + +Otherwise (or if you're not sure how to resolve the problems above), please reach out to us on [Slack](https://json-schema.org/slack) or raise an Issue on GitHub. We would love to hear from you! \ No newline at end of file From 6299390a5ec92a501ad02f39f3e3d47bfe803af6 Mon Sep 17 00:00:00 2001 From: Ben Hutton Date: Wed, 12 Jun 2024 16:15:57 +0100 Subject: [PATCH 21/31] Tighten schema --- .../tooling-self-identification/identification.schema.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/projects/tooling-self-identification/identification.schema.json b/projects/tooling-self-identification/identification.schema.json index 9c60fbb..ab6db22 100644 --- a/projects/tooling-self-identification/identification.schema.json +++ b/projects/tooling-self-identification/identification.schema.json @@ -273,7 +273,8 @@ "type": "boolean", "default": false } - } + }, + "additionalProperties": false } }, "required": [ From 5d4f67fef11eb7779838bd3f6d0b625b1edfdf4e Mon Sep 17 00:00:00 2001 From: Ben Hutton Date: Thu, 13 Jun 2024 08:23:34 +0100 Subject: [PATCH 22/31] Update projects/tooling-self-identification/identification.schema.json Fix typo Co-authored-by: Julian Berman --- projects/tooling-self-identification/identification.schema.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/tooling-self-identification/identification.schema.json b/projects/tooling-self-identification/identification.schema.json index ab6db22..34978ea 100644 --- a/projects/tooling-self-identification/identification.schema.json +++ b/projects/tooling-self-identification/identification.schema.json @@ -155,7 +155,7 @@ ] }, { - "description": "A string value not yet included in the list of envrionments" + "description": "A string value not yet included in the list of environments" } ] } From 01262e9287d5ff6a6ee26a2694ba6076054226bf Mon Sep 17 00:00:00 2001 From: Ben Hutton Date: Thu, 13 Jun 2024 09:26:53 +0100 Subject: [PATCH 23/31] Update projects/tooling-self-identification/readme.md Fix possessive Co-authored-by: Greg Dennis --- projects/tooling-self-identification/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/tooling-self-identification/readme.md b/projects/tooling-self-identification/readme.md index 616fc4d..92c7b5e 100644 --- a/projects/tooling-self-identification/readme.md +++ b/projects/tooling-self-identification/readme.md @@ -2,7 +2,7 @@ JSON Schema has a vast ecosystem. We have documented a fraction of the existing tools out there for JSON Schema. -This project aims to enable tooling authors and maintainers to detail their tools existence and additional information to be listed on the JSON Schema website and Landscape diagram. +This project aims to enable tooling authors and maintainers to detail their tools' existence and additional information to be listed on the JSON Schema website and Landscape diagram. The approach is to define a data structure for a file which is located in their own repo, which will then be located and extracted into a single file within this repository. Other repositories such as the website and landscape repositories, will then copy and transform the data as required. The data may be used to augment or totally replace the data they hold, if any. From 2cc9670c66e5ec0007a339f16cc935cf3c205b81 Mon Sep 17 00:00:00 2001 From: Ben Hutton Date: Thu, 13 Jun 2024 16:07:56 +0100 Subject: [PATCH 24/31] Make pluralizzation consistent Fix spelling typo --- .../tooling-self-identification/identification.schema.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/projects/tooling-self-identification/identification.schema.json b/projects/tooling-self-identification/identification.schema.json index 34978ea..1cf36d8 100644 --- a/projects/tooling-self-identification/identification.schema.json +++ b/projects/tooling-self-identification/identification.schema.json @@ -62,7 +62,7 @@ "$comment": "If this is omitted and description is already defined on GitHub or GitLab for the repository, we will use that information.", "type": "string" }, - "toolingType": { + "toolingTypes": { "description": "The categories of tooling for the project", "type": "array", "uniqueItems": true, @@ -140,7 +140,7 @@ ] } }, - "environment": { + "environments": { "description": "The platforms or environments in which the tool or library is designed to operate. This field is optional and should be included when the tool or library is specific to a certain platform or environment.", "type": "array", "items": { From 5e5ee3a722e1b1bd25e61e225f0ef6f5ea52c9d8 Mon Sep 17 00:00:00 2001 From: Ben Hutton Date: Thu, 13 Jun 2024 16:23:23 +0100 Subject: [PATCH 25/31] Clarify the languages field --- projects/tooling-self-identification/identification.schema.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/tooling-self-identification/identification.schema.json b/projects/tooling-self-identification/identification.schema.json index 1cf36d8..fc12e09 100644 --- a/projects/tooling-self-identification/identification.schema.json +++ b/projects/tooling-self-identification/identification.schema.json @@ -96,7 +96,7 @@ } }, "languages": { - "description": "The languages the tool supports or can be used in or with", + "description": "The language or languages a tool is built in. In the case of a validator, this will likely be the language it is written in. In the case of a conversion or transformation tool, these are the languages that are supported in some capacity.", "type": "array", "items": { "description": "Individual language name, from the list unless not included.", From abdd404700be782365b9e0a7a6c106481dde940b Mon Sep 17 00:00:00 2001 From: Ben Hutton Date: Thu, 13 Jun 2024 16:28:20 +0100 Subject: [PATCH 26/31] Refine dependsOnValidators so that the array of source URLs are required. In response to https://github.com/json-schema-org/ecosystem/pull/12\#discussion_r1637560575 --- .../tooling-self-identification/identification.schema.json | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/projects/tooling-self-identification/identification.schema.json b/projects/tooling-self-identification/identification.schema.json index fc12e09..9d4a4b0 100644 --- a/projects/tooling-self-identification/identification.schema.json +++ b/projects/tooling-self-identification/identification.schema.json @@ -164,9 +164,10 @@ "description": "Documents if the tool is the primary validator provider or depends on another tool", "type": "array", "items": { - "description": "The names of the tooling that this tooling depends upon", - "$comment": "In the case where it's known that there are implementations with the same name in different programming languages, please use the repository or source URL.", - "type": "string" + "description": "The list of tooling that this tooling depends upon", + "$comment": "This should be the source URL. The source URL should already be known to the ecosystem repository in some way.", + "type": "string", + "format": "uri" } }, "creators": { From 04cba4b6725c42a3151fb76399b45fe0695625a2 Mon Sep 17 00:00:00 2001 From: Ben Hutton Date: Thu, 13 Jun 2024 16:30:12 +0100 Subject: [PATCH 27/31] Fix use of the keyword to use as opposed to . --- .../tooling-self-identification/identification.schema.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/projects/tooling-self-identification/identification.schema.json b/projects/tooling-self-identification/identification.schema.json index 9d4a4b0..a5a0e40 100644 --- a/projects/tooling-self-identification/identification.schema.json +++ b/projects/tooling-self-identification/identification.schema.json @@ -186,12 +186,12 @@ "source": { "description": "The URL of the project's repository", "type": "string", - "format": "URL" + "format": "uri" }, "homepage": { "description": "The URL of the project's homepage", "type": "string", - "format": "URL" + "format": "uri" }, "documentation": { "$comment": "This is reserved for future use", From 6588385b9cf4e72668bfc00eb15d2d247d79aefd Mon Sep 17 00:00:00 2001 From: Ben Hutton Date: Thu, 13 Jun 2024 16:46:11 +0100 Subject: [PATCH 28/31] Add support for declaring additional dialect support, where the dialect originates outside of the JSON Schema project. In response to https://github.com/json-schema-org/ecosystem/pull/12\#discussion_r1637563931 --- .../identification.schema.json | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/projects/tooling-self-identification/identification.schema.json b/projects/tooling-self-identification/identification.schema.json index a5a0e40..aafe621 100644 --- a/projects/tooling-self-identification/identification.schema.json +++ b/projects/tooling-self-identification/identification.schema.json @@ -221,6 +221,32 @@ }, "additionalProperties": false }, + "supportedDialectsExtended": { + "description": "Additional Dialects that are supported beyond the ones defined by the JSON Schema project, such as the OpenAPI Dialect.", + "type": "array", + "items": { + "description": "Individual JSON Schema Dialect items", + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "homepage": { + "type": "string", + "format": "uri" + }, + "source": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "source" + ], + "additionalProperties": false + } + }, "bowtie": { "description": "Information related to compliance testing by Bowtie - https://bowtie.report - Presence of this property implies the tool is being tested in Bowtie", "type": "object", From d1bdb67fb0cd5f500ece8cb877e689d38d1598e7 Mon Sep 17 00:00:00 2001 From: Ben Hutton Date: Fri, 14 Jun 2024 11:25:45 +0100 Subject: [PATCH 29/31] Define data ingestion as automated into one file, and curated data into another file. In response to https://github.com/json-schema-org/ecosystem/pull/12\#issuecomment-2165059313 --- projects/tooling-self-identification/readme.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/projects/tooling-self-identification/readme.md b/projects/tooling-self-identification/readme.md index 92c7b5e..ac1c949 100644 --- a/projects/tooling-self-identification/readme.md +++ b/projects/tooling-self-identification/readme.md @@ -55,12 +55,12 @@ If you define this file in your tooling repository, you will: ## What will happen with the data? -Data that's collected when it meets the above stated criteria will be used to create a Pull Request into the ecosystem repo to add or update the information. - -The data for tools lives in a single file in this repository, and will be duplicated out to the website repository and the landscape repository when modified. (You can opt-out of appearing in the landscape diagram if you wish, by setting `landscape > optOut` to `true`. This will mean the tool will only appear on the website.) +Data that's collected when it meets the above stated criteria copied into a file in the ecosystem repository. A Pull Request will then automatically be created to copy modifications into another file. The Pull Request will be reviewed by the JSON Schema team. If we need to ask for changes to your data file, we will do so by raising an Issue in the originating repository. +The resulting final data for tools lives in a file in this repository, and will be duplicated out to the website repository and the landscape repository when modified. (You can opt-out of appearing in the landscape diagram if you wish, by setting `landscape > optOut` to `true`. This will mean the tool will only appear on the website.) + When we receive and accept Maintainer-Provided data for a tool or library, we will remove the entry from the Community-Contributed Legacy data. ## Tooling categories definitions From 6e29bf17452442c4ca7ac95e9dedc36c1236f4ca Mon Sep 17 00:00:00 2001 From: Ben Hutton Date: Mon, 17 Jun 2024 09:44:44 +0100 Subject: [PATCH 30/31] Move additional supported dialects inside of existing supported dialects object --- .../identification.schema.json | 52 +++++++++---------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/projects/tooling-self-identification/identification.schema.json b/projects/tooling-self-identification/identification.schema.json index aafe621..113e5ca 100644 --- a/projects/tooling-self-identification/identification.schema.json +++ b/projects/tooling-self-identification/identification.schema.json @@ -217,36 +217,36 @@ "2020-12" ] } + }, + "additional": { + "description": "Additional Dialects that are supported beyond the ones defined by the JSON Schema project, such as the OpenAPI Dialect.", + "type": "array", + "items": { + "description": "Individual JSON Schema Dialect items", + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "homepage": { + "type": "string", + "format": "uri" + }, + "source": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "source" + ], + "additionalProperties": false + } } }, "additionalProperties": false }, - "supportedDialectsExtended": { - "description": "Additional Dialects that are supported beyond the ones defined by the JSON Schema project, such as the OpenAPI Dialect.", - "type": "array", - "items": { - "description": "Individual JSON Schema Dialect items", - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "homepage": { - "type": "string", - "format": "uri" - }, - "source": { - "type": "string", - "format": "uri" - } - }, - "required": [ - "name", - "source" - ], - "additionalProperties": false - } - }, "bowtie": { "description": "Information related to compliance testing by Bowtie - https://bowtie.report - Presence of this property implies the tool is being tested in Bowtie", "type": "object", From d5216960b2399d76449ef1b39287835569df3a7c Mon Sep 17 00:00:00 2001 From: Ben Hutton Date: Mon, 17 Jun 2024 11:18:37 +0100 Subject: [PATCH 31/31] Fix required field name and amended object description to make sense --- .../tooling-self-identification/identification.schema.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/projects/tooling-self-identification/identification.schema.json b/projects/tooling-self-identification/identification.schema.json index 113e5ca..89faa26 100644 --- a/projects/tooling-self-identification/identification.schema.json +++ b/projects/tooling-self-identification/identification.schema.json @@ -164,7 +164,7 @@ "description": "Documents if the tool is the primary validator provider or depends on another tool", "type": "array", "items": { - "description": "The list of tooling that this tooling depends upon", + "description": "One of the tools that this tool depends upon", "$comment": "This should be the source URL. The source URL should already be known to the ecosystem repository in some way.", "type": "string", "format": "uri" @@ -307,7 +307,7 @@ "required": [ "name", "source", - "toolingType" + "toolingTypes" ], "additionalProperties": false } \ No newline at end of file