hyperupcall marked 2 inline comments as done.
hyperupcall added a comment.

In D140462#4018983 <https://reviews.llvm.org/D140462#4018983>, @sammccall wrote:

> The difficulty in testing is that:
>
> - JSON-schema is totally unknown in llvm-project, so there are no tools but 
> also no expectation that contributors understand it
> - llvm-project doesn't like dependencies, particularly those that aren't in 
> C++ or python
> - having done some digging, interop seems really poor...
>
> I tried 3 consumers (`ajv-cli`, `yaml-language-server`, and `yajsv`) and 
> **hit different blocking bugs in all of them** when using obvious, 
> spec-compliant approaches to writing schemas. I only have experience with 
> `ajv`, so I suppose it means



> It has the "python problem", where it's readable and you can see at a glance 
> why the code is correct - even if it isn't.
> (Having spent a couple of days with json-schema now, I **don't** think it's 
> straightforward. That file seems simple so far, but there are simple C++ 
> programs too! And it carefully dodges the interop issues, which is *subtle*).

I appreciate that you took the time to experiment with those three 
implementations of JSON-schema - perhaps I was naive in thinking that the 
different implementations were more mature. On my side, this makes me want to 
validate the various schemas in SchemaStore with more implementations than just 
`ajv` to improve the experience for everyone.

> ---
>
> Fixing this is an unreasonable burden to place on a new contributor, I've 
> taken a shot at this and have something almost working: 
> https://reviews.llvm.org/D140745.
>
> It's pretty draft-ish:
>
> - That patch just checks in the generated files {`Fragment.inc`, `YAML.inc`, 
> `doc.md`, `schema.json`}, (maybe) that belongs in the build system
> - the schema is correct but `yaml-language-server` chokes on it due to 
> https://github.com/redhat-developer/yaml-language-server/issues/823, so need 
> to restructure
> - files would need to be moved around etc
> - tests need to be added/updated
> - i'm not sure whether having a json-schema for `schema.yaml` is actually a 
> good idea, it was mostly a learning exercise

This looks pretty neat! I think something like that revision would be a better 
way forward. I will go ahead and upload a new Diff, I suppose just for 
completeness, but I don't expect anything to change much since it doesn't 
address your points about syncing with documentation or the obscurity of the 
specification.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D140462/new/

https://reviews.llvm.org/D140462

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to