nextflow-io / nextflow-io/nextflow
Support for Pixi
Nobody has claimed this yet.
- Dominant language
- Groovy
- Stars
- 3.5k
- Forks
- 811
- Avg merge
- 2d 11h
- Merged PRs (30d)
- 61
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 |
|| ||
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the proposed implementation in main.nf and the pixi.toml example, then inspect closed pull requests #6157 and #6342 for existing work. Verify the intended process behavior against the shown Pixi installation, shell-hook, and cowpy output.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- groovy
- Domain
- tooling
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100