So far, the project is divided into tutorials (src/tutorials) and examples (src/examples). The tutorials all share the same Project.toml located at the root of the project whereas each example has its own Project.toml. This way,
the main Project.toml doesn't have to be the union of all the tutorials+examples dependencies and can remain "reasonable"
each example can specify a [compat] section (for instance the Bcube version) : it is easier than ensuring that all the examples are compatibles with each other.
It seems to me that the current implementation of test is not compatible is what I've described above : it requires that all the examples share the main Project.toml. For instance the naca has many dependencies that are not in the main Project.toml, so we could add it to the integration tests as is.
I see the following solutions for now:
Unique Project.toml
We abandon the idea of having one Project.toml per example and merge all the dependencies in the main Project.toml. For me the main issue with this solution is that we cannot use different [compat] for each example hence we have to always keep everything up to date.
Use only files
We could imagine some kind of "testing procedure" where all the examples are executed (with their own env) and they write their results in a specific file or folder and the testing procedure read these files and compare them to the ref ones.
Use subprojects?
See https://github.com/JuliaLang/Pkg.jl/issues/1233. I don't remember very well, but it seems to me that in the latest release(s) of julia their is some kind of subproject mechanism that could help us.
So far, the project is divided into tutorials (
src/tutorials
) and examples (src/examples
). The tutorials all share the sameProject.toml
located at the root of the project whereas each example has its ownProject.toml
. This way,Project.toml
doesn't have to be the union of all the tutorials+examples dependencies and can remain "reasonable"[compat]
section (for instance the Bcube version) : it is easier than ensuring that all the examples are compatibles with each other.It seems to me that the current implementation of
test
is not compatible is what I've described above : it requires that all the examples share the mainProject.toml
. For instance the naca has many dependencies that are not in the mainProject.toml
, so we could add it to the integration tests as is.I see the following solutions for now:
Unique
Project.toml
We abandon the idea of having oneProject.toml
per example and merge all the dependencies in the mainProject.toml
. For me the main issue with this solution is that we cannot use different[compat]
for each example hence we have to always keep everything up to date.Use only files We could imagine some kind of "testing procedure" where all the examples are executed (with their own env) and they write their results in a specific file or folder and the testing procedure read these files and compare them to the ref ones.
Use subprojects? See https://github.com/JuliaLang/Pkg.jl/issues/1233. I don't remember very well, but it seems to me that in the latest release(s) of julia their is some kind of subproject mechanism that could help us.