-
-
Notifications
You must be signed in to change notification settings - Fork 7
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
Self reporting tooling schema and processes definition #12
Self reporting tooling schema and processes definition #12
Conversation
5aa4850
to
a1f6e2f
Compare
@Relequestual Hello, I am currently working to prepare the consolidated new data source for the tooling page. The current data model stores tooling by categories of tooling type and sub categorises them by programming language (if applicable). I like the approach to store each tooling as a separate entity which matches this schema. This allows us to have more control over filters, sorting and other data transformations if ever required. I wanted to propose that we add some field that the tooling is language dependent (to sub categorise toolings such as validators for different languages as default view such as the current view) and language agnostic (for tooling such as editors and more). This way we can consistently maintain the file and the page. |
Regarding the required fields, name, description and toolingType should be mandatory. In addition repositoryURL should not be mandatory as some of the tooling is not opensource. |
I believe that the tooling type should be an |
The self reporting tooling will only be tooling which has an associated repository. We can and should track non-open source tooling here also, but we can do that later. As discussed, we should define a roadmap of changes we will make for tooling data, and then share it publicly. |
Also add editor-plugins as tooling category
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice.
Took a first pass and left some comments with an eye on "low friction", so I've been a bit intentionally harsh, but hopefully helpful.
projects/tooling-self-identification/identification.schema.json
Outdated
Show resolved
Hide resolved
projects/tooling-self-identification/identification.schema.json
Outdated
Show resolved
Hide resolved
projects/tooling-self-identification/identification.schema.json
Outdated
Show resolved
Hide resolved
projects/tooling-self-identification/identification.schema.json
Outdated
Show resolved
Hide resolved
projects/tooling-self-identification/identification.schema.json
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure that we should be leaving some of this information to the creators of the projects. I think such a system can be easily abused, and we would need to have checks for that.
For example, the compliance
field: can we really trust maintainers to admit that their libraries aren't 100% compliant by default? We already know of at least one that doesn't.
I'm not sure that I agree that this is the right direction. I like the automation aspect, but I still think that the tooling list is something that needs to be curated by a trusted source (someone directly associated with our org).
"projectType": { | ||
"description": "The type of project, classified by Nadia Eghbal in Working in Public - https://project-types.github.io", | ||
"type": "string", | ||
"enum": [ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree.
projects/tooling-self-identification/identification.schema.json
Outdated
Show resolved
Hide resolved
Fix typo Co-authored-by: Julian Berman <Julian@GrayVines.com>
Fix typo Co-authored-by: Julian Berman <Julian@GrayVines.com>
…n 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
… friction. In response to two PR commnets
…t 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
Agreed. We can make it so the automation creates a PR for us to review, rather than blanket acceptance.
Not always, no. But, I count SIX implementations where we said that they document what must be done to be fully to the specification compliant. Some libraries are written in specific contexts where they don't want that by default, I guess.
Agreed. We can make it so the automation creates a PR. We need to do this anyway really, because someone could put ANYTHING there. If an implementation repo was compromised, they could add undesierable content. |
Fix typos. Remove schema-to-documentation category from tooling types in schema. This seems the same as the category
projects/tooling-self-identification/identification.schema.json
Outdated
Show resolved
Hide resolved
projects/tooling-self-identification/identification.schema.json
Outdated
Show resolved
Hide resolved
projects/tooling-self-identification/identification.schema.json
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Left another round of comments, but after addressing whichever of those suit you, lgtm.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm interested in how the override is expected to work. What happens when the maintainer updates an overridden field?
I think it's important to explicitly state that this is data mining and that we will still be curating the end results of the website and landscape.
|
||
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. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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. | |
The approach is to define a data structure for a file hosted 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. |
I think maybe just do a read through and see how many "which"'s there are...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you explain this please? It feels like you're assuming it should be obvious why this is bad? Does it make it harder to read or understand?
The primary purpose of the readme is to explain things. It often goes into more detail about things.
I'm open to more specific suggestions if you have them.
I'm okay with this as a data mining effort, but not as a relay directly to our sites. This data should be curated before it's published in any form.
Fix typo Co-authored-by: Julian Berman <Julian@GrayVines.com>
Fix possessive Co-authored-by: Greg Dennis <gregsdennis@yahoo.com>
The readme states that the process will create a PR into this repo and not just mine the data. So it will be curated.
Is this enough? Did you maybe miss this? If we don't use this data for the website and landscape, we're loosing a LOT of the value from doing this work in the first place. |
Yeah, posting that comment was more to make it public rather than something we just discussed in private. I'm aware that we'll have an opportunity to review a PR before anything goes in. I was thinking data ingestion would be purely automatic. Then separately we'd have a curation step where the curated data is a new file (and included any overrides/changes we wanted). Instead, you've chosen to have ingestion and curation together, but we also have overrides as a separate file. It's just a different way to do it. Also, I suppose the curation part would allow us to just decline to add something, but we'd need some way of tracking that we declined it or the bot will keep finding it. |
You know, I can easily think of several reasons why we would actually want to have a seperate ingestion file vs curated file. So, let me amend the readme. For example, it would be helpful to keep ingestion events logged in a file which can then be used to more easily make time series graphs.
|
Fix spelling typo
…ct originates outside of the JSON Schema project. In response to https://github.com/json-schema-org/ecosystem/pull/12\#discussion_r1637563931
🙏 Huge thanks for all your feedback on this work! |
…ct originates outside of the JSON Schema project. In response to https://github.com/json-schema-org/ecosystem/pull/12\#discussion_r1637563931
Related to json-schema-org/community#412 (but does not close).
(This PR probably needs a specific Issue. Sorry.)
This PR introduces a JSON Schema which details the data structure that tooling repositories will be asked to included to self identify themselves to the JSON Schema Ecosystem project.
When the JSON Schema Ecosystem project ingests the data, it will be the Single Source of Truth for that data (beyond the source repositories). The data will then be pulled to the website repository and the landscape repository.
At this stage I'm looking for feedback and comments on the schema. I'll update with an Issue and providing a readme for tooling implementers to help them understand the expectations and what will be done with the data and why.
Work to do based on feedback:
languages
fieldformat
touri