Contributing

How to setup the repository

Warning

All internal tools and scripts are designed only to work on Linux. You have to use WSL to develop the project on Windows.

  1. Install Just

    Just is a command runner that is used here instead of make.

  2. Install all needed python interpreters

    • CPython 3.10

    • CPython 3.11

    • CPython 3.12

    • CPython 3.13

    • PyPy 3.10

    • PyPy 3.11

  3. Clone repository with submodules

    git clone --recurse-submodules https://github.com/reagento/adaptix
    

    If you already cloned the project and forgot --recurse-submodules, directory benchmarks/release_data will be empty. You can fix it executing git submodule update --init --recursive.

  4. Create venv and run

    just bootstrap
    
  5. Run main commands to check that everything is ok

    just lint
    just test-all
    

Tools overview

Venv managing

Bootstrap

Initial preparation of venv and repo for developing.

just bootstrap

Deps sync

Sync all dependencies. Need to run if committed dependencies are changed.

just venv-sync

Compile dependencies

Compile raw dependencies (requirements/raw/*) into file with locked versions via uv pip compile.

just deps-compile

This command try keep previous locked version. To upgrade locked dependencies use:

just deps-compile-upgrade

Linting

Run linters

Run all linters. Should be executed before tests.

just lint

Testing

Run basic tests

Sequentially run basic tests on all python versions. It is useful to rapidly check that the code is working.

just test

Run all tests

Parallelly run all tests on all python versions.

just test-all

Run all tests (sequentially)

Sequentially run all tests on all python versions. Failed parallel runs can have unclear output.

just test-all-seq

Produce coverage report

Create coverage report. All coverage reports will be merged into coverage.xml file at working directory. You can import it to IDE. Instruction for PyCharm.

just cov

Documentation

Build documentation

Generate html files with documentation. Output files will be placed in docs-build/html.

just doc

Clean generated documentation

Clean generated documentation and build cache. Sometimes sphinx can not detect changes in non-rst files. This command fixes it.

just doc-clean