Skip to content

Commit ea08207

Browse files
committed
build(transform-io): add pixi configuration
1 parent 580ec0b commit ea08207

File tree

7 files changed

+9397
-23
lines changed

7 files changed

+9397
-23
lines changed

packages/transform-io/.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
test/
22
emscripten-build/
3-
micromamba/
43
python/
54
wasi-build/
65
typescript/dist
6+
pyodide/

packages/transform-io/.npmrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
git-checks=false

packages/transform-io/environment.yml

Lines changed: 0 additions & 9 deletions
This file was deleted.

packages/transform-io/package.json

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
{
22
"name": "@itk-wasm/transform-io-build",
3-
"version": "1.0.0",
3+
"version": "0.1.1",
44
"private": true,
5-
"packageManager": "[email protected]",
65
"description": "scripts to generate @itk-wasm/transform-io itk-wasm artifacts.",
76
"type": "module",
87
"itk-wasm": {
@@ -19,27 +18,24 @@
1918
"build:emscripten:debug": "itk-wasm pnpm-script build:emscripten:debug",
2019
"build:wasi": "itk-wasm pnpm-script build:wasi",
2120
"build:wasi:debug": "itk-wasm pnpm-script build:wasi:debug",
22-
"build:python:wasi": "itk-wasm pnpm-script build:python:wasi",
21+
"build:python:wasi": "echo 'No build:python:wasi script required with pixi'",
2322
"bindgen:typescript": "itk-wasm pnpm-script bindgen:typescript",
2423
"bindgen:python": "itk-wasm pnpm-script bindgen:python",
2524
"build:gen:typescript": "itk-wasm pnpm-script build:gen:typescript",
26-
"build:gen:python": "itk-wasm pnpm-script build:gen:python",
27-
"build:micromamba": "itk-wasm pnpm-script build:micromamba",
28-
"build:python:versionSync": "itk-wasm pnpm-script build:python:versionSync",
25+
"build:gen:python": "pnpm build:wasi && pnpm bindgen:python",
2926
"publish:python": "itk-wasm pnpm-script publish:python",
3027
"test": "pnpm test:data:download && pnpm build:gen:python && pnpm test:python",
3128
"test:data:download": "dam download test/data test/data.tar.gz bafkreihranpzszz3q5bwgzsw6olqwh2e726wfnh4qblkjbng44yhqbfin4 https://bafybeihn3n52vhja45ds3d4wsch3i77rej2oylorjgevt55w3aqirgxzme.ipfs.w3s.link/ipfs/bafybeihn3n52vhja45ds3d4wsch3i77rej2oylorjgevt55w3aqirgxzme/data.tar.gz",
3229
"test:data:pack": "dam pack test/data test/data.tar.gz",
33-
"test:python:wasi": "itk-wasm pnpm-script test:python:wasi",
34-
"test:python:emscripten": "itk-wasm pnpm-script test:python:emscripten",
35-
"test:python:dispatch": "itk-wasm pnpm-script test:python:emscripten",
30+
"test:python:wasi": "pnpm test:data:download && pixi run test-wasi",
31+
"test:python:emscripten": "pnpm test:data:download && pixi run test-emscripten",
32+
"test:python:dispatch": "pnpm test:data:download && pixi run test-dispatch",
3633
"test:python": "itk-wasm pnpm-script test:python",
3734
"test:wasi": "itk-wasm pnpm-script test:wasi"
3835
},
3936
"license": "Apache-2.0",
4037
"devDependencies": {
4138
"@itk-wasm/dam": "^1.1.1",
42-
"@thewtex/setup-micromamba": "^1.9.7",
4339
"itk-wasm": "workspace:^"
4440
}
4541
}

packages/transform-io/pixi.lock

Lines changed: 9250 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/transform-io/pixi.toml

