Skip to content

Commit eb45425

Browse files
committed
build(downsample): add pixi configuration
1 parent 3752ab7 commit eb45425

File tree

9 files changed

+6333
-32
lines changed

9 files changed

+6333
-32
lines changed

.github/workflows/python-wasm.yml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -61,10 +61,6 @@ jobs:
6161
run: |
6262
pnpm run --aggregate-output --filter "@itk-wasm/${{ matrix.package }}-build" bindgen:python
6363
64-
- name: Build build:micromamba
65-
run: |
66-
pnpm run --aggregate-output --filter "@itk-wasm/${{ matrix.package }}-build" build:micromamba
67-
6864
- name: Build build:python:wasi
6965
if: ${{ matrix.os == 'ubuntu-22.04' || (matrix.package != 'mesh-io' && matrix.package != 'image-io' && matrix.package != 'downsample' ) }}
7066
run: |

packages/downsample/.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
micromamba/
21
emscripten-build/
32
wasi-build/
43
python/itkwasm-downsample-wasi/itkwasm_downsample_wasi/wasm_modules/
@@ -14,3 +13,4 @@ test/data/python/
1413
python/itkwasm-downsample-emscripten/dist/
1514
python/itkwasm-downsample-wasi/dist/
1615
python/itkwasm-downsample/dist/
16+
pyodide/

packages/downsample/.npmrc

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

packages/downsample/environment.yml

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

packages/downsample/package.json

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
{
22
"name": "@itk-wasm/downsample-build",
3-
"version": "1.0.0",
3+
"version": "1.4.3",
44
"private": true,
5-
"packageManager": "[email protected]",
6-
"description": "scripts to generate @itk-wasm/downsample itk-wasm artifacts.",
5+
"description": "Pipelines for downsampling images.",
76
"type": "module",
87
"itk-wasm": {
98
"emscripten-docker-image": "itkwasm/emscripten:latest",
@@ -24,27 +23,23 @@
2423
"build:emscripten:debug": "itk-wasm pnpm-script build:emscripten:debug",
2524
"build:wasi": "itk-wasm pnpm-script build:wasi",
2625
"build:wasi:debug": "itk-wasm pnpm-script build:wasi:debug",
27-
"build:python:wasi": "itk-wasm pnpm-script build:python:wasi",
26+
"build:python:wasi": "echo 'No build:python:wasi script required with pixi'",
2827
"bindgen:typescript": "itk-wasm pnpm-script bindgen:typescript",
2928
"bindgen:python": "itk-wasm pnpm-script bindgen:python",
3029
"build:gen:typescript": "itk-wasm pnpm-script build:gen:typescript",
31-
"build:gen:python": "itk-wasm pnpm-script build:gen:python",
32-
"build:micromamba": "itk-wasm pnpm-script build:micromamba",
33-
"build:python:versionSync": "itk-wasm pnpm-script build:python:versionSync",
34-
"publish:python": "itk-wasm pnpm-script publish:python",
30+
"build:gen:python": "pnpm build:wasi && pnpm bindgen:python",
3531
"test": "pnpm test:data:download && pnpm build:gen:python && pnpm test:python",
3632
"test:data:download": "dam download test/data test/data.tar.gz bafkreic7utwwa32sc7ekhouzdlnla4kffytphcwc7qwam5ndhixwjulydq https://github.com/InsightSoftwareConsortium/ITK-Wasm/releases/download/itk-wasm-v1.0.0-b.163/itkwasm-downsample-test-data.tar.gz https://w3s.link/ipfs/bafybeifwebok64osjl2i3zc6rkn3izgon333wsjotqzqlxorkkvrbldjcy/data.tar.gz",
3733
"test:data:pack": "dam pack test/data test/data.tar.gz",
38-
"test:python:wasi": "itk-wasm pnpm-script test:python:wasi",
39-
"test:python:emscripten": "itk-wasm pnpm-script test:python:emscripten",
40-
"test:python:dispatch": "itk-wasm pnpm-script test:python:emscripten",
34+
"test:python:wasi": "pnpm test:data:download && pixi run test-wasi",
35+
"test:python:emscripten": "pnpm test:data:download && pixi run test-emscripten",
36+
"test:python:dispatch": "pnpm test:data:download && pixi run test-dispatch",
4137
"test:python": "itk-wasm pnpm-script test:python",
4238
"test:wasi": "itk-wasm pnpm-script test:wasi -- -V"
4339
},
4440
"license": "Apache-2.0",
4541
"devDependencies": {
4642
"@itk-wasm/dam": "^1.1.0",
47-
"@thewtex/setup-micromamba": "^1.9.7",
4843
"itk-wasm": "workspace:^"
4944
}
5045
}

