Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions .changeset/hilary-runenv.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
---
"@platforma-open/milaboratories.runenv-python-3.12.10-hilary": minor
"@platforma-open/milaboratories.runenv-python-3": minor
---

Add the `3.12.10-hilary` Python run environment: HILARy (`hilary`, invoked as `python -m hilary`) plus its
runtime closure, for the Lineage Trees block's clonal-lineage clustering.

`hilary` is declared under `noDeps`, following the `3.10.21-clustcr` precedent. The builder resolves each
declared package's closure separately, so HILARy's loose requirements (`numpy<3`, `scipy<2,>1.11`,
`pandas<3,>=2.2`) otherwise pulled the newest of each on top of the pinned versions and vendored duplicates.

`hilary` ships a universal `py3-none-any` wheel, so nothing here compiles.

There is no Linux ARM64 root, and the CI matrix omits it. `atriegc`, HILARy's trie-based CDR3 neighbour
search, publishes no Linux ARM64 wheel for any Python version, and its 0.0.4 sdist cannot substitute: it
ships `src/main.cpp` but omits the `trie_container.hpp` header that file includes, so a source build fails at
the first compile.
5 changes: 5 additions & 0 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,11 @@ jobs:
{"os":"macos-15-large", "arch":"amd64", "selector":"./python-3.12.10-clustering"},
{"os":"windows-latest", "arch":"amd64", "selector":"./python-3.12.10-clustering"},

{"os":"ubuntu-large-amd64", "arch":"amd64", "selector":"./python-3.12.10-hilary"},
{"os":"macos-15", "arch":"arm64", "selector":"./python-3.12.10-hilary"},
{"os":"macos-15-large", "arch":"amd64", "selector":"./python-3.12.10-hilary"},
{"os":"windows-latest", "arch":"amd64", "selector":"./python-3.12.10-hilary"},

{"os":"ubuntu-large-arm64", "arch":"arm64", "selector":"./python-3.10.21-clustcr"},
{"os":"ubuntu-large-amd64", "arch":"amd64", "selector":"./python-3.10.21-clustcr"},
{"os":"macos-15", "arch":"arm64", "selector":"./python-3.10.21-clustcr"},
Expand Down
6 changes: 5 additions & 1 deletion catalogue/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,9 @@
},
"3.10.21-clustcr": {
"reference": "@platforma-open/milaboratories.runenv-python-3.10.21-clustcr/dist/tengo/software/main.sw.json"
},
"3.12.10-hilary": {
"reference": "@platforma-open/milaboratories.runenv-python-3.12.10-hilary/dist/tengo/software/main.sw.json"
}
}
},
Expand All @@ -66,7 +69,8 @@
"@platforma-open/milaboratories.runenv-python-3.12.10-torch-cuda": "workspace:*",
"@platforma-open/milaboratories.runenv-python-3.12.10-clustering": "workspace:*",
"@platforma-open/milaboratories.runenv-python-3.12.10-pgen": "workspace:*",
"@platforma-open/milaboratories.runenv-python-3.10.21-clustcr": "workspace:*"
"@platforma-open/milaboratories.runenv-python-3.10.21-clustcr": "workspace:*",
"@platforma-open/milaboratories.runenv-python-3.12.10-hilary": "workspace:*"
},
"devDependencies": {
"@platforma-sdk/package-builder": "catalog:"
Expand Down
15 changes: 15 additions & 0 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions pnpm-workspace.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ packages:
- python-3.12.10-humanness
- python-3.12.10-torch-cuda
- python-3.12.10-clustering
- python-3.12.10-hilary
- python-3.10.21-clustcr
- python-3.12.10-pgen
- catalogue
Expand Down
16 changes: 16 additions & 0 deletions python-3.12.10-hilary/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
Run environment for the HILARy package used by the Lineage Trees block.

Everything is pinned explicitly. A variant does not inherit the base environment's
dependency list, so HILARy's whole runtime closure is named here.

`hilary` is under `noDeps` because the builder resolves each declared package's
closure separately, so HILARy's own loose requirements would vendor a second,
newer copy of numpy, scipy, pandas, tqdm and setuptools alongside the pins. A
consuming block should pin what it wants in its own requirements, since that is
what decides the installed versions.

There is no Linux ARM64 root. `atriegc`, HILARy's trie-based CDR3 neighbour search,
publishes no Linux ARM64 wheel, and its 0.0.4 sdist cannot substitute: it ships
`src/main.cpp` but omits the `trie_container.hpp` header that file includes, so a
source build fails at the first compile. The other four platforms all have wheels
for every pin, which is why `strictMissing` is on.
28 changes: 28 additions & 0 deletions python-3.12.10-hilary/config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{
"packages": {
"dependencies": [
"hilary==1.2.4",
"atriegc==0.0.4",
"structlog==22.3.0",
"textdistance==4.6.3",
"typer==0.27.2",
"tqdm==4.69.0",
"openpyxl==3.1.5",
"pandas==2.2.3",
"scipy==1.15.3",
"numpy==2.2.6",
"setuptools==83.0.0"
],
"noDeps": [
"hilary"
],
"skip": {},
"overrides": {},
"platformSpecific": {},
"resolution": {
"strictMissing": true
},
"forceSource": {},
"buildWheel": {}
}
}
42 changes: 42 additions & 0 deletions python-3.12.10-hilary/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
{
"name": "@platforma-open/milaboratories.runenv-python-3.12.10-hilary",
"version": "0.1.0",
"description": "Python 3.12.10 run environment for the Lineage Trees block (HILARy clonal-lineage clustering and its numeric stack)",
"scripts": {
"cleanup": "rm -rf ./pkg-*.tgz ./pydist ./dist/ ./build/",
"reset": "pnpm run cleanup && rm -rf ./node_modules ./.turbo",
"build": "pl-py-builder",
"after-prebuild": "pl-pkg publish packages",
"before-publish": "pl-pkg prepublish"
},
"files": [
"dist/"
],
"block-software": {
"entrypoints": {
"main": {
"environment": {
"artifact": {
"type": "environment",
"runtime": "python",
"registry": "platforma-open",
"python-version": "3.12.10",
"roots": {
"linux-x64": "./pydist/linux-x64",
"macosx-x64": "./pydist/macosx-x64",
"macosx-aarch64": "./pydist/macosx-aarch64",
"windows-x64": "./pydist/windows-x64"
},
"binDir": "bin"
}
}
}
}
},
"license": "UNLICENSED",
"devDependencies": {
"@platforma-sdk/package-builder": "catalog:",
"runenv-python-builder": "workspace:*",
"tsx": "catalog:"
}
}
Loading