Tooling#
This is a list of first party and third party tools used for developing Scipp.
Third Party#
Compilers#
All compilers can be installed through conda.
See conda/meta.yaml
.
GCC [Linux]
XCode [macOS]
MSVC [Windows]
Static Analysis and Formatters#
We use tox
and pre-commit
to do auto formatting and static analysis.
See in particular pre-commit-config.yaml
for the list of used tools and versions.
Misc#
CMake >= 3.21
Conda
Note: Ubuntu users can use the Kitware Repo to obtain the latest version.
First Party#
There are several development tools in the tools
directory at the top level of the Scipp repository.
See the readmes in the folder.
Stubgen#
A number of classes are defined in C++ and exposed to Python via Pybind11. These classes are invisible to static analysis tools, in particular type checkers. In addition, some classes have many dynamically bound methods which are equally invisible to type checkers.
So stubs are provided in src/scipp/core/cpp_classes.pyi
which lists these classes and all their methods.
This file is automatically generated by the stubgen
package located in tools/stubgen/
.
It can be used by calling
cd tools
python -m stubgen
A tox environment is also provided: tox -e stubgen
.
Both ways of using stubgen
require Scipp to be installed (potentially in editable mode) in the current environment.
See tools/stubgen/README.md
for details.
Remember to call the stubgen whenever you make a change to the interface of those core classes!