packages/downsample/pixi.lock

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

packages/downsample/pixi.toml

Lines changed: 142 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,142 @@
1+
[project]
2+
authors = ["Matt McCormick <[email protected]>"]
3+
channels = ["conda-forge"]
4+
description = "Pipelines for downsampling images."
5+
name = "downsample"
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-downsample-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-downsample-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-downsample"
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-downsample-wasi"
58+
59+
[tasks.publish-python-emscripten]
60+
cmd = '''hatch build &&
61+
hatch publish'''
62+
cwd = "python/itkwasm-downsample-emscripten"
63+
64+
[tasks.publish-python-dispatch]
65+
cmd = '''hatch build &&
66+
hatch publish'''
67+
cwd = "python/itkwasm-downsample"
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+
itkwasm-downsample-wasi = { path = "python/itkwasm-downsample-wasi", editable = true }
79+
itkwasm-downsample = { path = "python/itkwasm-downsample", editable = true }
80+
pyodide-py = ">=0.26.3, <0.27"
81+
pytest-pyodide = ">=0.58.3, <0.59"
82+
itk-webassemblyinterface = ">=1.0b175, <2"
83+
itkwasm-image-io = ">=1.3.0, <2"
84+
itkwasm-compare-images = ">=5.2.3, <6"
85+
86+
[feature.python.tasks.test-wasi]
87+
cmd = "pytest"
88+
cwd = "python/itkwasm-downsample-wasi"
89+
description = "Run tests for itkwasm-downsample-wasi"
90+
91+
[feature.python.tasks.download-pyodide]
92+
cmd = '''curl -L https://github.com/pyodide/pyodide/releases/download/0.26.3/pyodide-0.26.3.tar.bz2 -o pyodide.tar.bz2 &&
93+
tar xjf pyodide.tar.bz2 &&
94+
rm pyodide.tar.bz2'''
95+
outputs = ["pyodide"]
96+
description = "Download Pyodide"
97+
98+
[feature.python.tasks.test-emscripten]
99+
cmd = '''mkdir -p dist/pyodide &&
100+
cp -r ../../pyodide dist/ &&
101+
hatch build -t wheel ./dist/pyodide/ &&
102+
pytest --dist-dir=./dist/pyodide --rt=chrome'''
103+
cwd = "python/itkwasm-downsample-emscripten"
104+
depends-on = ["download-pyodide"]
105+
description = "Run tests for itkwasm-downsample-emscripten"
106+
107+
[feature.python.tasks.serve-emscripten]
108+
cmd = '''mkdir -p dist/pyodide &&
109+
cp -r ../../pyodide dist/ &&
110+
hatch build -t wheel ./dist/pyodide/ &&
111+
echo \"\nVisit http://localhost:8877/console.html\n\" &&
112+
python -m http.server --directory=./dist/pyodide 8877'''
113+
cwd = "python/itkwasm-downsample-emscripten"
114+
depends-on = ["download-pyodide"]
115+
description = "Serve itkwasm-downsample-emscripten for development"
116+
117+
[feature.python.tasks.test-dispatch]
118+
cmd = '''mkdir -p dist/pyodide &&
119+
cp -r ../../pyodide dist/ &&
120+
hatch build -t wheel ./dist/pyodide/ &&
121+
cp ../itkwasm-downsample-emscripten/dist/pyodide/itkwasm_downsample_emscripten*.whl ./dist/pyodide/ &&
122+
pytest --dist-dir=./dist/pyodide --rt=chrome'''
123+
cwd = "python/itkwasm-downsample"
124+
depends-on = ["download-pyodide"]
125+
description = "Run tests for itkwasm-downsample"
126+
127+
[feature.python.tasks.serve-dispatch]
128+
cmd = '''mkdir -p dist/pyodide &&
129+
cp -r ../../pyodide dist/ &&
130+
hatch build -t wheel ./dist/pyodide/ &&
131+
echo \"\nVisit http://localhost:8877/console.html\n\" &&
132+
python -m http.server --directory=./dist/pyodide 8877'''
133+
cwd = "python/itkwasm-downsample"
134+
depends-on = ["download-pyodide"]
135+
description = "Serve itkwasm-downsample for development"
136+
137+
[feature.python.tasks.test-python]
138+
depends-on = ["test-wasi", "test-emscripten", "test-dispatch"]
139+
description = "Run tests for all Python packages"
140+
141+
[environments]
142+
python = ["python"]

packages/downsample/python/itkwasm-downsample-emscripten/itkwasm_downsample_emscripten/js_package.py

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

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)