nf-core / nf-core/seqsubmit

Make the test suite runnable without maintainer credentials

Open
#95 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Nextflow
Stars
18
Forks
8
PR merge metrics
No merged PRs in 30d

Description

Difficulty: Easy

Why this matters: right now most of the pipeline's nf-test cases point at one fixed, already-existing ENA study (PRJEB98843) that belongs to the maintainers. To run those tests successfully you need a Webin account that already has write access to that specific study, which outside contributors and regular users don't have. Out of the 14 test configs in conf/, only 2 (test_assembly_no_study_complete_metadata.config and test_mag_no_study_complete_metadata.config) register a brand new study on the fly instead, and registering a new study only needs a normal, free Webin test account, the kind anyone can sign up for. The goal is to flip that ratio so most tests work for anyone with their own Webin account, and only a couple stay pinned to the shared existing study.

Some terms: ENA (European Nucleotide Archive) is a public repository for sequencing data, and it's where this pipeline submits data to. Webin is ENA's account and authentication system, you need a Webin account to submit anything, and registration is free and self-service. A "study" in ENA is the container every submission has to belong to. You can either point the pipeline at a study that already exists (that's what most current tests do, using the shared PRJEB98843), or have the pipeline register a new one for you as part of the run (both options are explained in docs/usage.md under "Submission study").

Skills / experience: no ENA experience needed beyond reading the usage doc section mentioned above. You'll need to read/modify Nextflow config files and run nf-test locally and update the snapshots, both fine to pick up as you go. If nf-test is new to you, the nf-core nf-test testing guide is a good place to start.

Suggested approach:

  1. Read the "Submission study" section of docs/usage.md, so you understand the two ways a study can be provided (existing accession vs. registering a new one).
  2. Register a free Webin test account and set it as Nextflow secrets locally (ENA_WEBIN, ENA_WEBIN_PASSWORD), see the README for the exact commands.
  3. Look through conf/test*.config and conf/test*.conf, and note which ones set submission_study = "PRJEB98843" versus submission_study = null.
  4. For most of the ones using the fixed study, switch them to the "register new study" pattern already used in test_mag_no_study_complete_metadata.config (set submission_study = null and point study_metadata at a metadata file).
  5. Leave one or two tests pointing at the fixed study on purpose, so that code path still gets tested, and make it clear in their config description that they need maintainer credentials.
  6. Run nf-test locally with your own account and confirm the switched tests pass end to end.
  7. Update tests/*.nf.test descriptions if they mention the old behaviour.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Read the “Submission study” section in docs/usage.md and inspect the submission_study settings in conf/test*.config and conf/test*.conf. Use the existing no-study configs as the pattern, run nf-test with local ENA_WEBIN credentials, and update tests/*.nf.test descriptions or snapshots as needed. Done means most tests register a new study while one or two still cover the fixed-study path.

Written by the indexing model from the issue text.

Assessment

Domain
devops, testing
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
76/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.