@@ -48,6 +48,75 @@ default). See below for more explanations.
4848 it to build fastscapelib (useful for testing)
4949```
5050
51+ (pixi-configuration)=
52+
53+ ## Pixi Configuration
54+
55+ Fastscapelib provides everything needed to manage its dependencies and run
56+ common tasks via [ pixi] .
57+
58+ If you have ` pixi ` installed, you can install a development environment for your
59+ platform simply by executing the following command from Fastscapelib's project
60+ root directory:
61+
62+ ```
63+ $ pixi install --environment dev
64+ ```
65+
66+ The following environments are defined:
67+
68+ ``` {list-table}
69+ :widths: 25 75
70+
71+ * - ``build``
72+ - All tools and dependencies needed to build and install Fastscapelib's
73+ core (C++) library.
74+ * - ``cpp``
75+ - For running C++ tests and benchmarks.
76+ * - ``python``
77+ - All tools and dependencies needed to build Fastscapelib's Python bindings
78+ * - ``doc``
79+ - For building Fastscapelib's documentation.
80+ * - ``dev``
81+ - For contributing to Fastscapelib's code (including test and lint tools).
82+ ```
83+
84+ Those environments are used to run Fastscapelib's pixi tasks, e.g.,
85+
86+ ```
87+ $ pixi run build-python
88+ ```
89+
90+ Here is a subset of the available tasks:
91+
92+ ``` {list-table}
93+ :widths: 25 75
94+
95+ * - ``run-tests``
96+ - Run the C++ tests (build them if needed).
97+ * - ``run-benchmarks``
98+ - Run the benchmarks (build them if needed).
99+ * - ``build-python``
100+ - Build the Python bindings (note the python bindings are built and installed
101+ in the pixi environments during the `pixi install` steps)
102+ * - ``run-tests-python``
103+ - Run the Python bindings tests.
104+ * - ``run-mypy``
105+ - Run the Python static type checker.
106+ * - ``build-doc``
107+ - Build the documentation.
108+ * - ``pre-commit-install``
109+ - Run `pre-commit install` (a set of git hooks that will automatically
110+ check and format the source code prior to each commit)
111+ * - ``update-compile-commands``
112+ - Create of update the compile commands database (useful for C++ LSP
113+ servers)
114+ ```
115+
116+ For more details, check the [ pixi] documentation. The full pixi configuration
117+ for Fastscapelib can be found in the ` pixi.toml ` file located in the project
118+ root directory.
119+
51120(run-cpp-tests)=
52121
53122## Build and Run the C++ Tests
@@ -139,4 +208,5 @@ $ build/benchmarks/./benchmark_fastscapelib
139208
140209[ google-benchmark ] : https://github.com/google/benchmark
141210[ google-test ] : https://github.com/google/googletest
211+ [ pixi ] : https://pixi.sh
142212[ pytest ] : https://docs.pytest.org/
0 commit comments