anyone willing to assist ??
# help
j
anyone willing to assist ??
quick look 1
m
I added some comments in the PR
🙌 1
are there any concrete things that are unclear to you, that we could fix faster in a chat here?
j
@mashehu I'm getting a NullPointerException in the snapshot matching. The test creates vcontact3_output/ with CSV files but the snapshot might not match. Should I delete the snapshot and let it regenerate?
m
how are you generating the snapshot? because it looks like the problems is not the snapshot matching, but that the module doesn't run
j
The process crashes with NullPointerException during stub execution. Should I simplify the test to just assert
process.success
without snapshot matching first, then we can debug the actual stub?
m
the problem is that you will not get a process.success either, because the module fails before that https://github.com/nf-core/modules/actions/runs/28516871248/job/84530912250?pr=12198#step:6:692
j
@mashehu All tests pass now without the snapshot assertion! Should I add snapshot testing back to the module? Or is just asserting process.success enough for nf-core standards?
m
not really. we would prefer to not have just a stub run, but an actual test of the tool and in the stub run to check that the outputs are as expected.
j
@mashehu Perfect! I understand now. I'm adding two tests: 1. Stub test - Runs in stub mode with
-stub
option and checks snapshot of outputs to verify the structure 2. Real test - Actually runs vcontact3 with test data and verifies the output directory exists This way we test both the mock behavior and the real tool execution. Pushing now!
Hey ! Found the root cause of the vcontact3/run real-test failure. Traceback shows
vcontact3 run
needs either
-d/--db-path
or
--db-version
— without one,
databases.py
calls
db_path.is_dir()
on
None
and crashes with
AttributeError: 'NoneType' object has no attribute 'is_dir'
. Confirmed on conda/docker/singularity, same error every time. Digging into the nf-core test-data guidelines, this looks like the same situation gtdbtk/classify hit — a tool that needs a local reference database too large for CI. The docs explicitly recommend stub-only testing for that case and point to gtdbtk/classify as the reference pattern. Given vcontact3's database is in the same boat, I'd propose dropping the 'real' test and following the gtdbtk/classify precedent (stub test only). I know you asked for a real test in an earlier review round, so wanted to check with you first rather than just changing it. Alternatively I could try
--db-version
to auto-fetch a database in CI, but that risks a slow/fragile download each run. Let me know which way you'd like to go, or if there's already a minimal vcontact3 test database in test-datasets I'm missing.
j
@Jimit Patel I already responded when you commented on the issue - I suggested you look into finishing the upstream downloaddb module soemoen else started
GTDB is stub only because the database is 140GB
Also may I ask if you are using an LLM for your responses here on slack?
j
yes, I've been using an LLM (Claude) to help me draft some of my messages and dig through docs/research while working on this PR. I should have said that upfront rather than you having to ask, that's on me. On the issue — I missed your earlier comment about the downloaddb module before I re-asked here, sorry for the duplicate ask. I'm going to go read that comment and look at the module now before I come back with anything else.
m
Please do not send messages back to the channel, let's keep it in theead. You already have top maintainers helping you, let's avoid spamming everyone here
👍 1
j
Hey — quick check: is the direction I'm taking things in okay so far? Root-caused the docker/singularity failures (missing curl dep, fixed upstream in bioconda-recipes#66829, now merged) and opened a fix PR for the review items on #11738. Wanted to confirm this is useful before I keep going, rather than assume.
m
Are you working on https://github.com/nf-core/modules/pull/11738 or https://github.com/nf-core/modules/pull/12198? I thought this thread was for 12198, so sorry if I'm getting confused
j
Good catch, sorry for the confusion — this thread started around #12198 (vcontact3/run), but the real blocker for that one turned out to be #11738 (vcontact3/prepareddatabases) — #12198 needs a database, and #11738 is the module that provides it, so I ended up working on both. Status: - #11738: root-caused the docker/singularity test failures (missing curl dependency in the vcontact3 bioconda recipe), fixed upstream (bioconda-recipes#66829, merged), and opened olawal1001/modules#1 with the remaining review fixes (versions.yml, meta.yml TODOs, test simplification). - #12198: paused until #11738 is in good shape, since it depends on the database module working. Happy to keep this thread focused on whichever one makes sense, or split it — whatever's easiest for you all to track.
m
For me you can only fix 11738 by updating the dependency that was fixed upstream. Until this is done, nothing can really be worked on
j
Got it, thanks — focusing on that. Will check when the new vcontact3 build (with curl) is live on Quay.io, update the container reference in #11738, and confirm docker/singularity tests pass before touching anything else.