Tooling¶
This page lists the tools used to develop fiction. For build requirements and presets, see Getting started. For contribution and review commands, see Contributing.
C++¶
Tool |
Purpose |
Configuration and use |
|---|---|---|
Configure and build the library’s tests, experiments, and Python bindings. |
|
|
Write and run C++ tests and micro-benchmarks. |
|
|
Format C++ code. |
|
|
Analyze C++ code. |
|
|
Cache compilations. |
|
Python bindings and packaging¶
Tool |
Purpose |
Configuration and use |
|---|---|---|
Expose C++ APIs to Python and generate type stubs. |
|
|
Build Python packages with CMake. |
|
|
Build and test platform wheels. |
|
|
Manage Python dependencies and isolated environments. |
|
|
Run tests, lint, documentation, and stub-generation sessions. |
|
|
Run Python tests. |
|
|
Format, lint, and type-check Python code. |
|
Documentation¶
Tool |
Purpose |
Configuration and use |
|---|---|---|
Build and style the documentation from Markdown. |
|
|
Render C++ API comments in Sphinx. |
|
|
Render and format publication references. |
|
|
Format and lint MyST Markdown. |
|
CI and quality checks¶
Tool |
Purpose |
Configuration and use |
|---|---|---|
Run formatting and validation hooks. |
|
|
Maintain copyright headers. |
|
|
Run builds, tests, packaging, and static analysis. |
|
|
Report C++ and Python test coverage. |
|
|
Provide automated pull request reviews. |
|
|
Run hooks and submit formatting fixes. |
The |
|
Open dependency-update pull requests. |
|