How is built open-darts?
The source code of open-darts is spread over 5 repositories hosted on gitlab.com and is built and tested automatically via continuous integration / continuous deployment (CI/CD) service. Open-darts is a python package with binary extensions, built from C++/OpenMP/CUDA code. The python part of open-darts is maintained in darts-package. The extension engines lives in darts-engines.
The build process reminds a chain. First, ecternal libraries (linear solvers and flash) are built. They are compiled as static libraries and are not aware of python. Then, binary extensions (engines) is built. They are linked to a specific python version. Finally, the python package along with extensions is packed into a python wheel. In order to make sure that the package works as expected, a test suite is executed for every compiled wheel in darts-models. Each of these steps is performed as a Gitlab pipeline. Once changes are made to the repository (someone pushes a commit), its pipeline is triggered. If it successfully finishes, then the pipeline of the next link in the chain is triggered, and so one until the whole package is built and tested. The pipeline status of each of the steps described above can be monitored via badges on the main page.
Open-darts wheel is compiled for Windows and Linux platforms, for Python 3.5, 3.6, 3.7 and 3.8. Therefore, starting from engines extensionsand for every subsequent step, the pipeline consists of 8 independent jobs. In this way, every version of open-darts package is verified to function as expected. Intermediate build results along with python wheels can be downloaded according to the instructions in the installation section of the getting started page.
More information
Visit the open-darts wiki.