Development and contributions

Build from source

The required steps for building CatBoost depend on the implementation.
Note. Windows build currently requires Microsoft Visual studio 2015.3 toolset v140 and Windows 10 SDK (10.0.17134.0).
  1. Clone the repository:

    git clone https://github.com/catboost/catboost.git
  2. Open the catboost/catboost/app directory from the local copy of the CatBoost repository.

  3. Run the following command:
    ../../ya make -d [-o <output directory>]

    Use the -j <number of threads> option to change the number of threads used when building the project.

Run tests

CatBoost provides tests that check the compliance of the canonical data with the resulting data.

The required steps for running these tests depend on the implementation.

  1. Execute common tests:

    1. Open the catboost/pytest directory from the local copy of the CatBoost repository.

    2. Run the following command:
      ../../ya make -t -A [-Z]

      -Z — Optional key to replace the canonical files if the code breaks tests intentionally.

  2. Execute tests for the GPU implementation:

    1. Open the catboost/pytest/cuda_tests directory from the local copy of the CatBoost repository.

    2. Run the following command:

      ../../../ya make -DCUDA_ROOT=<path_to_CUDA_SDK> -t -A [-Z]
      • path_to_CUDA_SDK is the path to directory where CUDA SDK is installed. For example, the typical installation directory for Linux is /usr/local/cuda-X.Y, where “X.Y ”is the installed CUDA SDK version.

      • -Z — Optional key to replace the canonical files if the code breaks tests intentionally.

Use the VCS diff tool to analyze the differences.

Develop in Windows

A solution for Visual Studio is available in the CatBoost repository:
catboost/msvs/arcadia.sln

Coding conventions

The following coding conventions must be followed in order to successfully contribute to the CatBoost project:

Versioning conventions

Do not change the package version when submitting pull requests. Yandex uses an internal repository for this purpose.

Yandex Contributor License Agreement

To contribute to CatBoost you need to read the Yandex CLA and indicate that you agree to its terms. Details of how to do that and the text of the CLA can be found in CONTRIBUTING.md.