Joining nf-core

Contributing to open source

Open source taught me how to collaborate and code.

Even though I was already contributing to nf-core during my master's thesis, I joined the nf-core team in 2022. I joined the core team and the infrastructure team as a maintainer of the nf-core/tools package.

nf-core/tools is a python package that offers different tools to help pipeline developers and users. As a maintainer of this package and the whole nf-core infrastructure, these are some of the tasks I help with:

  • Create nf-core pipelines from a template
  • Creating nf-core modules and subworkflows (components)
  • Linting nf-core pipelines and components
  • CI of the pipelines
  • CI in other repositories, such as the modules repository
  • This involves lots of code reviews too 💫
  • And don't forget the discussions with the community to decide on the guidelines, best practices, and naming ✨

⚙️ Some technical aspects:

  • Template rendering is made with Jinja2
  • We test nf-core/tools with pytest
  • We have a system to deliver template updates to all nf-core pipelines through GitHub
  • All pipelines come with a JSON schema to validate parameters (the validation is done by the nf-schema plugin)
  • We are using Textual for some of the nf-core commands 🌈