nextflow-io/nextflow

Support for Pixi

Open

#6 092 ouverte le 16 mai 2025

Voir sur GitHub
 (3 commentaires) (17 réactions) (0 assignés)Groovy (784 forks)batch import
good first issuestale

Métriques du dépôt

Stars
 (3 382 stars)
Métriques de merge PR
 (Merge moyen 3j 18h) (38 PRs mergées en 30 j)

Description

New feature

Pixi is a package manager equivalent to Conda which is growing in popuarity recently.

Use case

Equivalent to Conda, Mamba, Spack, etc. We can use it to set environments per process using a Pixi TOML.

Suggested implementation

Here's a hacky version inspired by https://tiendu.github.io/2025/05/10/nextflow-pixi-eng.html. We could probably implement something similar inside a process.

main.nf:


process PIXI {

    debug true

    beforeScript '''
    [ -d .pixi ] && [ -f pixi.lock ] || pixi install
    eval "$(pixi shell-hook)"
    '''

    input:
        path pixi_lock

    output:
        stdout

    script:
    """
    cowpy "hello pixi"
    """
}

workflow {
    pixi_lock = Channel.fromPath("pixi.toml", checkIfExists: true)

    PIXI(pixi_lock)
}

pixi.toml

[project]
name = "test-pixi-env"

channels = ["conda-forge"]
platforms = ["linux-64", "osx-arm64", "win-64"]

[dependencies]
cowpy = "1.1.*"
python = "3.13.*"
N E X T F L O W   ~  version 25.04.1

Launching `./main.nf` [nauseous_hoover] DSL2 - revision: 8f2d7021a8

executor >  local (1)
[39/fcb524] PIXI (1) [100%] 1 of 1 ✔
 ______________________________________________________ 
< Cowacter, eyes:default, tongue:False, thoughts:False >
 ------------------------------------------------------ 
     \   ^__^
      \  (oo)\_______
         (__)\       )\/\
           ||----w |
           ||     ||

Guide contributeur