In the meeting 2026-04-30, we decided to split up repositories. From the minutes:
Repository structure
We agreed that in the midterm we aim for a single repository with a benchmark definition and then individual repositories for each implementation of a benchmark (if people want to publish their implementation)
Main repo (current github repo)
-
Includes the main transformation scripts (e.g. developed by Mahdi to get an ROCrate out of the subcrates
-
Examples on how to build these
-
Registry for all Benchmark repositories
-
Potentially a documentation (SWIG*) routine that collects the documentation files from all repos and builds a joint summary documentation
Benchmark repo
-
For each benchmark, we create a separate repo
-
It includes the semantic representation of the benchmark, a documentation (markdown) and a postprocessing script the contains potential queries to the knowledge graph and plots that for relevant metrices (e.g. convergence plot for different metrics as in plate with a hole)
-
There is a version, and the benchmark can be published. Each published version (e.g. in the github actions) builds an ROcrate for the benchmark definition that is uploaded to ROHub
-
While the package is build, a the documentation and the postprocessing scripts are combined into a jupyter notebook, such that a user can download the notebook and visually explore the results of the benchmark obtain for different software implementations
Software repo
-
For each tool (or multiple), this repo stores the implementation of a specific benchmark in a specific tool
-
In the optimal case, It provides a workflow to call the tool for a specific benchmark
-
It regularly performs integration tests, potentially creating new ROCrates for each run (potentially those can be published automatically), at least when major changes are done. It might also contain multiple versions (e.g. fenics and fenicx, or version 12.0 and 13.0 of a software) that can still be tested (as long as they are maintained and are used
With this issue, we document the progress of this splitting process.
In the meeting 2026-04-30, we decided to split up repositories. From the minutes:
Repository structure
We agreed that in the midterm we aim for a single repository with a benchmark definition and then individual repositories for each implementation of a benchmark (if people want to publish their implementation)
Main repo (current github repo)
Includes the main transformation scripts (e.g. developed by Mahdi to get an ROCrate out of the subcrates
Examples on how to build these
Registry for all Benchmark repositories
Potentially a documentation (SWIG*) routine that collects the documentation files from all repos and builds a joint summary documentation
Benchmark repo
For each benchmark, we create a separate repo
It includes the semantic representation of the benchmark, a documentation (markdown) and a postprocessing script the contains potential queries to the knowledge graph and plots that for relevant metrices (e.g. convergence plot for different metrics as in plate with a hole)
There is a version, and the benchmark can be published. Each published version (e.g. in the github actions) builds an ROcrate for the benchmark definition that is uploaded to ROHub
While the package is build, a the documentation and the postprocessing scripts are combined into a jupyter notebook, such that a user can download the notebook and visually explore the results of the benchmark obtain for different software implementations
Software repo
For each tool (or multiple), this repo stores the implementation of a specific benchmark in a specific tool
In the optimal case, It provides a workflow to call the tool for a specific benchmark
It regularly performs integration tests, potentially creating new ROCrates for each run (potentially those can be published automatically), at least when major changes are done. It might also contain multiple versions (e.g. fenics and fenicx, or version 12.0 and 13.0 of a software) that can still be tested (as long as they are maintained and are used
With this issue, we document the progress of this splitting process.