-
Notifications
You must be signed in to change notification settings - Fork 37
Expand file tree
/
Copy pathpixi.toml
More file actions
95 lines (82 loc) · 3.09 KB
/
Copy pathpixi.toml
File metadata and controls
95 lines (82 loc) · 3.09 KB
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
[workspace]
name = "pymake"
channels = ["conda-forge"]
platforms = ["win-64", "linux-64", "linux-aarch64", "osx-arm64"]
version = "2.0.0.dev0"
[dependencies]
appdirs = "*"
codespell = ">=2.2.2"
coverage = "!=7.6.5"
filelock = "*"
flaky = "*"
flopy = "*"
graphviz = "*"
hatchling = ">=1.27.0,<2"
matplotlib = ">=1.4.0"
meson = ">=1.3.1"
modflow-devtools = ">=1.7.0,!=1.9.0,<2"
networkx = "*"
ninja = "*"
numpy = ">=1.20.3,<3"
pip = "*"
pydot = "*"
pytest = "!=8.1.0"
pytest-benchmark = "*"
pytest-cov = "*"
pytest-dotenv = "*"
pytest-order = "*"
pytest-xdist = "*"
requests = "*"
ruff = "*"
[tasks]
postinstall = "pip install --no-build-isolation --no-deps --disable-pip-version-check -e ."
# format
check-lint = "ruff check ."
check-format = "ruff format . --check"
check-spelling = "codespell"
fix-style = "ruff check . --fix; ruff format ."
# test
download-examples = {cmd = "python ci_setup.py", cwd = "autotest"}
autotest = { cmd = "pytest -v -n auto --dist=loadgroup -m='base or regression' --durations 0 --cov=pymake --cov-report=xml --keep-failed .failed", cwd = "autotest" }
autotest-base = { cmd = "pytest -v -n auto --dist=loadgroup -m='base' --durations 0 --cov=pymake --cov-report=xml --keep-failed .failed", cwd = "autotest" }
autotest-request = { cmd = "pytest -v -n=auto -m='requests' --durations=0 --cov=pymake --cov-report=xml --keep-failed .failed", cwd = "autotest" }
autotest-schedule = { cmd = "pytest -v -m='schedule' --durations=0 --cov=pymake --cov-report=xml --keep-failed .failed", cwd = "autotest" }
# coverage report
coverage-report = { cmd = "coverage report", cwd = "autotest"}
# release
update-version = { cmd = "python scripts/update_version.py -v"}
update-programs = { cmd = "python scripts/update_programs.py"}
update-docs = { cmd = "python scripts/update_docs.py"}
create-codejson = { cmd = "make-code-json" }
# the build environment adds the compilers needed to build targets locally,
# for example 'pixi run -e build autotest-base'. the compilers are not in the
# default environment because continuous integration installs its own
[environments]
default = { features = ["py311"] }
build = { features = ["py311", "build"] }
py314 = { features = ["py314"] }
# the default environment is the oldest supported python and the py314
# environment is the newest, so continuous integration covers both ends of the
# range of supported python versions
[feature.py311.dependencies]
python = "3.11.*"
[feature.py314.dependencies]
python = "3.14.*"
[feature.build]
platforms = ["win-64", "linux-64", "linux-aarch64", "osx-arm64"]
[feature.build.dependencies]
gcc = "*"
gxx = "*"
gfortran = "*"
# continuous integration builds the targets on Windows with these compilers
# rather than the ones setup-fortran installs, which are downloaded from
# chocolatey on every run. the version is the one setup-fortran was asked for
[feature.build.target.win-64.dependencies]
gcc = "13.2.*"
gxx = "13.2.*"
gfortran = "13.2.*"
make = "*"
# gcc uses libc++ on macOS, and the libc++ 22 headers need a c++ standard
# newer than the one gcc defaults to, which breaks the c++ targets
[feature.build.target.osx-arm64.dependencies]
libcxx = "<22"