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
  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. Open the catboost/pytest directory from the local copy of the CatBoost repository.
  2. Run the following command:
    ya make -t
It is necessary to replace the canonical files if the code breaks tests intentionally. Run the following command to do this:
ya make -t -Z

Use the VCS diff tool to analyze the differences.

Develop in Windows

A solution for Visual Studio is available in the CatBoost repository:

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