nf-core / nf-core/modules

Adopt topic channels in all nf-core modules [PART 4]

Open
#10,832 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

good first issue
Dominant language
Nextflow
Stars
429
Forks
1.1k
Avg merge
1d 6h
Merged PRs (30d)
153

Description

Parent issue here: https://github.com/nf-core/modules/issues/9978

The goal is to provide beginners in nf-core hackathons with a beginner-friendly contribution path.

Each module migration should be handled in a separate sub-issue linked below.

Documentation for the migration process:


Goal

Update nf-core modules so they use topic channels for version outputs, following the migration guide. Participants can pick one module, perform the migration, and submit a PR.

This is suitable as a good first issue.


Workflow for contributors

Github workflow
  1. Select an issue from the ones below (if none available create one)
  2. Click on Assign yourself in the Assignees field (top right) to avoid duplicated work
Coding workflow

Assuming gh-cli is installed:

  1. Fork and clone nf-core/modules:
    gh repo fork nf-core/modules
    

and enter y when asked if you want to clone it.

  1. Create a working branch:

    git checkout -b <tool>_topics_migration
    
  2. Choose/create an unassigned module sub-issue and assign yourself.

  3. Follow the migration instructions:
    https://nf-co.re/docs/tutorials/migrate_to_topics/update_modules

    Typical changes include:

    • Updating module output channel structure

    • Updating meta.yml via

       nf-core modules lint <tool>/<subtool> --fix
      
    • Update test snapshots:

        nf-core modules test  --update --once <tool>/<subtool>
      
    • If the module is part of a subworkflow, removing the line handling the *.out.version channel there.

  4. Run module tests:

    nf-core modules test <tool>/<subtool>
    
  5. Lint the module:

    nf-core modules lint <tool>/<subtool>
    
  6. Commit changes:

    git add .
    git commit -m "Migrate <tool> module to topic channels"
    
  7. Push branch:

    git push origin <tool>_topics_migration
    
Github workflow
  1. Open a Pull Request
  2. Link the corresponding sub-issue by adding Closes #XXXX with XXXX being the issue number you selected
  3. Ensure CI passes
  4. Post your PR for review in the Slack channel: #request-review and review someone else PR while waiting for yours
  5. Address reviewer feedback and merge when accepted

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

Start by selecting an unassigned module sub-issue linked from the parent issue, then read the migration guide for updating modules to topic channels. Follow the listed commands to update the module, meta.yml, snapshots, and any subworkflow handling, then run the module test and lint commands; done means both pass and the changes are submitted in a PR linked to the sub-issue.

Written by the indexing model from the issue text.

Assessment

Domain
testing, tooling
Issue type
Refactor
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.