forked from prefix-dev/pixi
-
Notifications
You must be signed in to change notification settings - Fork 0
/
pixi.toml
155 lines (138 loc) · 4.95 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
[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 = "cargo build --release"
build-debug = "cargo build"
bump = "tbump --only-patch $RELEASE_VERSION"
install = "cargo install --path . --locked"
install-as = { cmd = "python scripts/install.py", depends-on = ["build"] }
pypi-proxy = "python ./tests/pypi_proxy.py"
release = "python scripts/release.py"
run-all-examples = { cmd = "python ./tests/run_all_examples.py --pixi-exec $CARGO_TARGET_DIR/release/pixi", depends-on = [
"build",
] }
test = "cargo nextest run"
test-all-fast = { depends-on = ["test", "test-integration-fast"] }
test-workspace = """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-ci = { cmd = "pytest --numprocesses=auto --verbose tests/wheel_tests/" }
test-common-wheels-dev = { cmd = "pytest --numprocesses=auto tests/wheel_tests/", depends-on = [
"build",
] }
test-integration-ci = "pytest --numprocesses=auto --durations=10 --verbose tests/integration"
test-integration-dev = { cmd = "pytest --numprocesses=auto --durations=10 tests/integration", depends-on = [
"build",
] }
test-integration-fast = { cmd = "pytest -m 'not slow' --pixi-build=debug --numprocesses=auto --durations=10 tests/integration", depends-on = [
"build-debug",
] }
# 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"] }
update-integration-test-data = { cmd = "python update-channels.py", cwd = "tests/integration/test_data" }
[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 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/pypi-indexes/generate-indexes.py"
[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" }