Developer guide

Developer guide#

How the repository is built, tested, documented and contributed to. AGENTS.md at the repository root records the design rules of the native library and the operator layer in more detail.

Page

Purpose

Development prerequisites

Git, Python, compilers, CMake, OpenMP and CUDA for a source build

Editable and source installation

Editable installation, and building and testing without installing

Repository layout

What each directory of the repository and each module of the package holds

Development workflow

Branches, generated files, the BART and FINUFFT submodules and the checks to run

The BART fork

The downstream BART fork: its branches, what belongs in it, and syncing with Codeberg

Pre-commit hooks

Local hooks, and bypassing them

Coding style

Python and C conventions

Documentation

Documentation types, scientific writing and docstrings

Terminology and conventions

The vocabulary and conventions used across code and documentation

Pull requests

What a pull request contains and how it is validated

Code of conduct

Conduct in project spaces