From a2b76964c175b0d053afaf3dcf94a60c7da73e70 Mon Sep 17 00:00:00 2001 From: Julen Mendieta Date: Tue, 25 Aug 2026 11:19:53 +0200 Subject: [PATCH 1/5] Set the new env for clusTCR --- .changeset/clustcr-runenv.md | 12 +++++++++ .github/workflows/build.yaml | 5 ++++ catalogue/package.json | 4 +++ pnpm-lock.yaml | 15 +++++++++++ pnpm-workspace.yaml | 1 + python-3.12.10-clustcr/README.md | 3 +++ python-3.12.10-clustcr/config.json | 30 +++++++++++++++++++++ python-3.12.10-clustcr/package.json | 42 +++++++++++++++++++++++++++++ 8 files changed, 112 insertions(+) create mode 100644 .changeset/clustcr-runenv.md create mode 100644 python-3.12.10-clustcr/README.md create mode 100644 python-3.12.10-clustcr/config.json create mode 100644 python-3.12.10-clustcr/package.json diff --git a/.changeset/clustcr-runenv.md b/.changeset/clustcr-runenv.md new file mode 100644 index 0000000..5c791cb --- /dev/null +++ b/.changeset/clustcr-runenv.md @@ -0,0 +1,12 @@ +--- +"@platforma-open/milaboratories.runenv-python-3.12.10-clustcr": minor +"@platforma-open/milaboratories.runenv-python-3": minor +--- + +Add the `3.12.10-clustcr` Python run environment: clusTCR (`immunewatch-clustcr`, module `imw_clustcr`) +plus its runtime closure, faiss-cpu and polars-lts-cpu, for the clusTCR Clustering block. + +clusTCR's own metadata is skipped via `noDeps` because it hard-pins `scipy==1.8`, which is unsatisfiable on +Python 3.12 (every 1.8.x release declares `Requires-Python >=3.8,<3.11`) and unnecessary — clusTCR runs on +scipy 1.11/1.18. numpy is held below 2.0 because clusTCR's faiss path (the `two-step` method and +`include_vgene`) breaks under numpy 2.x. See the package README for the full rationale. diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 045c596..5485c20 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -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-arm64", "arch":"arm64", "selector":"./python-3.12.10-clustcr"}, + {"os":"ubuntu-large-amd64", "arch":"amd64", "selector":"./python-3.12.10-clustcr"}, + {"os":"macos-15", "arch":"arm64", "selector":"./python-3.12.10-clustcr"}, + {"os":"macos-15-large", "arch":"amd64", "selector":"./python-3.12.10-clustcr"}, + {"os":"ubuntu-large-arm64", "arch":"arm64", "selector":"./python-3.12.10-pgen"}, {"os":"ubuntu-large-amd64", "arch":"amd64", "selector":"./python-3.12.10-pgen"}, {"os":"macos-15", "arch":"arm64", "selector":"./python-3.12.10-pgen"}, diff --git a/catalogue/package.json b/catalogue/package.json index b656b38..3ef6c71 100644 --- a/catalogue/package.json +++ b/catalogue/package.json @@ -42,6 +42,9 @@ "3.12.10-clustering": { "reference": "@platforma-open/milaboratories.runenv-python-3.12.10-clustering/dist/tengo/software/main.sw.json" }, + "3.12.10-clustcr": { + "reference": "@platforma-open/milaboratories.runenv-python-3.12.10-clustcr/dist/tengo/software/main.sw.json" + }, "3.12.10-pgen": { "reference": "@platforma-open/milaboratories.runenv-python-3.12.10-pgen/dist/tengo/software/main.sw.json" } @@ -62,6 +65,7 @@ "@platforma-open/milaboratories.runenv-python-3.12.10-humanness": "workspace:*", "@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-clustcr": "workspace:*", "@platforma-open/milaboratories.runenv-python-3.12.10-pgen": "workspace:*" }, "devDependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 063067d..0dbe155 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -65,6 +65,9 @@ importers: '@platforma-open/milaboratories.runenv-python-3.12.10-atls': specifier: workspace:* version: link:../python-3.12.10-atls + '@platforma-open/milaboratories.runenv-python-3.12.10-clustcr': + specifier: workspace:* + version: link:../python-3.12.10-clustcr '@platforma-open/milaboratories.runenv-python-3.12.10-clustering': specifier: workspace:* version: link:../python-3.12.10-clustering @@ -121,6 +124,18 @@ importers: specifier: 'catalog:' version: 4.20.6 + python-3.12.10-clustcr: + devDependencies: + '@platforma-sdk/package-builder': + specifier: 'catalog:' + version: 3.10.7 + runenv-python-builder: + specifier: workspace:* + version: link:../builder + tsx: + specifier: 'catalog:' + version: 4.20.6 + python-3.12.10-clustering: devDependencies: '@platforma-sdk/package-builder': diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index e144236..ff5c315 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -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-clustcr - python-3.12.10-pgen - catalogue diff --git a/python-3.12.10-clustcr/README.md b/python-3.12.10-clustcr/README.md new file mode 100644 index 0000000..1e17985 --- /dev/null +++ b/python-3.12.10-clustcr/README.md @@ -0,0 +1,3 @@ +Python 3.12.10 run environment for the **clusTCR Clustering** block (`tcr-clustering-clusttcr`): clusTCR +itself (`immunewatch-clustcr`, importable as `imw_clustcr`) plus its runtime closure and faiss-cpu, with +polars-lts-cpu for the block runner's own I/O. \ No newline at end of file diff --git a/python-3.12.10-clustcr/config.json b/python-3.12.10-clustcr/config.json new file mode 100644 index 0000000..ae188dc --- /dev/null +++ b/python-3.12.10-clustcr/config.json @@ -0,0 +1,30 @@ +{ + "packages": { + "dependencies": [ + "immunewatch-clustcr==1.0.1", + "numpy==1.26.4", + "scipy==1.11.4", + "pandas==2.2.3", + "networkx==3.6.1", + "scikit-learn==1.9.0", + "markov_clustering==0.0.6.dev0", + "parmap==1.7.0", + "python-louvain==0.16", + "matplotlib==3.11.1", + "faiss-cpu==1.15.0", + "polars-lts-cpu==1.33.1" + ], + "noDeps": [ + "immunewatch-clustcr" + ], + "skip": {}, + "overrides": {}, + "platformSpecific": {}, + "resolution": { + "allowSourceList": [ + "python-louvain" + ], + "strictMissing": true + } + } +} diff --git a/python-3.12.10-clustcr/package.json b/python-3.12.10-clustcr/package.json new file mode 100644 index 0000000..573dd6c --- /dev/null +++ b/python-3.12.10-clustcr/package.json @@ -0,0 +1,42 @@ +{ + "name": "@platforma-open/milaboratories.runenv-python-3.12.10-clustcr", + "version": "0.1.0", + "description": "Python 3.12.10 run environment for the clusTCR Clustering block (immunewatch-clustcr + faiss-cpu, pinned to numpy<2)", + "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", + "linux-aarch64": "./pydist/linux-aarch64", + "macosx-x64": "./pydist/macosx-x64", + "macosx-aarch64": "./pydist/macosx-aarch64" + }, + "binDir": "bin" + } + } + } + } + }, + "license": "UNLICENSED", + "devDependencies": { + "@platforma-sdk/package-builder": "catalog:", + "runenv-python-builder": "workspace:*", + "tsx": "catalog:" + } +} From 1ec7648eaa577382ebfc2f2c4535a94774a0b054 Mon Sep 17 00:00:00 2001 From: Julen Mendieta Date: Tue, 25 Aug 2026 12:12:56 +0200 Subject: [PATCH 2/5] Deal with Louvain installation issues --- python-3.12.10-clustcr/config.json | 35 +++++++++++++++++++++++++++--- 1 file changed, 32 insertions(+), 3 deletions(-) diff --git a/python-3.12.10-clustcr/config.json b/python-3.12.10-clustcr/config.json index ae188dc..31df685 100644 --- a/python-3.12.10-clustcr/config.json +++ b/python-3.12.10-clustcr/config.json @@ -21,10 +21,39 @@ "overrides": {}, "platformSpecific": {}, "resolution": { - "allowSourceList": [ - "python-louvain" - ], "strictMissing": true + }, + "buildWheel": { + "python-louvain": { + "linux-x64": { + "reason": "python-louvain ships NO wheel for any version (0.1-0.16 are all sdist), so it must be built on the runner. It is pure Python, so no compiler is needed - but pip's build isolation tries to fetch the setuptools backend, and the build runs with --find-links pointing only at the local package dir, so that fetch fails. Pre-installing the backend via buildRequires makes the builder pass --no-build-isolation, which avoids the isolated env entirely.", + "buildRequires": [ + "setuptools>=40.8.0", + "wheel" + ] + }, + "linux-aarch64": { + "reason": "python-louvain ships NO wheel for any version (0.1-0.16 are all sdist), so it must be built on the runner. It is pure Python, so no compiler is needed - but pip's build isolation tries to fetch the setuptools backend, and the build runs with --find-links pointing only at the local package dir, so that fetch fails. Pre-installing the backend via buildRequires makes the builder pass --no-build-isolation, which avoids the isolated env entirely.", + "buildRequires": [ + "setuptools>=40.8.0", + "wheel" + ] + }, + "macosx-x64": { + "reason": "python-louvain ships NO wheel for any version (0.1-0.16 are all sdist), so it must be built on the runner. It is pure Python, so no compiler is needed - but pip's build isolation tries to fetch the setuptools backend, and the build runs with --find-links pointing only at the local package dir, so that fetch fails. Pre-installing the backend via buildRequires makes the builder pass --no-build-isolation, which avoids the isolated env entirely.", + "buildRequires": [ + "setuptools>=40.8.0", + "wheel" + ] + }, + "macosx-aarch64": { + "reason": "python-louvain ships NO wheel for any version (0.1-0.16 are all sdist), so it must be built on the runner. It is pure Python, so no compiler is needed - but pip's build isolation tries to fetch the setuptools backend, and the build runs with --find-links pointing only at the local package dir, so that fetch fails. Pre-installing the backend via buildRequires makes the builder pass --no-build-isolation, which avoids the isolated env entirely.", + "buildRequires": [ + "setuptools>=40.8.0", + "wheel" + ] + } + } } } } From b43799cad8e76433002b8ed222c9476b12434d12 Mon Sep 17 00:00:00 2001 From: Julen Mendieta Date: Tue, 25 Aug 2026 12:38:05 +0200 Subject: [PATCH 3/5] Downgrade faiss --- python-3.12.10-clustcr/config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python-3.12.10-clustcr/config.json b/python-3.12.10-clustcr/config.json index 31df685..96821eb 100644 --- a/python-3.12.10-clustcr/config.json +++ b/python-3.12.10-clustcr/config.json @@ -11,7 +11,7 @@ "parmap==1.7.0", "python-louvain==0.16", "matplotlib==3.11.1", - "faiss-cpu==1.15.0", + "faiss-cpu==1.10.0", "polars-lts-cpu==1.33.1" ], "noDeps": [ From 4424418f6b1bc426d6ce182a454b16e8cf6b7d2a Mon Sep 17 00:00:00 2001 From: Julen Mendieta Date: Tue, 25 Aug 2026 14:22:54 +0200 Subject: [PATCH 4/5] Switch to 3.10.21 version to avoid dependency issues --- .changeset/clustcr-runenv.md | 17 +++++++++++------ .github/workflows/build.yaml | 8 ++++---- catalogue/package.json | 12 ++++++------ pnpm-lock.yaml | 12 ++++++------ pnpm-workspace.yaml | 2 +- python-3.10.21-clustcr/README.md | 3 +++ .../config.json | 17 +++++++---------- .../package.json | 6 +++--- python-3.12.10-clustcr/README.md | 3 --- 9 files changed, 41 insertions(+), 39 deletions(-) create mode 100644 python-3.10.21-clustcr/README.md rename {python-3.12.10-clustcr => python-3.10.21-clustcr}/config.json (92%) rename {python-3.12.10-clustcr => python-3.10.21-clustcr}/package.json (80%) delete mode 100644 python-3.12.10-clustcr/README.md diff --git a/.changeset/clustcr-runenv.md b/.changeset/clustcr-runenv.md index 5c791cb..3b987f6 100644 --- a/.changeset/clustcr-runenv.md +++ b/.changeset/clustcr-runenv.md @@ -1,12 +1,17 @@ --- -"@platforma-open/milaboratories.runenv-python-3.12.10-clustcr": minor +"@platforma-open/milaboratories.runenv-python-3.10.21-clustcr": minor "@platforma-open/milaboratories.runenv-python-3": minor --- -Add the `3.12.10-clustcr` Python run environment: clusTCR (`immunewatch-clustcr`, module `imw_clustcr`) +Add the `3.10.21-clustcr` Python run environment: clusTCR (`immunewatch-clustcr`, module `imw_clustcr`) plus its runtime closure, faiss-cpu and polars-lts-cpu, for the clusTCR Clustering block. -clusTCR's own metadata is skipped via `noDeps` because it hard-pins `scipy==1.8`, which is unsatisfiable on -Python 3.12 (every 1.8.x release declares `Requires-Python >=3.8,<3.11`) and unnecessary — clusTCR runs on -scipy 1.11/1.18. numpy is held below 2.0 because clusTCR's faiss path (the `two-step` method and -`include_vgene`) breaks under numpy 2.x. See the package README for the full rationale. +Python 3.10 rather than the repo's usual 3.12.10, deliberately: clusTCR requires SciPy 1.8, which no +Python 3.11+ release supports, and that requirement is load-bearing — on SciPy 1.8 a sparse array is still +an `spmatrix`, which is what makes clusTCR's Markov-clustering step work, while newer SciPy breaks it and +NumPy 2 breaks its FAISS-backed paths. Targeting 3.10 lets the package be installed and used unmodified: +no dependency metadata skipped, no numpy ceiling, and no runtime patching in the consuming block. Intended +to be temporary — see the package README. Python 3.10 is EOL 2026-10-31. + +`python-louvain` ships no wheel for any version and is built on the runner via `buildWheel` with an +explicit setuptools backend, since pip's build isolation cannot reach an index for one. diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 5485c20..0be5661 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -108,10 +108,10 @@ 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-arm64", "arch":"arm64", "selector":"./python-3.12.10-clustcr"}, - {"os":"ubuntu-large-amd64", "arch":"amd64", "selector":"./python-3.12.10-clustcr"}, - {"os":"macos-15", "arch":"arm64", "selector":"./python-3.12.10-clustcr"}, - {"os":"macos-15-large", "arch":"amd64", "selector":"./python-3.12.10-clustcr"}, + {"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"}, + {"os":"macos-15-large", "arch":"amd64", "selector":"./python-3.10.21-clustcr"}, {"os":"ubuntu-large-arm64", "arch":"arm64", "selector":"./python-3.12.10-pgen"}, {"os":"ubuntu-large-amd64", "arch":"amd64", "selector":"./python-3.12.10-pgen"}, diff --git a/catalogue/package.json b/catalogue/package.json index 3ef6c71..b465900 100644 --- a/catalogue/package.json +++ b/catalogue/package.json @@ -42,11 +42,11 @@ "3.12.10-clustering": { "reference": "@platforma-open/milaboratories.runenv-python-3.12.10-clustering/dist/tengo/software/main.sw.json" }, - "3.12.10-clustcr": { - "reference": "@platforma-open/milaboratories.runenv-python-3.12.10-clustcr/dist/tengo/software/main.sw.json" - }, "3.12.10-pgen": { "reference": "@platforma-open/milaboratories.runenv-python-3.12.10-pgen/dist/tengo/software/main.sw.json" + }, + "3.10.21-clustcr": { + "reference": "@platforma-open/milaboratories.runenv-python-3.10.21-clustcr/dist/tengo/software/main.sw.json" } } }, @@ -65,10 +65,10 @@ "@platforma-open/milaboratories.runenv-python-3.12.10-humanness": "workspace:*", "@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-clustcr": "workspace:*", - "@platforma-open/milaboratories.runenv-python-3.12.10-pgen": "workspace:*" + "@platforma-open/milaboratories.runenv-python-3.12.10-pgen": "workspace:*", + "@platforma-open/milaboratories.runenv-python-3.10.21-clustcr": "workspace:*" }, "devDependencies": { "@platforma-sdk/package-builder": "catalog:" } -} \ No newline at end of file +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0dbe155..f2dbaad 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -59,15 +59,15 @@ importers: catalogue: dependencies: + '@platforma-open/milaboratories.runenv-python-3.10.21-clustcr': + specifier: workspace:* + version: link:../python-3.10.21-clustcr '@platforma-open/milaboratories.runenv-python-3.12.10': specifier: workspace:* version: link:../python-3.12.10 '@platforma-open/milaboratories.runenv-python-3.12.10-atls': specifier: workspace:* version: link:../python-3.12.10-atls - '@platforma-open/milaboratories.runenv-python-3.12.10-clustcr': - specifier: workspace:* - version: link:../python-3.12.10-clustcr '@platforma-open/milaboratories.runenv-python-3.12.10-clustering': specifier: workspace:* version: link:../python-3.12.10-clustering @@ -100,7 +100,7 @@ importers: specifier: 'catalog:' version: 3.10.7 - python-3.12.10: + python-3.10.21-clustcr: devDependencies: '@platforma-sdk/package-builder': specifier: 'catalog:' @@ -112,7 +112,7 @@ importers: specifier: 'catalog:' version: 4.20.6 - python-3.12.10-atls: + python-3.12.10: devDependencies: '@platforma-sdk/package-builder': specifier: 'catalog:' @@ -124,7 +124,7 @@ importers: specifier: 'catalog:' version: 4.20.6 - python-3.12.10-clustcr: + python-3.12.10-atls: devDependencies: '@platforma-sdk/package-builder': specifier: 'catalog:' diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index ff5c315..5fd8e5f 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -11,7 +11,7 @@ packages: - python-3.12.10-humanness - python-3.12.10-torch-cuda - python-3.12.10-clustering - - python-3.12.10-clustcr + - python-3.10.21-clustcr - python-3.12.10-pgen - catalogue diff --git a/python-3.10.21-clustcr/README.md b/python-3.10.21-clustcr/README.md new file mode 100644 index 0000000..e2f98c8 --- /dev/null +++ b/python-3.10.21-clustcr/README.md @@ -0,0 +1,3 @@ +Python **3.10.21** run environment for the **clusTCR Clustering** block (`tcr-clustering-clusttcr`): +clusTCR (`immunewatch-clustcr`, importable as `imw_clustcr`) plus its runtime closure and faiss-cpu, with +polars-lts-cpu for the block runner's own I/O. \ No newline at end of file diff --git a/python-3.12.10-clustcr/config.json b/python-3.10.21-clustcr/config.json similarity index 92% rename from python-3.12.10-clustcr/config.json rename to python-3.10.21-clustcr/config.json index 96821eb..ae6f10c 100644 --- a/python-3.12.10-clustcr/config.json +++ b/python-3.10.21-clustcr/config.json @@ -2,21 +2,18 @@ "packages": { "dependencies": [ "immunewatch-clustcr==1.0.1", - "numpy==1.26.4", - "scipy==1.11.4", - "pandas==2.2.3", - "networkx==3.6.1", - "scikit-learn==1.9.0", + "scipy==1.8.0", + "numpy==1.24.4", + "pandas==2.3.3", + "networkx==3.4.2", + "scikit-learn==1.7.2", "markov_clustering==0.0.6.dev0", "parmap==1.7.0", "python-louvain==0.16", - "matplotlib==3.11.1", - "faiss-cpu==1.10.0", + "matplotlib==3.10.9", + "faiss-cpu==1.8.0.post1", "polars-lts-cpu==1.33.1" ], - "noDeps": [ - "immunewatch-clustcr" - ], "skip": {}, "overrides": {}, "platformSpecific": {}, diff --git a/python-3.12.10-clustcr/package.json b/python-3.10.21-clustcr/package.json similarity index 80% rename from python-3.12.10-clustcr/package.json rename to python-3.10.21-clustcr/package.json index 573dd6c..22e6253 100644 --- a/python-3.12.10-clustcr/package.json +++ b/python-3.10.21-clustcr/package.json @@ -1,7 +1,7 @@ { - "name": "@platforma-open/milaboratories.runenv-python-3.12.10-clustcr", + "name": "@platforma-open/milaboratories.runenv-python-3.10.21-clustcr", "version": "0.1.0", - "description": "Python 3.12.10 run environment for the clusTCR Clustering block (immunewatch-clustcr + faiss-cpu, pinned to numpy<2)", + "description": "Python 3.10.21 run environment for the clusTCR Clustering block (immunewatch-clustcr on the SciPy 1.8 generation it requires)", "scripts": { "cleanup": "rm -rf ./pkg-*.tgz ./pydist ./dist/ ./build/", "reset": "pnpm run cleanup && rm -rf ./node_modules ./.turbo", @@ -20,7 +20,7 @@ "type": "environment", "runtime": "python", "registry": "platforma-open", - "python-version": "3.12.10", + "python-version": "3.10.21", "roots": { "linux-x64": "./pydist/linux-x64", "linux-aarch64": "./pydist/linux-aarch64", diff --git a/python-3.12.10-clustcr/README.md b/python-3.12.10-clustcr/README.md deleted file mode 100644 index 1e17985..0000000 --- a/python-3.12.10-clustcr/README.md +++ /dev/null @@ -1,3 +0,0 @@ -Python 3.12.10 run environment for the **clusTCR Clustering** block (`tcr-clustering-clusttcr`): clusTCR -itself (`immunewatch-clustcr`, importable as `imw_clustcr`) plus its runtime closure and faiss-cpu, with -polars-lts-cpu for the block runner's own I/O. \ No newline at end of file From 8127030804a35cf452dfc23e50e01474607ce377 Mon Sep 17 00:00:00 2001 From: Julen Mendieta Date: Tue, 25 Aug 2026 14:59:22 +0200 Subject: [PATCH 5/5] add immunewatch-clustcr to noDeps so its wheel can be downloaded --- python-3.10.21-clustcr/config.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/python-3.10.21-clustcr/config.json b/python-3.10.21-clustcr/config.json index ae6f10c..fbea308 100644 --- a/python-3.10.21-clustcr/config.json +++ b/python-3.10.21-clustcr/config.json @@ -14,6 +14,9 @@ "faiss-cpu==1.8.0.post1", "polars-lts-cpu==1.33.1" ], + "noDeps": [ + "immunewatch-clustcr" + ], "skip": {}, "overrides": {}, "platformSpecific": {},