-
Notifications
You must be signed in to change notification settings - Fork 178
/
pixi.toml
165 lines (147 loc) · 5.39 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
[project]
authors = [
"Wolf Vollprecht <wolf@prefix.dev>",
"Bas Zalmstra <bas@prefix.dev>",
"Tim de Jager <tim@prefix.dev>",
"Ruben Arts <ruben@prefix.dev>",
]
description = "Package management made easy!"
name = "pixi"
# Using faster repodata fetching from our experimental fast channel, which implements https://github.com/conda/ceps/pull/75
channels = ["https://fast.prefix.dev/conda-forge"]
platforms = ["linux-64", "win-64", "osx-64", "osx-arm64"]
[dependencies]
python = "3.12.*"
[tasks]
build-debug = "cargo build"
build-release = "cargo build --release"
bump = "tbump --only-patch $RELEASE_VERSION"
install = "cargo install --path . --locked"
install-as = { cmd = "python scripts/install.py", depends-on = [
"build-release",
] }
pypi-proxy = "python scripts/pypi-proxy.py"
release = "python scripts/release.py"
run-all-examples = { cmd = "python tests/scripts/run-all-examples.py --pixi-exec $CARGO_TARGET_DIR/release/pixi", depends-on = [
"build-release",
] }
test-all-fast = { depends-on = ["test-fast", "test-integration-fast"] }
test-all-slow = { depends-on = ["test-slow", "test-integration-slow"] }
test-fast = "cargo nextest run --workspace"
test-slow = """cargo nextest run --workspace --retries 2 --features slow_integration_tests
--status-level skip --failure-output immediate-final --no-fail-fast --final-status-level slow"""
[feature.pytest.dependencies]
filelock = ">=3.16.0,<4"
mypy = ">=1.11,<1.12"
pytest = "*"
pytest-rerunfailures = ">=14.0,<15"
pytest-xdist = ">=3.6.1,<4"
rich = ">=13.7.1,<14"
tomli-w = ">=1.0,<2"
[feature.pytest.tasks]
test-common-wheels = { cmd = "pytest --numprocesses=auto tests/wheel_tests/", depends-on = [
"build-release",
] }
test-common-wheels-ci = { cmd = "pytest --numprocesses=auto --verbose tests/wheel_tests/" }
test-integration-ci = "pytest --numprocesses=auto --durations=10 --verbose tests/integration_python"
test-integration-fast = { cmd = "pytest -m 'not slow' --pixi-build=debug --numprocesses=auto --durations=10 tests/integration_python", depends-on = [
"build-debug",
] }
test-integration-slow = { cmd = "pytest --numprocesses=auto --durations=10 tests/integration_python", depends-on = [
"build-release",
] }
# pass the file to run as an argument to the task
# you can also pass a specific test function, like this:
# /path/to/test.py::test_function
test-specific-test = { cmd = "pytest", depends-on = ["build-release"] }
# Update one test channel by passing on key of `mappings.toml`
# e.g. "trampoline/trampoline_2.yaml"
update-test-channel = { cmd = "python update-channels.py", cwd = "tests/data/channels" }
[feature.dev.dependencies]
# Needed for the citation
cargo-nextest = ">=0.9.78,<0.10"
cffconvert = ">=2.0.0,<2.1"
tbump = ">=6.9.0,<6.10"
[feature.lint.dependencies]
pre-commit = ">=3.7.1,<4"
pre-commit-hooks = ">=4.6.0,<5"
ruff = ">=0.4.8,<0.5"
taplo = ">=0.9.1,<0.10"
typos = ">=1.23.1,<2"
[feature.lint.tasks]
check-openssl = "python tests/scripts/check-openssl.py"
lint = "pre-commit run --all-files --hook-stage=manual"
pre-commit-install = "pre-commit install --install-hooks -t=pre-commit -t=pre-push"
pre-commit-install-minimal = "pre-commit install -t=pre-commit"
pre-commit-run = "pre-commit run --all-files"
toml-format = { cmd = "taplo fmt", env = { RUST_LOG = "warn" } }
toml-lint = "taplo lint --verbose **/pixi.toml"
typecheck-python = "mypy"
[feature.build.dependencies]
# Needed for building
git = ">=2.46.0,<3"
openssl = "3.*"
pkg-config = "0.29.*"
rust = "~=1.81.0"
[feature.build.target.linux-64.dependencies]
clang = ">=18.1.8,<19.0"
compilers = ">=1.6.0"
make = ">=4.3,<5"
mold = ">=2.33.0,<3.0"
[feature.build.target.linux-64.activation]
scripts = ["scripts/activate.sh"]
[feature.build.target.osx-arm64.activation]
scripts = ["scripts/activate.sh"]
[feature.build.target.win-64.activation]
scripts = ["scripts/activate.bat"]
[feature.docs.dependencies]
cairosvg = "2.7.1.*"
git-cliff = ">=2.4.0,<3"
mdx_truly_sane_lists = ">=1.3,<2"
mike = "2.0.0.*"
mkdocs = "1.5.3.*"
mkdocs-material = ">=9.5.20,<10"
mkdocs-redirects = ">=1.2.1,<2"
pillow = ">=9.4.0"
[feature.docs.tasks]
build-docs = "mkdocs build --strict"
bump-changelog = "git-cliff --unreleased --prepend CHANGELOG.md --tag $RELEASE_VERSION"
deploy-dev = "mike deploy --push dev devel"
deploy-latest = "mike deploy --push --update-aliases $RELEASE_VERSION latest"
docs = "mkdocs serve"
mike-serve = "mike serve"
[feature.schema.tasks]
generate-schema = { cmd = "python model.py > schema.json", cwd = "schema" }
test-schema = { cmd = "pytest -s", depends-on = "generate-schema", cwd = "schema" }
[feature.schema.dependencies]
jsonschema = "*"
pydantic = ">=2.6.3,<2.7"
pyyaml = ">=6.0.1,<6.1"
[feature.pypi-gen.dependencies]
hatchling = ">=1.25.0,<2"
python-build = ">=1.2.2,<2"
[feature.pypi-gen.tasks]
pypi-gen-indexes = "python tests/data/pypi-indexes/generate-indexes.py"
[feature.micromamba]
dependencies = { micromamba = "*" }
tasks = { test-export = "bash tests/scripts/test-export.sh" }
[environments]
default = { features = [
"build",
"dev",
"schema",
"pytest",
], solve-group = "default" }
docs = { features = [
"docs",
], no-default-feature = true, solve-group = "default" }
lint = { features = [
"lint",
"pytest",
], no-default-feature = true, solve-group = "default" }
pypi-gen = { features = ["pypi-gen"] }
schema = { features = [
"schema",
"pytest",
], no-default-feature = true, solve-group = "default" }
test-export = { features = ["micromamba"], no-default-feature = true }