forked from rerun-io/rerun
-
Notifications
You must be signed in to change notification settings - Fork 0
/
pixi.toml
232 lines (201 loc) · 9.44 KB
/
pixi.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
# Pixi is a package management tool for developers.
# Before running a task, pixi ensures that all listed dependencies are installed first.
#
# Run the tasks with `pixi run TASK`, e.g. `pixi run codegen`.
# Extra CLI argument after `pixi run TASK` are passed to the task cmd.
# Lists tasks with `pixi task list`
#
# Type `pixi shell` to enter the pixi environment.
#
# https://prefix.dev/docs/pixi/overview
[project]
name = "rerun"
authors = ["rerun.io <[email protected]>"]
channels = ["conda-forge"]
description = "Log images, point clouds, etc, and visualize them effortlessly"
homepage = "https://rerun.io"
license = "MIT OR Apache-2.0"
platforms = ["linux-64", "linux-aarch64", "osx-arm64", "osx-64", "win-64"]
readme = "README.md"
repository = "https://github.com/rerun-io/rerun"
version = "0.1.0" # TODO(emilk): sync version with `Cargo.toml` with help from `crates.py`
[environments]
cpp = ["cpp"]
[tasks]
# Note: extra CLI argument after `pixi run TASK` are passed to the task cmd.
# Run the codegen. Optionally pass `--profile` argument if you want.
codegen = "cargo run --package re_types_builder -- "
# Compile and run the rerun viewer.
#
# You can also give an argument for what to view (e.g. an .rrd file).
rerun = "cargo run --package rerun-cli --no-default-features --features native_viewer --"
# Compile and run the rerun viewer with --release.
#
# You can also give an argument for what to view (e.g. an .rrd file).
rerun-release = "cargo run --package rerun-cli --no-default-features --features native_viewer --release --"
# Compile and run the web-viewer via rerun-cli.
#
# You can also give an argument for what to view (e.g. an .rrd file).
#
# This installs the `wasm32-unknown-unknown` rust target if it's not already installed.
# (this looks heavy but takes typically below 0.1s!)
rerun-web = { cmd = "cargo run --package rerun-cli --no-default-features --features web_viewer -- --web-viewer", depends_on = [
"rerun-build-web",
] }
# Compile the web-viewer wasm, does not include the cli.
#
# This installs the `wasm32-unknown-unknown` rust target if it's not already installed.
# (this looks heavy but takes typically below 0.1s!)
rerun-build-web = "rustup target add wasm32-unknown-unknown && cargo run -p re_build_web_viewer -- --debug"
# Compile and run the web-viewer in release mode via rerun-cli.
#
# You can also give an argument for what to view (e.g. an .rrd file).
#
# This installs the `wasm32-unknown-unknown` rust target if it's not already installed.
# (this looks heavy but takes typically below 0.1s!)
rerun-web-release = { cmd = "cargo run --package rerun-cli --no-default-features --features web_viewer --release -- --web-viewer", depends_on = [
"rerun-build-web-release",
] }
# Compile the web-viewer wasm in release mode.
#
# This installs the `wasm32-unknown-unknown` rust target if it's not already installed.
# (this looks heavy but takes typically below 0.1s!)
rerun-build-web-release = "rustup target add wasm32-unknown-unknown && cargo run -p re_build_web_viewer -- --release -g"
build-examples = "cargo run -q --locked -p re_build_examples --"
# Assorted linting tasks
fast-lint = "python scripts/fast_lint.py"
lint-codegen = "cargo run --package re_types_builder -- --check"
# TODO(jleibs): implement lint-cpp-all
lint-cpp-files = "clang-format --dry-run -Werror"
lint-rerun = "python scripts/lint.py"
lint-rs-files = "rustfmt --edition 2021 --check"
lint-rs-all = "cargo fmt --check"
lint-py-fmt-check = "ruff format --check --config rerun_py/pyproject.toml"
lint-py-blackdoc = "blackdoc --check"
lint-py-mypy = "mypy --install-types --non-interactive --no-warn-unused-ignore"
lint-py-ruff = "ruff format --check --config rerun_py/pyproject.toml"
lint-taplo = "taplo fmt --check --diff"
lint-typos = "typos"
misc-fmt = "prettier --write '**/*.{yml,yaml,js,css,html}'"
misc-fmt-check = "prettier --check '**/*.{yml,yaml,js,css,html}'"
ruff-fmt = "ruff format --config rerun_py/pyproject.toml ."
ruff-fix = "ruff --fix --config rerun_py/pyproject.toml ."
toml-fmt = "taplo fmt"
py-build = "maturin develop --manifest-path rerun_py/Cargo.toml --extras=tests"
# Run the Python tests.
# Don't call this on CI - use `nox` to run tests on all supported Python versions instead.
py-test = { cmd = "python -m pytest -vv rerun_py/tests/unit", depends_on = [
"py-build",
] }
py-plot-dashboard = { cmd = "python tests/python/plot_dashboard_stress/main.py", depends_on = [
"py-build",
] }
rs-plot-dashboard = { cmd = "cargo r -p plot_dashboard_stress --release --" }
# Build the documentation search index.
# See `pixi run search-index --help` for more information.
search-index = "cargo run -p re_build_search_index --release --"
# Start a local meilisearch instance at `localhost:7700` with master key `test`.
# This should only be used for testing the search index locally.
# Files are stored in the `meilisearch` directory, so you can fully wipe it via `rm -rf meilisearch`.
meilisearch = "meilisearch --db-path=./meilisearch/data.ms --dump-dir=./meilisearch/dumps/ --snapshot-dir=./meilisearch/snapshots/ --env=development --no-analytics --experimental-reduce-indexing-memory-usage --master-key=test"
[feature.cpp.tasks]
# All the cpp-* tasks can be configured with environment variables, e.g.: RERUN_WERROR=ON CXX=clang++
cpp-prepare-release = "cmake -G 'Ninja' -B build/release -S . -DCMAKE_BUILD_TYPE=Release"
cpp-prepare = "cmake -G 'Ninja' -B build/debug -S . -DCMAKE_BUILD_TYPE=Debug"
cpp-build-all = { cmd = "cmake --build build/debug --config Debug --target all", depends_on = [
"cpp-prepare",
] }
cpp-clean = "rm -rf build CMakeCache.txt CMakeFiles"
cpp-build-tests = { cmd = "cmake --build build/debug --config Debug --target rerun_sdk_tests", depends_on = [
"cpp-prepare",
] }
cpp-build-roundtrips = { cmd = "cmake --build build/debug --config Debug --target roundtrips", depends_on = [
"cpp-prepare",
] }
cpp-build-examples = { cmd = "cmake --build build/debug --config Debug --target examples", depends_on = [
"cpp-prepare",
] }
cpp-build-snippets = { cmd = "cmake --build build/debug --config Debug --target snippets", depends_on = [
"cpp-prepare",
] }
cpp-build-log-benchmark = { cmd = "cmake --build build/release --config Release --target log_benchmark", depends_on = [
"cpp-prepare-release",
] }
cpp-build-plot-dashboard-stress = { cmd = "cmake --build build/release --config Release --target plot_dashboard_stress", depends_on = [
"cpp-prepare-release",
] }
cpp-test = { cmd = "export RERUN_STRICT=1 && ./build/debug/rerun_cpp/tests/rerun_sdk_tests", depends_on = [
"cpp-build-tests",
] }
cpp-log-benchmark = { cmd = "export RERUN_STRICT=1 && ./build/release/tests/cpp/log_benchmark/log_benchmark", depends_on = [
"cpp-build-log-benchmark",
] }
cpp-plot-dashboard = { cmd = "export RERUN_STRICT=1 && ./build/release/tests/cpp/plot_dashboard_stress/plot_dashboard_stress", depends_on = [
"cpp-build-plot-dashboard-stress",
] }
cpp-build-and-test-all = { depends_on = ["cpp-build-all", "cpp-test"] }
cpp-docs = { cmd = "doxygen docs/Doxyfile && echo '***************\nSuccess!\nOpen ./rerun_cpp/docs/html/index.html in your browser.'", cwd = "rerun_cpp" }
[feature.cpp.target.win-64.tasks]
cpp-prepare-msvc = "cmake -G 'Visual Studio 17 2022' -B build-msvc -S ."
[dependencies]
# IMPORTANT: do not add any dependencies here that may break CI. All dependencies should be available on all supported
# platforms (including linux-aarch64), or added conditionally.
#
# Hints:
# - To check a given package, go to https://prefix.dev/channels/conda-forge/packages/XXXX. It should support Windows,
# x86_64 and aarch64 macOS architectures, and x86_64 and aarch64 Linux architectures.
# - Some pure Python packages may wrongly be tagged as platform-specific. In this case, use `[pypi-dependencies]`
# instead (e.g. `nox`).
# - If a package is only used for a very specific CI job on a specific target, include it under that target (e.g.
# `meilisearch`).
# - Last resort, use a feature to conditionally include a dependency (e.g. `taplo`).
attrs = ">=23.1.0"
blackdoc = "0.3.8"
clang-tools = "16.0.6" # clang-format
cmake = "3.27.6"
flatbuffers = ">=23"
gitignore-parser = ">=0.1.9"
gitpython = ">=3.1.40"
just = ">=1.15.0"
maturin = "1.5.1"
mypy = "1.8.0"
numpy = ">=1.23,<2"
pip = ">=23"
pyarrow = "14.0.2"
pytest = ">=7"
python = "=3.11" # We use the latest Python version here, so we get the latest mypy etc, EXCEPT 3.12 is too new for some of our examples. We run our CI tests on ALL supported versions though.
ruff = "0.2.2"
semver = ">=2.13,<2.14"
typing_extensions = ">4.5"
typos = ">=1.16.20"
wheel = ">=0.38,<0.39"
ninja = "1.11.1"
# Make sure to use a version that is compatible with
# the theme we're using, see https://github.com/jothepro/doxygen-awesome-css/blob/v2.2.1/README.md
doxygen = "1.9.7.*"
binaryen = "117.*" # for `wasm-opt`
prettier = "2.8.8.*"
taplo = "=0.9.1"
tomlkit = "0.12.3.*"
[pypi-dependencies]
nox = ">=2024.3.2" # the conda-forge package is (wrongly) tagged as platform-specific
[target.linux-64.dependencies]
patchelf = ">=0.17"
meilisearch = "1.5.1.*" # not available for linux-aarch64
[feature.cpp.target.linux-64.dependencies]
clang = "16.0.6"
ninja = "1.11.1"
c-compiler = "1.6.0.*"
cxx-compiler = "1.6.0.*"
[feature.cpp.target.osx-64.dependencies]
clang = "16.0.6"
ninja = "1.11.1"
c-compiler = "1.6.0.*"
cxx-compiler = "1.6.0.*"
[feature.cpp.target.osx-arm64.dependencies]
clang = "16.0.6"
ninja = "1.11.1"
c-compiler = "1.6.0.*"
cxx-compiler = "1.6.0.*"
[feature.cpp.target.win-64.dependencies]
vs2022_win-64 = "19.37.32822"