Packaging¶
Four release artifacts, one per audience, all published to the R2 bucket and pulled with curl … | tar xz. Everything is written to dist/ (gitignored); run these from the repo root.
| Artifact | For | Contents |
|---|---|---|
gridweave-latest.tar.gz |
deploying a master | the whole core/ tree (minus dev/build junk) |
gridweave-worker-latest.tar.gz |
a GPU node | join/update scripts, worker Dockerfiles, and gpu_support — enough to build the worker image locally |
gridweave_sdk-<version>-py3-none-any.whl |
users (pip install) |
the standalone SDK (httpx + cloudpickle only) |
gridweave-sdk.tar.gz |
new users | the SDK wheel + onboarding notebooks |
Build¶
Master — the full tree, with the webui's local build artifacts excluded (they balloon it from ~280 KB to ~105 MB on a machine that's run npm install):
mkdir -p dist
tar czf dist/gridweave-latest.tar.gz \
--exclude='.git' --exclude='.venv*' --exclude='__pycache__' --exclude='.pytest_cache' \
--exclude='.DS_Store' --exclude='.claude' --exclude='*.db' --exclude='core/dist' \
--exclude='node_modules' --exclude='.next' --exclude='*.tsbuildinfo' \
-C .. core/
GPU worker — the minimal build kit each node needs:
mkdir -p /tmp/gpu-worker/core/{deploy,docker,gpu_support}
cp deploy/join-node.sh deploy/update.sh /tmp/gpu-worker/core/deploy/
cp -r docker/ray-worker docker/ray-vllm-nvidia docker/ray-vllm-amd docker/ray-proxy /tmp/gpu-worker/core/docker/
cp -r gpu_support/. /tmp/gpu-worker/core/gpu_support/
tar czf dist/gridweave-worker-latest.tar.gz --exclude='__pycache__' -C /tmp/gpu-worker core/ && rm -rf /tmp/gpu-worker
SDK wheel — httpx + cloudpickle only, so import gridweave works without cloning core/:
cd client_sdk && python3.12 -m build --outdir ../dist && cd ..
Onboarding bundle — the wheel + the user notebooks, extracts to gridweave-sdk/:
mkdir -p /tmp/onboarding/gridweave-sdk
cp notebooks/onboarding.ipynb notebooks/examples_practitioner.ipynb notebooks/examples_hard.ipynb \
dist/gridweave_sdk-*.whl /tmp/onboarding/gridweave-sdk/
tar czf dist/gridweave-sdk.tar.gz -C /tmp/onboarding gridweave-sdk/ && rm -rf /tmp/onboarding
Versioning¶
VERSION_SDK, VERSION_SERVER, VERSION_WORKER at the repo root hold the current versions (all 0.3.23 today). The server and worker enforce a major-version match — a client or worker one major off is rejected (426) — so a release usually bumps all three together. For the SDK: bump VERSION_SDK (the runtime version; client_sdk/__init__.py reads this file) and client_sdk/pyproject.toml (which names the wheel), then update sdk-latest-version.txt in the bucket so the "latest wheel" install resolves.
Publish¶
Upload the dist/ artifacts to the R2 bucket and enable its Public Development URL for the pub-*.r2.dev/tarball/… links the install commands use. How to install each artifact is documented where it's consumed — deploy (master + worker) and the SDK (wheel + onboarding).