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

JSON schema for .braids.json #93

Closed
thorsten-klein opened this issue Feb 19, 2021 · 3 comments · Fixed by #95 or #96
Closed

JSON schema for .braids.json #93

thorsten-klein opened this issue Feb 19, 2021 · 3 comments · Fixed by #95 or #96

Comments

@thorsten-klein
Copy link
Contributor

Hello,

it would be great to provide a JSON schema for the .braids.json file.
This could be used by third-party-tools, so that the .braids.json file can be reliably re-used by these tools.

Is there already any JSON schema defined/existing?

Best Regards,
Thorsten

@mattmccutchen
Copy link
Collaborator

First of all: What third-party tools do you envision accessing .braids.json directly? We wouldn't want to encourage users to commit to tools that would make it difficult for them to upgrade to newer versions of Braid that change the configuration format.

Assuming we decide it is in fact in the community's best interests to have an official JSON schema for .braids.json: I'm not aware of an existing one; your web search is as good as mine. It won't be a priority for me to write a schema, but I imagine we would accept a contribution, and it sounds like you might be prepared to write one. Here's our informal documentation of the current format; I'll be happy to answer questions. Is there a best practice for where we put the schema in the repository?

@thorsten-klein
Copy link
Contributor Author

Thank you for your fast reply.

I am thinking about any tool which is based on the same information like braid, e.g. as most simple example I think about a python script analyzing the json files and drawing a dependency graph. Therefore it would be helpful to have a well-defined schema for the json file. This helps that the config file will be reused by other open source projects, instead of creating a new file with almost equal content, and as a result maybe a new standard is agreed. Of course the schema could/should then also be used by braid as a check to ensure an always valid json file.

I am compeletly new to ruby, so the implementation I am most likely not able to do. I try to have a look on the schema at the weekend and contribute. I will also check for best practices regarding the location.

@mattmccutchen
Copy link
Collaborator

mattmccutchen commented Feb 20, 2021

Drawing a dependency graph sounds reasonable. I don't think there's much chance of convincing Braid and other dependency management tools to migrate to a common format for their primary configuration since they all have different feature sets: that's why they are different tools in the first place. Extracting a subset of the data from the primary configuration of each tool into a common format for analysis would be more realistic.

To write a schema, you wouldn't have to write any Ruby. At most you might need to read a little Ruby in order to understand what Braid is doing. But the format is pretty straightforward and I suspect you can translate the comment I linked above to a JSON schema without much difficulty.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants