P10 (WIP): release build script, Dockerfile, conda recipes, fresh-VM acceptance task

scripts/build_dist.sh: sdist + pure wheel + manylinux_2_28 kernel wheels (maturin --zig,
both architectures). Dockerfile (multi-stage, kernels included, non-root user).
packaging/conda/{simurg,simurg-core}. scripts/p10/digest.py: platform-independent content
digests of GTC/VCF/summary outputs. Cloud task p10 installs the artifacts on a fresh
Ubuntu VM and runs the tutorial with pip, Docker and conda installs. trial.sh picks the
arm64/amd64 image from the instance type and can run instances in parallel (PARALLEL=1).
Licence files ship in both wheels; Rust crate notices added.
This commit is contained in:
kemal committed 2026-09-28 22:41:56 +01:00
1 parent 7d2dbe939e
commit 1f2abcbdba
13 files changed
+403 -5

No files matched your search

+22
View File
@@ -0,0 +1,22 @@
#!/usr/bin/env bash
# Build the release artifacts into dist/:
# simurg-<v>-py3-none-any.whl + simurg-<v>.tar.gz (pure Python)
# simurg_core-<v>-cp312-abi3-manylinux_2_28_{aarch64,x86_64}.whl (compiled kernels, Python >= 3.12)
# Portable Linux wheels are linked against glibc 2.28 with `maturin --zig` (cross-compiles the other architecture).
# Needs: uv, a Rust toolchain (rustup), ~60 MB for zig on first use.
# bash scripts/build_dist.sh [aarch64|x86_64|all] (default: all)
set -euo pipefail
cd "$(dirname "$0")/.."
export PATH="$HOME/.cargo/bin:$PATH"
WHICH=${1:-all}
mkdir -p dist
uv build -o dist # sdist + pure wheel of simurg
MATURIN="uvx --from maturin[zig]>=1.7,<2 maturin"
for arch in aarch64 x86_64; do
[[ $WHICH == all || $WHICH == "$arch" ]] || continue
rustup target add "$arch-unknown-linux-gnu" > /dev/null
$MATURIN build --release --zig --compatibility manylinux_2_28 --target "$arch-unknown-linux-gnu" \
-m rust/simurg-core/Cargo.toml -o dist
done
( cd dist && sha256sum ./*.whl ./*.tar.gz > SHA256SUMS )
ls -la dist