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

Come up with plan for keeping in sync with nf-core #17

Open
apetkau opened this issue Feb 1, 2024 · 1 comment
Open

Come up with plan for keeping in sync with nf-core #17

apetkau opened this issue Feb 1, 2024 · 1 comment

Comments

@apetkau
Copy link
Member

apetkau commented Feb 1, 2024

Problem

The nf-core tools and pipeline templates will periodically be updated and require synchronization. The overall sync process is controlled via the nf-core sync command, but relies heavily on git branches (the TEMPLATE branch) and manual work to resolve merge conflicts. This is described in details here: https://nf-co.re/docs/contributing/sync

Not keeping pipelines in sync might lead to test/lint failures in a pipeline.

Solution 1: Keep our pipelines in sync with nf-core

This solution involves spending active effort to keep our pipelines in sync with nf-core. Mainly, by going through https://nf-co.re/docs/contributing/sync whenever there's a new release.

Advantages

  • We get latest updates for files by nf-core team. These could include fixes or additional features, or ways of running pipelines that keep us up-to-date.
  • Our tests in GitHub actions continue to work after syncing

Disadvantages

  • Syncing is a complicated process that may involve manual review of changes to many files and fixing merge conflicts in git
  • Syncing might make modifications to files in our pipelines that break integration with IRIDA Next (this would have to be part of review).

Solution 2: Make only minimal changes necessary to keep GitHub actions tests working

In this solution, we only make the minimal changes necessary to keep our test suite working in GitHub. The pipeline code itself should largely remain unchanged.

Advantages

  • Less complex process to update
  • Aren't changing pipeline code as much, hence less concern about introducing errors or breaking integration with IRIDA Next.

Disadvantages

  • Don't keep in-sync with latest changes by nf-core team
  • Trying to synchronize later may be a much larger task
@apetkau apetkau changed the title Revisit/come up with plan for keeping in sync with nf-core Come up with plan for keeping in sync with nf-core Feb 1, 2024
@apetkau
Copy link
Member Author

apetkau commented Feb 1, 2024

Decision

The current decided solution will be in between Solution 1 (keep pipelines in sync) and Solution 2 (minimal changes).

  1. We will make an effort to keep the iridanextexample pipeline in-sync with nf-core as new changes are made.
    1. This pipeline is used to test out integration with IRIDA Next but is not used for data analysis, so provides an opportunity to test out any changes from nf-core prior to incorporation into other pipelines.
    2. We are using this pipeline as a template for developing other pipelines, and so it's more useful to keep in sync.
  2. For other pipelines we develop, we will only look into synchronizing with nf-core when making a new major release of our pipeline.
    1. Major releases will require testing integration with IRIDA Next anyways.
    2. These will be less frequent and so less work for us to manage.
    3. We could try and re-use work done in keeping iridanextexample in sync with nf-core to synchronize code for other pipelines.
    4. For minor releases, we will look into Solution 2 (minimal changes) in situations where the GitHub actions/test suite is broken.

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

No branches or pull requests

1 participant