To what extend should the adapter schema enforce the language of the adapter configuration file?
v0.2 of the guidelines say:
|
- [ ] R.10: The configuration follows the [preCICE Adapter and Tooling Configuration Schema](https://github.com/precice/preeco-orga/blob/main/adapter-config-schema/preatcs.json), either directly in JSON or indirectly via LLM-based auto-conversion. Using the standard name `precice-adapter-config.json` is possible (if JSON). Validating a JSON configuration against a schema can be done with the Python library [jsonschema](https://pypi.org/project/jsonschema/) or via the [JTutor GUI](https://validationproofs.oa.r.appspot.com/), for example. |
(we should actually remove the "LLM-based" and allow any conversion)
So, we currently do not enforce any format and there are good reasons for this as summarized by @MakisH: #18 (comment)
Should we still tend towards a certain configuration language and if yes, which one?
If for a certain adapter or tool, there is no good reasons to use a solver-specific configuration, we could still weakly recommend using either YAML of JSON. This could further improve interoperability, since the conversion could be skipped.
Pro JSON:
- Currently widely used in the preECO ecosystem. Inertia.
- Since the schema is currently in JSON, we do not require conversion for validation.
- Better tooling support? For YAML, we have to go via yaml-cpp for CPP codes?
Pro YAML:
- Easier to read and write for humans.
To what extend should the adapter schema enforce the language of the adapter configuration file?
v0.2 of the guidelines say:
preeco-orga/guidelines/guidelines-adapters.md
Line 74 in 543f29c
(we should actually remove the "LLM-based" and allow any conversion)
So, we currently do not enforce any format and there are good reasons for this as summarized by @MakisH: #18 (comment)
Should we still tend towards a certain configuration language and if yes, which one?
If for a certain adapter or tool, there is no good reasons to use a solver-specific configuration, we could still weakly recommend using either YAML of JSON. This could further improve interoperability, since the conversion could be skipped.
Pro JSON:
Pro YAML: