Development
Introduction
Of course, we use a multi-repo for the SW development of ESysRepo. All the core libraries and the ESysRepo command-line interface are written in C++. The Python wrapper autogenerated with PySwig, which is a homebrewed frontend for Swig is still a work in progress.
The CI is a core element of the project, as it allows:
- formatting checks, using the tool pre-commit, itself using many tools like clang-format, cmake-format, Black.
- generate and deploy this static web page. The static webpage tool used is Hugo.
- run unit tests and report their results
- run static and dynamic code analyzer: clang-tidy, valgrind.
Git repositories
Here, the main git repos are listed, and they are holding:
Some notes:
- Don't get confused that the manifest is in a repository found at esysbuild/manifest. ESysRepo is simply one component of a larger project.
- Currently, the Google repo manifest is used for development, so the file default.xml.
If you have looked at the manifest file, you will have noticed that quite a few more git ESys repositories are used, and they are holding:
- a set of reusable CMake functions
- a platform-independent plugin library
- a platform-independent library to handle XML files
- a platform-independent logging library
- common files used for Visual C++ builds
- a testing framework
ESsyReo uses a sizeable list of external libraries. If interested, one can look at the manifest for the complete list.