-
Notifications
You must be signed in to change notification settings - Fork 8
Expand file tree
/
Copy pathpixi.toml
More file actions
114 lines (94 loc) · 3.03 KB
/
pixi.toml
File metadata and controls
114 lines (94 loc) · 3.03 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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
[workspace]
name = "insight-journal-template"
description = "A template for open science article submissions to the Insight Journal using MyST Markdown"
channels = ["conda-forge"]
platforms = ["linux-64", "osx-arm64", "win-64"]
[dependencies]
# MyST ecosystem
mystmd = ">=1.8.0,<2"
jupyter-book = "*"
# Python scientific stack
python = ">=3.11"
numpy = "*"
matplotlib = "*"
scipy = "*"
# Development tools
jupyterlab = "*"
# Optional: for notebook execution
ipykernel = "*"
# Build manuscript PDF
typst = ">=0.13.1,<0.14"
[pypi-dependencies]
# ITK Python Package
itk = "*"
[tasks]
build-html = "myst build --html"
# Does not require a LaTeX installation
build-pdf = "myst build --typst"
# Requires a LaTeX installation
build-arxiv = "myst build --pdf"
build-tex = "myst build --tex"
build-docx = "myst build --docx"
build-cff = "myst build --cff"
# Combined tasks
build-manuscript = { depends-on = ["build-html", "build-pdf", "build-cff"] }
build-pdfs = { depends-on = ["build-pdf", "build-arxiv"] }
build-meca = { cmd = "myst build --meca", depends-on = ["build-html", "build-pdfs", "build-tex", "build-docx", "build-cff"] }
# Verify MECA bundle reproducibility
verify-meca = { cmd = '''
myst build --meca &&
rm -rf exports/article.meca &&
unzip exports/article.meca.zip -d exports/article.meca &&
cd exports/article.meca/bundle &&
pixi run build &&
pixi run test
''', depends-on = ["build-meca"], description = "Build MECA export and verify bundle reproducibility" }
# Start development server
start = "myst start"
# Alias
dev = { depends-on = ["serve"] }
# Clean build artifacts
clean = "myst clean"
# Aggregate, standard build task
build = { depends-on = ["build-manuscript", "test-src"] }
[feature.cxx.dependencies]
cmake = "*"
make = "*"
ninja = "*"
[feature.cxx.tasks.clone-itk]
cmd = ["stat", "build/ITK", ">/dev/null", "||",
"git", "clone",
"https://github.com/InsightSoftwareConsortium/ITK",
"build/ITK"]
outputs = ["build/ITK/LICENSE"]
description = "Fetch ITK's source code"
[feature.cxx.tasks.configure-itk]
cmd = '''cmake -Bbuild/ITK-build -Sbuild/ITK -GNinja
-DBUILD_EXAMPLES:BOOL=OFF
-DBUILD_TESTING:BOOL=OFF'''
depends-on = ["clone-itk"]
outputs = ["build/ITK-build/CMakeFiles/**"]
description = "Configure ITK"
[feature.cxx.tasks.build-itk]
cmd = "cmake --build build/ITK-build"
depends-on = ["configure-itk"]
outputs = ["build/ITK-build/**"]
description = "Build ITK"
[feature.cxx.tasks.configure-project]
cmd = '''cmake -Bbuild/project-build -Ssrc -GNinja
-DITK_DIR=$(pwd)/build/ITK-build'''
depends-on = ["build-itk"]
outputs = ["build/project-build/CMakeFiles/**"]
description = "Configure the project"
[feature.cxx.tasks.build-src]
cmd = "cmake --build build/project-build"
depends-on = ["configure-project"]
outputs = ["build/project-build/**"]
description = "Build the project"
[feature.cxx.tasks.test-src]
cmd = "cd build/project-build && ctest"
depends-on = ["build-src"]
description = "Test the project"
[environments]
default = { features = [], solve-group = "default" }
cxx = { features = ["cxx"], solve-group = "default" }