-
-
Notifications
You must be signed in to change notification settings - Fork 211
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[GSoC'24]: Build Data Driven JSON Schema Tooling Web Release (#915)
* [data]: Data Preparation for Improved Data Model (#738) * add validators to updated tooling data * migrate hardcoded tooling data to updated model * refine structure * fix, clean, and add environment field * add dependsOnValidators field * remove empty fields * conform to ecosystem tooling identification schema * remove incorrect draft * fix apache 2.0 license to spdx identifier * [pages][tools]: Redesign UI/UX for Tooling Page (#808) * initial redesign migration * remove environments groupby * add trigger update landscape tooling workflow (#838) * [pages][tools]: Implement Tooling Analytics and Integrate Bowtie Report (#858) * [pages][tools]: Prepare Tooling Page for Release Closes: #780 * improve dropdownmenu and sidebar with svgr logo better sidebar better tooling table * add ToolingTable * fix sidebar and query params * improve tooling data table fix * fix mobile responsive * use css columns in modal * use modal svgr icon remove margins in tooling modal * add initial analytics * add sort by bowtie * add analytics schema and fix sidebar bug * fix CORS error redirect follow is critical. Also, setting content-type header to text/plain is critical, even if sending JSON, as "text/plain" does not trigger the browser's preflight requests (which are unsupported by Google here) * update schema to remove source and homepage * update yarn lock * update call to action and issue template * Pushed changes to improve style * update dependencies * fix json path types build error * remove unused file * update redirects * update internal links * fix linting errors * add backend api * fix bowtie api integration and add skeleton placeholder * fix bowtie served over https * sort toolingData drafts * fix bowtie skeleton width style * fix bowtie skeleton width * add native title based tooltip --------- Co-authored-by: Benjamin Granados <[email protected]> * [data]: Sync and finalise tooling data (#899) * sync tooling data * add tooling data validation workflow and fix JSONSchemaTool interface * fix undefined error * use corepack and yarn in workflow * fix tooling data * fix tooling data draft * Added 2 last tools --------- Co-authored-by: Benjamin Granados <[email protected]> * [web-release-tooling]: Minor fixes web tooling page (#913) * add /implementations to /tools redirects * fix /tools sidebar dropdown scrollbar * fix nav link does not reset filters * fix redirect typo * update yarn lock * fix redirects * move wild card redirect to last * fix dependencies problem --------- Co-authored-by: Benjamin Granados <[email protected]> * Removing old data files * update the implementers workflow --------- Co-authored-by: Benjamin Granados <[email protected]>
- Loading branch information
Showing
52 changed files
with
5,645 additions
and
1,187 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,175 @@ | ||
name: Add or Modify JSON Schema Tool | ||
description: Submit your tool to be added or updated in the JSON Schema ecosystem. | ||
title: "Add or Modify [Tool Name] in JSON Schema Ecosystem" | ||
labels: ["Status: Triage"] | ||
body: | ||
- type: input | ||
id: name | ||
attributes: | ||
label: "Tool Name" | ||
description: "Please provide the name of your tool." | ||
placeholder: "Enter the tool name" | ||
validations: | ||
required: true | ||
|
||
- type: textarea | ||
id: description | ||
attributes: | ||
label: "Tool Description" | ||
description: "Provide a brief description of your tool." | ||
placeholder: "Enter a brief description of the tool" | ||
validations: | ||
required: true | ||
|
||
- type: checkboxes | ||
id: actionType | ||
attributes: | ||
label: "Action Type" | ||
description: "Select whether you want to add a new tool or modify an existing one." | ||
options: | ||
- label: "Add Tool" | ||
- label: "Modify Tool" | ||
validations: | ||
required: true | ||
|
||
- type: checkboxes | ||
id: toolingTypes | ||
attributes: | ||
label: "Tooling Types" | ||
description: "Select the categories of tooling that best describe your project." | ||
options: | ||
- label: "validator" | ||
- label: "hyper-schema" | ||
- label: "benchmarks" | ||
- label: "documentation" | ||
- label: "LDO-utility" | ||
- label: "code-to-schema" | ||
- label: "data-to-schema" | ||
- label: "model-to-schema" | ||
- label: "schema-to-types" | ||
- label: "schema-to-code" | ||
- label: "schema-to-web-UI" | ||
- label: "schema-to-data" | ||
- label: "util-general-processing" | ||
- label: "util-schema-to-schema" | ||
- label: "util-draft-migration" | ||
- label: "util-format-conversion" | ||
- label: "util-testing" | ||
- label: "editor" | ||
- label: "editor-plugins" | ||
- label: "schema-repository" | ||
- label: "linter" | ||
- label: "linter-plugins" | ||
validations: | ||
required: true | ||
|
||
- type: textarea | ||
id: languages | ||
attributes: | ||
label: "Languages" | ||
description: "List the languages your tool is built in or supports." | ||
placeholder: "Enter the languages" | ||
|
||
- type: textarea | ||
id: environments | ||
attributes: | ||
label: "Environments" | ||
description: "List the platforms or environments in which your tool operates." | ||
placeholder: "Enter the environments" | ||
|
||
- type: textarea | ||
id: dependsOnValidators | ||
attributes: | ||
label: "Dependencies on Validators" | ||
description: "If your tool depends on other validators, please provide their URLs." | ||
placeholder: "Enter URLs of dependent validators" | ||
|
||
- type: textarea | ||
id: creators | ||
attributes: | ||
label: "Creators" | ||
description: "Provide information about the creators or authors of the project." | ||
placeholder: "Provide information about the creators or authors of the project. Include their username and platform." | ||
|
||
- type: textarea | ||
id: maintainers | ||
attributes: | ||
label: "Maintainers" | ||
description: "Provide information about the maintainers or authors of the project." | ||
placeholder: "Provide information about the maintainers or authors of the project. Include their username and platform." | ||
|
||
- type: input | ||
id: license | ||
attributes: | ||
label: "License" | ||
description: "Specify the license under which your project is distributed." | ||
placeholder: "Enter the license" | ||
validations: | ||
required: true | ||
|
||
- type: input | ||
id: source | ||
attributes: | ||
label: "Source Repository URL" | ||
description: "Provide the URL of your project's repository." | ||
placeholder: "Enter the source URL" | ||
validations: | ||
required: true | ||
|
||
- type: input | ||
id: homepage | ||
attributes: | ||
label: "Homepage URL" | ||
description: "Provide the URL of your project's homepage." | ||
placeholder: "Enter the homepage URL" | ||
|
||
- type: checkboxes | ||
id: supportedDialects | ||
attributes: | ||
label: "Supported Dialects" | ||
description: "List the supported JSON Schema dialects. Use the draft version identifiers from the list below." | ||
options: | ||
- label: "1" | ||
- label: "2" | ||
- label: "3" | ||
- label: "4" | ||
- label: "5" | ||
- label: "6" | ||
- label: "7" | ||
- label: "2019-09" | ||
- label: "2020-12" | ||
|
||
- type: textarea | ||
id: additionalDialects | ||
attributes: | ||
label: "Additional Dialects" | ||
description: "If there are additional dialects supported, provide their name and source URL." | ||
placeholder: "Enter the additional dialects." | ||
|
||
- type: input | ||
id: bowtieIdentifier | ||
attributes: | ||
label: "Bowtie Compliance Testing" | ||
description: "If your tool is tested by Bowtie, provide the Bowtie identifier." | ||
placeholder: "Enter the Bowtie identifier" | ||
|
||
- type: textarea | ||
id: toolingListingNotes | ||
attributes: | ||
label: "Tooling Listing Notes" | ||
description: "Add any notes about the tooling which will appear in the tooling listing on the website." | ||
placeholder: "Enter the tooling listing notes." | ||
|
||
- type: textarea | ||
id: compliance | ||
attributes: | ||
label: "Compliance" | ||
description: "Provide details on what must be done to make the implementation the most compliant that it can be." | ||
placeholder: "Enter the compliance details." | ||
|
||
- type: textarea | ||
id: landscape | ||
attributes: | ||
label: "Landscape Information" | ||
description: "Provide additional information for the JSON Schema landscape diagram, such as your logo or a link to your logo. Indicate if you want to opt-out of the landscape." | ||
placeholder: "Enter the landscape information and preferences." |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
name: Trigger Update Landscape Tooling Workflow | ||
|
||
on: | ||
push: | ||
paths: | ||
- data/tooling-data.yaml | ||
branches: | ||
- main | ||
workflow_dispatch: | ||
|
||
|
||
jobs: | ||
trigger-workflow: | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- name: Create workflow token | ||
id: app-token | ||
uses: actions/create-github-app-token@v1 | ||
with: | ||
app-id: ${{ vars.APP_ID }} | ||
private-key: ${{ secrets.PRIVATE_KEY }} | ||
|
||
- name: Trigger update landscape repository workflow | ||
env: | ||
AUTH_TOKEN: ${{ steps.app-token.output.token }} | ||
run: | | ||
curl -L \ | ||
-X POST \ | ||
-H "Accept: application/vnd.github.v3+json" \ | ||
-H "Authorization: Bearer $AUTH_TOKEN" \ | ||
https://api.github.com/repos/json-schema-org/landscape/actions/workflows/update-landscape-tooling.yml/dispatches \ | ||
-d '{"ref":"main"}' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
name: Validate Tooling Data | ||
|
||
on: | ||
push: | ||
paths: | ||
- data/tooling-data.yaml | ||
branches: | ||
- main | ||
pull_request: | ||
paths: | ||
- data/tooling-data.yaml | ||
workflow_dispatch: | ||
|
||
jobs: | ||
validate-tooling-data: | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- name: Checkout Repository | ||
uses: actions/checkout@v4 | ||
|
||
- name: Corepack enable | ||
run: corepack enable | ||
|
||
- name: Set up Node | ||
uses: actions/setup-node@v4 | ||
with: | ||
node-version: '20' | ||
|
||
- name: Install dependencies | ||
run: yarn add ajv ajv-formats js-yaml | ||
|
||
- name: Validate tooling-data.yaml | ||
run: | | ||
node -e " | ||
const Ajv = require('ajv/dist/2020'); | ||
const addFormats = require('ajv-formats'); | ||
const path = require('path'); | ||
const fs = require('fs'); | ||
const yaml = require('js-yaml'); | ||
const dataDir = path.join(process.env.GITHUB_WORKSPACE, 'data'); | ||
const schemaPath = path.join(dataDir, 'tooling-data.schema.json'); | ||
const dataPath = path.join(dataDir, 'tooling-data.yaml'); | ||
try { | ||
const schema = JSON.parse(fs.readFileSync(schemaPath, 'utf-8')); | ||
const data = yaml.load(fs.readFileSync(dataPath, 'utf-8')); | ||
const ajv = new Ajv({ allErrors: true }); | ||
addFormats(ajv); | ||
const validate = ajv.compile(schema); | ||
const valid = validate(data); | ||
if (!valid) { | ||
console.error('Validation failed:', validate.errors); | ||
process.exit(1); | ||
} else { | ||
console.log('tooling-data.yaml is valid.'); | ||
} | ||
} catch (error) { | ||
console.error('Error validating tooling-data.yaml:', error); | ||
process.exit(1); | ||
}" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.