From 9d522b577b5413cbdc770182d6678583c057acd6 Mon Sep 17 00:00:00 2001 From: Eugenio Mattei Date: Fri, 25 Sep 2026 23:16:45 -0400 Subject: [PATCH 1/3] Put pysceptre's scripts/ on PYTHONPATH in the CI Nextflow DAG step watteg-make-test-data imports sceptre_io, which pysceptre does not ship in its wheel, so the step failed with ModuleNotFoundError on every push since the Python switch. Fetch scripts/ at the pinned tag, as the container does. Co-Authored-By: Claude Opus 5.5 (1M context) --- .github/workflows/test.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index a3c5ca8..bd5179d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -41,7 +41,12 @@ jobs: - name: Nextflow DAG # Catches a rewiring mistake without running anything. The stub needs the synthetic # dataset, which is generated rather than committed. + # pysceptre's scripts/ (sceptre_io, which watteg-make-test-data imports) is not in its + # wheel, so it is fetched at the pinned tag and put on PYTHONPATH, as the container does. run: | + git clone --quiet --depth 1 --branch v0.2.0 \ + https://github.com/broadinstitute/pysceptre.git /tmp/pysceptre + export PYTHONPATH=/tmp/pysceptre/scripts curl -fsSL https://get.nextflow.io | bash uv run watteg-make-test-data --out tests/data/synthetic.h5mu ./nextflow run . -profile standard -params-file config/test.yml -stub-run \ From ba2e315e33de2d2cbd07173af0384c22f9bba9ab Mon Sep 17 00:00:00 2001 From: Eugenio Mattei Date: Mon, 28 Sep 2026 09:09:51 -0400 Subject: [PATCH 2/3] Declare anndata and mudata in pyproject.toml, as pixi.toml already does WattEG reads the .h5mu pysceptre's export writes, but only pixi.toml listed them, so a pip or uv install (and CI) lacked them: the Nextflow DAG step then failed with No module named 'anndata'. Co-Authored-By: Claude Opus 5.5 (1M context) --- pyproject.toml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index 8b3af8a..afc2aed 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -11,6 +11,8 @@ dependencies = [ "pandas>=2.0", "h5py>=3.8", "pyarrow>=14", + "anndata", # reading the .h5mu pysceptre's export writes (pixi.toml has them too) + "mudata", "pysceptre", ] From a49baeaba9d192d7cdf9f5889f9330a74d41a495 Mon Sep 17 00:00:00 2001 From: Eugenio Mattei Date: Mon, 28 Sep 2026 09:11:37 -0400 Subject: [PATCH 3/3] Run the CI stub under -profile stub, whose resource caps fit the runner -profile standard kept the real requests, and PREPARE_SIM_INPUT's 32 GB exceeds the 15.6 GB runner, so Nextflow refused the task before running its stub. The stub profile caps resources for this, as pixi's pipeline-test does. Co-Authored-By: Claude Opus 5.5 (1M context) --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index bd5179d..4c09b46 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -49,5 +49,5 @@ jobs: export PYTHONPATH=/tmp/pysceptre/scripts curl -fsSL https://get.nextflow.io | bash uv run watteg-make-test-data --out tests/data/synthetic.h5mu - ./nextflow run . -profile standard -params-file config/test.yml -stub-run \ + ./nextflow run . -profile stub -params-file config/test.yml -stub-run \ --samplesheet assets/samplesheet_synthetic.csv --outdir /tmp/stub