Hi there! Many thanks for taking an interest in improving seqeralabs/nf-aggregate.
We try to manage the required tasks for seqeralabs/nf-aggregate using GitHub issues, you probably came to this page when creating one. Please use the pre-filled template to save time.
However, don't be put off by this template - other more general issues and suggestions are welcome! Contributions to the code are even more welcome ;)
If you'd like to write some code for seqeralabs/nf-aggregate, the standard workflow is as follows:
- Check that there isn't already an issue about your idea in the seqeralabs/nf-aggregate issues to avoid duplicating work. If there isn't one already, please create one so that others know you're working on this
- Fork the seqeralabs/nf-aggregate repository to your GitHub account
- Make the necessary changes / additions within your forked repository following Pipeline conventions
- Update
nextflow_schema.jsonfor any new or changed parameters. - Submit a Pull Request against
mainand wait for the code to be reviewed and merged
If you're not used to this workflow with git, you can start with some docs from GitHub or even their excellent git resources.
When you create a pull request with changes, GitHub Actions will run automatic tests. Typically, pull-requests are only fully reviewed when these tests are passing, though of course we can help out before then.
Release notes are drafted automatically from merged pull requests using GitHub labels.
- Apply
bug,enhancement, ordocumentationto have your PR included under the matching release notes section. - Apply
renovate-actionsfor GitHub Actions and dependency-maintenance changes. - PRs without one of the release labels above are excluded from the automated changelog draft.
CHANGELOG.mdis maintained at release time, so PR authors do not need to edit it for routine changes.
- On your own fork, make a new branch
patchbased onupstream/mainorupstream/master. - Fix the bug, and bump version (X.Y.Z+1).
- Open a pull-request from
patchtomain/masterwith the changes.
To make the seqeralabs/nf-aggregate code and processing logic more understandable for new contributors and to ensure quality, we semi-standardise the way the code and other contributions are written.
If you wish to contribute a new step, please use the following coding standards:
- Define the corresponding input channel into your new process from the expected previous process channel.
- Write the process block (see below).
- Define the output channel if needed (see below).
- Add any new parameters to
nextflow.configwith a default (see below). - Add any new parameters to
nextflow_schema.jsonwith help text. - Add sanity checks and validation for all relevant parameters.
- Perform local tests to validate that the new code works as expected.
- If applicable, add a new test in the
testsdirectory. - Update any user-facing docs touched by the change.
Parameters should be initialised / defined with default values within the params scope in nextflow.config.
Once there, update nextflow_schema.json to match.
Set sensible defaults for process CPUs, memory, and time close to the workflow or module that owns them.
The process resources can be passed on to the tool dynamically within the process with the ${task.cpus} and ${task.memory} variables in the script: block.
Please use the following naming schemes, to make it easy to understand what is going where.
- initial process channel:
ch_output_from_<process> - intermediate and terminal channels:
ch_<previousprocess>_for_<nextprocess>
This repo includes a devcontainer configuration which will create a GitHub Codespaces for Nextflow development! This is an online developer environment that runs in your browser, complete with VSCode and a terminal.
To get started:
- Open the repo in Codespaces
- Tools installed
- Nextflow
Devcontainer specs: