Closed omichel closed 2 years ago
About the dependencies, it might be interesting to define the type too (e.g. pip
, snap
etc.).
What about how to specify which world to run (at least first)?
The worlds
folder could contain many files.
Would it be an additional parameter to pass along with the GitHub repo?
Thank you both for the comments. Here is an updated version that takes into account your input:
{
"default":"worlds/my_wonderful_simulation.wbt",
"platforms":[
{
"name":"ubuntu",
"version":"18.04",
"minVersion":"16.04"
}
],
"dependencies": [
{
"name":"webots",
"type":["deb","snap"],
"version":"R2020a-rev2",
"minVersion":"R2020a"
}
]
}
I believe the title, description and author(s) should be retrieved from the default world in WorldInfo.title
and WorldInfo.info
to avoid duplication and encourage users to set these fields appropriately. Also, I have some doubts about the usefulness of the version
field, as in most cases version management is better handled by a git tag or other versioning mechanisms. Users are still free to put a version number in WorldInfo.info
or in README.md
if needed.
This is not relevant any more as we are now using dockers in online simulations.
In order to prepare an online service that would run simulations from git repositories, it would be useful to introduce a configuration file for Webots projects. Basically a git repository would correspond to a Webots project folder. At the root level (in addition to the usual
controllers
,protos
,worlds
, etc. folders) we could add an optionalproject.json
file that may contain the following optional information:If the
platform
field is omitted, the project is supposed to run on any platform where it is possible to install thedependencies
. Otherwise, the project needs to be run on one of the specified platforms.platforms
anddependencies
specifications include mandatoryname
andversion
fields and an optionalminVersion
field. Theversion
field refers to the preferred version needed to run the project. IfminVersion
is specified, the project is supposed to work on all versions betweenminVersion
andversion
inclusive. An optionalmaxVersion
could be introduced later on.More information should be provided in the standard README.md file, including citations.