Lines changed: 139 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
1+
[project]
2+
authors = ["Matt McCormick <[email protected]>"]
3+
channels = ["conda-forge"]
4+
description = "Input and output for scientific and medical transform file formats."
5+
name = "transform-io"
6+
platforms = ["win-64", "linux-64", "linux-aarch64", "osx-arm64"]
7+
version = "0.1.0"
8+
9+
[tasks]
10+
11+
[dependencies]
12+
python = "3.12.*"
13+
pnpm = ">=9.12.1,<10"
14+
hatch = ">=1.13.0,<2"
15+
pip = ">=24.2,<25"
16+
17+
[target.win-64.dependencies]
18+
m2w64-jq = ">=1.6.0,<2"
19+
20+
[target.unix.dependencies]
21+
jq = ">=1.7.1,<2"
22+
23+
[tasks.version-sync-typescript]
24+
cmd = '''version=$(cat package.json | jq .version) &&
25+
jq ".version = $version" typescript/package.json > typescript/package.json.tmp &&
26+
mv typescript/package.json.tmp typescript/package.json'''
27+
28+
[tasks.version-sync-python-wasi]
29+
cmd = '''version=$(cat ../../package.json | jq -r .version) &&
30+
echo "version is $version" &&
31+
hatch version $version'''
32+
cwd = "python/itkwasm-transform-io-wasi"
33+
34+
[tasks.version-sync-python-emscripten]
35+
cmd = '''version=$(cat ../../package.json | jq -r .version) &&
36+
hatch version $version'''
37+
cwd = "python/itkwasm-transform-io-emscripten"
38+
39+
[tasks.version-sync-python-dispatch]
40+
cmd = '''version=$(cat ../../package.json | jq -r .version) &&
41+
hatch version $version'''
42+
cwd = "python/itkwasm-transform-io"
43+
44+
[tasks.version-sync]
45+
depends-on = ["version-sync-typescript", "version-sync-python-wasi", "version-sync-python-emscripten", "version-sync-python-dispatch"]
46+
description = "Synchronize package versions"
47+
48+
[tasks.publish-typescript]
49+
cmd = "pnpm publish --filter \"{typescript}\""
50+
51+
[tasks.publish-python-user-check]
52+
cmd = "if [ -n \"$HATCH_INDEX_USER\"]; then echo \"HATCH_INDEX_USER is set\"; else echo \"HATCH_INDEX_USER is not set\"; exit 1; fi"
53+
54+
[tasks.publish-python-wasi]
55+
cmd = '''hatch build &&
56+
hatch publish'''
57+
cwd = "python/itkwasm-transform-io-wasi"
58+
59+
[tasks.publish-python-emscripten]
60+
cmd = '''hatch build &&
61+
hatch publish'''
62+
cwd = "python/itkwasm-transform-io-emscripten"
63+
64+
[tasks.publish-python-dispatch]
65+
cmd = '''hatch build &&
66+
hatch publish'''
67+
cwd = "python/itkwasm-transform-io"
68+
69+
[tasks.publish]
70+
depends-on = ["publish-typescript", "publish-python-wasi", "publish-python-emscripten", "publish-python-dispatch"]
71+
description = "Synchronize package versions"
72+
73+
[feature.python.dependencies]
74+
pytest = ">=8.3.3,<9"
75+
pillow = ">=10.4.0,<12"
76+
77+
[feature.python.pypi-dependencies]
78+
pyodide-py = ">=0.26.3, <0.27"
79+
pytest-pyodide = ">=0.58.3, <0.59"
80+
itk-webassemblyinterface = ">=1.0b175, <2"
81+
itkwasm = ">=1.0b179, <2"
82+
83+
[feature.python.tasks.test-wasi]
84+
cmd = "pytest"
85+
cwd = "python/itkwasm-transform-io-wasi"
86+
description = "Run tests for itkwasm-transform-io-wasi"
87+
88+
[feature.python.tasks.download-pyodide]
89+
cmd = '''curl -L https://github.com/pyodide/pyodide/releases/download/0.26.3/pyodide-0.26.3.tar.bz2 -o pyodide.tar.bz2 &&
90+
tar xjf pyodide.tar.bz2 &&
91+
rm pyodide.tar.bz2'''
92+
outputs = ["pyodide"]
93+
description = "Download Pyodide"
94+
95+
[feature.python.tasks.test-emscripten]
96+
cmd = '''mkdir -p dist/pyodide &&
97+
cp -r ../../pyodide dist/ &&
98+
hatch build -t wheel ./dist/pyodide/ &&
99+
pytest --dist-dir=./dist/pyodide --rt=chrome'''
100+
cwd = "python/itkwasm-transform-io-emscripten"
101+
depends-on = ["download-pyodide"]
102+
description = "Run tests for itkwasm-transform-io-emscripten"
103+
104+
[feature.python.tasks.serve-emscripten]
105+
cmd = '''mkdir -p dist/pyodide &&
106+
cp -r ../../pyodide dist/ &&
107+
hatch build -t wheel ./dist/pyodide/ &&
108+
echo \"\nVisit http://localhost:8877/console.html\n\" &&
109+
python -m http.server --directory=./dist/pyodide 8877'''
110+
cwd = "python/itkwasm-transform-io-emscripten"
111+
depends-on = ["download-pyodide"]
112+
description = "Serve itkwasm-transform-io-emscripten for development"
113+
114+
[feature.python.tasks.test-dispatch]
115+
cmd = '''mkdir -p dist/pyodide &&
116+
cp -r ../../pyodide dist/ &&
117+
hatch build -t wheel ./dist/pyodide/ &&
118+
cp ../itkwasm-transform-io-emscripten/dist/pyodide/itkwasm_transform_io_emscripten*.whl ./dist/pyodide/ &&
119+
pytest --dist-dir=./dist/pyodide --rt=chrome'''
120+
cwd = "python/itkwasm-transform-io"
121+
depends-on = ["download-pyodide"]
122+
description = "Run tests for itkwasm-transform-io"
123+
124+
[feature.python.tasks.serve-dispatch]
125+
cmd = '''mkdir -p dist/pyodide &&
126+
cp -r ../../pyodide dist/ &&
127+
hatch build -t wheel ./dist/pyodide/ &&
128+
echo \"\nVisit http://localhost:8877/console.html\n\" &&
129+
python -m http.server --directory=./dist/pyodide 8877'''
130+
cwd = "python/itkwasm-transform-io"
131+
depends-on = ["download-pyodide"]
132+
description = "Serve itkwasm-transform-io for development"
133+
134+
[feature.python.tasks.test-python]
135+
depends-on = ["test-wasi", "test-emscripten", "test-dispatch"]
136+
description = "Run tests for all Python packages"
137+
138+
[environments]
139+
python = ["python"]

pnpm-lock.yaml

Lines changed: 0 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)