Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Write in-depth tutorial to contribute and use modules & subworkflows #43

Open
kelly-sovacool opened this issue Apr 2, 2024 · 3 comments
Assignees
Labels
documentation Improvements or additions to documentation

Comments

@kelly-sovacool
Copy link
Member

kelly-sovacool commented Apr 2, 2024

The contributing doc is very minimal right now, needs more detail to be useful
https://github.com/CCBR/nf-modules/blob/main/.github/CONTRIBUTING.md

A full-fledged tutorial would be great to help others contribute their existing nxf code.

nf-core has a contributing guide for their modules repo, but we have diverged from them in a number of ways e.g. they switched to nf-test while we still use pytest. https://nf-co.re/docs/contributing/modules

Thanks to @wilfriedguiblet for the suggestion!

@kelly-sovacool kelly-sovacool added the documentation Improvements or additions to documentation label Apr 2, 2024
@wilfriedguiblet
Copy link

Thank you!
Considering the amount of work going into this, I think we should coordinate our effort across different teams to build best practices.

@kelly-sovacool kelly-sovacool self-assigned this Jun 4, 2024
@kopardev
Copy link
Member

kopardev commented Jun 4, 2024

Add documentation about:

  • how to add CCBR/nf-modules repo as custom remote modules repo (in addition to nf-core/modules) ... in the README
  • how to add specific versions of the remote modules to your nf pipeline .. in the README
  • more documentation on create-test-yml for creating unit tests ... what should the contents be ... may be a good walkthrough creation of unit test will be helpful

@kopardev
Copy link
Member

kopardev commented Jun 20, 2024

@wilfriedguiblet / @kelly-sovacool , I think we should also document when to create a new nf-module under the CCBR/nf-modules repo. IMO, here is what we should do:

  1. Check if the required module exists under nf-core/modules using

nf-core modules list remote | grep <required_module>

No point reinventing the wheel.

  1. If the module is found, install it using nf-core modules install <required_module> and try to see if we can use it as is. REMEMBER: Here we would like to override the docker used by nf-core module using the container directive in the process block in the config file.

  2. If the module is NOT found, then obviously we would like to create and add it to CCBR/nf-modules using the documentation outlined by @kelly-sovacool

  3. If the module was found, but while using it we realize that it needs to be modified as per our/CCBR needs... then we submit the edited/updated/modified version to CCBR/nf-modules eg. feat: adding modified nf-core fastqc module #46

What do you think? Have I missed any other scenario/case?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

No branches or pull requests

3 participants