What’s new

0.4.6

Released on 2026-04-02 - GitHub - PyPI

What's Changed

This release adds a new "BIND_PATHS" argument to container configurations which improves support for Docker. Other improvements include making nipoppy reorg able to handle pre-reorg data with identical filenames and improving the default config files created by nipoppy pipeline create.

Features

  • [ENH]: Add BIDS study layout by @asmacdo in #687
  • [ENH] Add all-contributors by @michellewang in #673
  • [ENH] Add BIND_PATHS field to container config by @michellewang in #865
  • [ENH] Set Zenodo record default preview to always be config.json by @michellewang in #904
  • [ENH] Improve default pipeline files created by nipoppy pipeline create by @michellewang in #915
  • [ENH] Avoid DICOM filename collisions by prefixing filenames with the parent directory during reorg by @mibur1 in #923

Bug Fixes

  • [BUG][DOC] Make docs compatible with Sphinx 9 by @michellewang in #873
  • [BUG] Fix fileops.rm failing due with OSError about non-empty directory when directory is actually empty by @michellewang in #867
  • [MAINT][BUG] Fix tests that fail with pandas 3.0.0 by @michellewang in #875
  • [BUG] Fix Zenodo download integration test failure by @michellewang in #917
  • [BUG] Fix linkcheck workflow failing for zenodo.org links by @michellewang in #932

Documentation

  • [DOC] add process video by @julia-pfarr in #844
  • [DOC] Fix MRIQC tutorial global config line highlights and clarify substitution instructions by @Copilot in #864
  • [DOC] Fix typo in command-line interface example by @CMonnin in #869
  • [DOC] Ensure latest Zenodo record IDs are used in tutorials by @michellewang in #862
  • [DOC] Add track-processing and extract tutorial video by @julia-pfarr in #885
  • [DOC] Add contributors using all-contributors CLI by @michellewang in #881
  • [DOC] Add missing word "file" in track-processing tutorial by @Copilot in #887
  • [DOC] Add subsection in how-to guide for tracking on parallelization of track-processing by @michellewang in #914
  • [DOC] Add missing CLI reference page for nipoppy pipeline create by @Copilot in #893
  • [DOC] Add "how-to" guide for Docker by @michellewang in #905
  • [DOC] Flesh out Integrations page by @michellewang in #912
  • [DOC] Revised pipeline video (add docker support) and restructure video tutorial pages by @julia-pfarr in #933
  • [MAINT][DOC] Update release workflow and instructions by @mathdugre in #833

Maintenance

  • [MAINT] Extract file operations into dedicated module by @mathdugre in #834
  • [MAINT] Refactoring of the BaseWorkflow class by @mathdugre in #880
  • [MAINT] Stop closing stale issues/PRs by @michellewang in #947
  • [MAINT] Fix #948 remove message for closing issue / pr by @mathdugre in #951
  • [MAINT] Remove unused logger in study.py by @mathdugre in #956
  • [MAINT] Fix bot PRs appearing in release notes despite exclusion config by @Copilot in #942

New Contributors

Full Changelog: 0.4.5...0.4.6

0.4.5

Released on 2025-11-27 - GitHub - PyPI

What's Changed

This release fixes a recent bug in 0.4.2 and 0.4.3 with nipoppy pipeline search due to changes in the Zenodo API.

Features

  • [ENH] Forcing the looping at a participant-session level in tracking by @AliceJoubert in #831

Bug Fixes

Maintenance

  • [MAINT] Update version in CITATION.cff file by @nipoppy-bot[bot] in #832

New Contributors

Full Changelog: 0.4.3...0.4.5

0.4.3

Released on 2025-11-25 - GitHub - PyPI

What's Changed

Features

Bug Fixes

Deprecations

  • [DEP] Python 3.9 — End-of-life on October 31, 2025 by @mathdugre in #808

Documentation

Maintenance

  • [MAINT] Update version in CITATION.cff file by @nipoppy-bot[bot] in #794
  • [MAINT] Fix #802 Remove unused dependency: request by @mathdugre in #804
  • [MAINT] Bump sigstore/gh-action-sigstore-python from 3.0.1 to 3.1.0 by @dependabot[bot] in #810
  • [MAINT] Bump actions/upload-artifact from 4 to 5 by @dependabot[bot] in #812
  • [MAINT] Bump actions/download-artifact from 5 to 6 by @dependabot[bot] in #811
  • [MAINT] Fix actions/stale permissions and bump from 10.0.0 to 10.1.0 by @dependabot[bot] in #809
  • [MAINT] Refactor to have custom Nipoppy error by @mathdugre in #806
  • [TST] separate linkcheck into separate job by @asmacdo in #830
  • [MAINT] Use global logger by @mathdugre in #822

Misc

Full Changelog: 0.4.2...0.4.3

0.4.2

Released on 2025-10-17 - GitHub - PyPI

TLDR

  • ✨Docker support✨
  • Speedup tracking via job lib
  • 👀 Nipoppy tutorial videos added to docs
  • Enhance pipeline search and installation

What's Changed

Features

  • [ENH] Add alias -n flag to specify search size by @mathdugre in #752
  • [ENH] Add joblib parallelization to nipoppy track-processing by @michellewang in #731
  • [ENH] Add --use-subcohort argument to nipoppy process/bidsify/extract by @michellewang in #742
  • [DOC] add first tutorial videos to docs by @julia-pfarr in #740
  • [ENH] Increase timeout for Zenodo search + Give feedback while waiting by @mathdugre in #753
  • [ENH] added check for empty pre- and post-reorg stages by @nikhil153 in #735
  • [ENH] Add progress bar for nipoppy track-processing by @michellewang in #757
  • [ENH] Do not overwrite existing pipeline variables when installing a pipeline by @michellewang in #760
  • [ENH] Make minor improvements to nipoppy pipeline search output table by @michellewang in #781
  • [ENH] Add support for Docker by @michellewang in #773

Bug Fixes

  • [BUG] Fix CLI command options not matching workflow init args by @michellewang in #762
  • [BUG] Fix confusing log message when --write-subcohort is used by @michellewang in #765
  • [BUG] Do not allow substitutions with empty keys; strip substitution values by @michellewang in #761

Documentation

Maintenance

Misc

Full Changelog: 0.4.1...0.4.2

0.4.1

Released on 2025-08-14 - GitHub - PyPI

What's Changed

This release introduces some enhancements and minor bug fixes. Notable changes include:

  • A new --force flag to allow nipoppy init in a non-empty directory
  • A new nipoppy-gui command (need extra dependency, e.g. pip install nipoppy[gui]) for an in-Terminal "graphical" user interface
  • Usage of the "container-image" field in Boutiques descriptors (if specified) to launch containers. This means descriptors do not need to have Nipoppy-specific elements anymore (e.g. [[NIPOPPY_CONTAINER_COMMAND]] [[NIPOPPY_FPATH_CONTAINER]] in the "command-line" field). Usage of containers can be disabled by setting CONTAINER_CONFIG.COMMAND to null in the global config file.
    • This is a non-breaking change: existing descriptors do not have to be updated, but pipeline developers wishing to have descriptors usable outside of Nipoppy can make the following changes:
      • Remove [[NIPOPPY_CONTAINER_COMMAND]] [[NIPOPPY_FPATH_CONTAINER]] from the "command-line" field
      • Add executable name to the "command-line" field if not already present
      • Add "container-image" field
    • See here for an example

Features

Bug Fixes

Documentation

Maintenance

  • [MAINT] Update version in CITATION.cff file by @nipoppy-bot[bot] in #655
  • [MAINT] Bump sigstore/gh-action-sigstore-python from 3.0.0 to 3.0.1 by @dependabot[bot] in #671
  • [MAINT] Bump fjogeleit/yaml-update-action from 0.16.0 to 0.16.1 by @dependabot[bot] in #660
  • [MAINT] Fix various small issues by @mathdugre in #695
  • [MAINT] Refactor Zenodo API tests and increase coverage by @michellewang in #697
  • [MAINT] restructure the test in folders. by @mathdugre in #698
  • [MAINT] Refactor cli structure and tests by @mathdugre in #699
  • [MAINT] Enable colors in GH actions. by @mathdugre in #730

Misc

New Contributors

  • @nipoppy-bot[bot] made their first contribution in #655
  • @asmacdo made their first contribution in #682

Full Changelog: 0.4.0...0.4.1

0.4.0

Released on 2025-05-22 - GitHub - PyPI

What's Changed

🔴 BREAKING CHANGES 🔴

  • The doughnut.tsv file has been renamed to curation_status.tsv, and the bagel.tsv file has been renamed to processing_status.tsv
  • The global_config.json file schema and the internal organization of the <DATASET_ROOT>/pipelines directory has been changed
    • These changes were necessary for the move to the Zenodo catalog
    • The main change is that the pipeline configuration is no longer in the global_config.json file but rather in <DATASET_ROOT>/pipelines/<PIPELINE_NAME>-<PIPELINE_VERSION>/config.json
    • We provide a script to help migrate from 0.3.X to 0.4.0. Issues with the script can be reported on GitHub or Discord

Major new features

This release introduces two major new features:

  • nipoppy pipeline subcommands, which allow for installing/uploading pipeline configuration directories from a "pipeline catalog" on Zenodo
    • Related: nipoppy init will no longer include any default pipeline configurations in the new Nipoppy dataset
  • Support for launching jobs on high-performance computing systems using Slurm or SGE, using the --hpc option in nipoppy bidsify, nipoppy process, and nipoppy extract

Deprecation notices

Some of the existing subcommands have been renamed:

  • nipoppy doughnut --> nipoppy track-curation
  • nipoppy run --> nipoppy process
  • nipoppy track --> nipoppy track-processing
    The old command names still work for now (with a warning) but will cause an error in a future version.

Changelog

Features

Bug Fixes

  • [FIX] Restore substitutions behaviour for backward-compatibility by @michellewang in #605
  • [FIX] Make runners always bind dataset root directory in containers by @michellewang in #582
  • [BUG] Read-only BIDS datasets fail to init w/ README creation by @bcmcpher in #613
  • [FIX] Do not apply substitutions immediately when loading invocations by @michellewang in #627
  • [FIX] Do not create directories when running nipoppy track by @michellewang in #624
  • [FIX] Do not attempt to update the curation status file if ANALYSIS_LEVEL is not participant_session by @michellewang in #618
  • [FIX] Fix Zenodo upload bug where metadata check fails by @michellewang in #640
  • [FIX] Make pipeline config validation stricter by @michellewang in #648

Documentation

Maintenance

Misc

  • Enhance security and safeguard for Zenodo uploads. by @mathdugre in #626
  • Safeguard to prevent upload error + Fix test for Zenodo upload by @mathdugre in #629
  • Allow nipoppy commands to run anywhere within a nipoppy project by @mathdugre in #617

New Contributors

Full Changelog: 0.3.4...0.4.0

0.3.4

Released on 2025-03-27 - GitHub - PyPI

What's Changed

This is release introduces some enhancements and minor bug fixes. CLI updates include removing the large log dump with the Boutiques invocation/descriptor file contents, which should make the logs easier to navigate. Pipeline config updates include fixes for dcm2bids and fs_stats.

The next release should be 0.4.0, which will introduce a restructuring of the global config file as well a decoupling of sample pipeline config files from the Nipoppy Python package code base. Sample pipeline config files will be stored on Zenodo and the Nipoppy CLI will be able to download/upload them.

Features

Bug Fixes

Documentation

Maintenance

New Contributors

Full Changelog: 0.3.3...0.3.4

0.3.3

Released on 2025-01-31 - GitHub - PyPI

What's Changed

This release includes a refactor of the CLI to use click instead of argparse, which changes the look of the CLI.

The nipoppy run command also has a new --tar argument which enables tarring of a participant-session directory upon successful completion of a processing pipeline (path configured in tracker config files). Tracking will take into account the tarball contents too.

We have also added a --write-list flag to nipoppy bidsify, nipoppy run, and nipoppy extract, which will write to a CSV file the list of participant and session IDs to run (may be helpful for parallel processing and HPC job submission).

Features

Bug Fixes

  • [BUG] Make PARTICIPANT_SESSION_DIR field relative to pipeline output directory by @michellewang in #461
  • [BUG] Make PipelineRunner exit/throw exception if container is specified but not found by @michellewang in #443
  • [BUG] Fix wrong container config being used in runners by @michellewang in #442
  • [BUG] Update Heudiconv descriptor and invocation files by @michellewang in #471

Documentation

Maintenance

Misc

  • [ENH] Add --mode=move option to nipoppy init with --bids-source by @mtorabi59 in #475

Full Changelog: 0.3.2...0.3.3

0.3.2

Released on 2024-12-12 - GitHub - PyPI

What's Changed

This release introduces two new commands:

  • nipoppy status: get summary information about the dataset, including how many participants/sessions are in the manifest, have been BIDSified, or have been processed
  • nipoppy extract: run extraction pipelines that depend on certain processing pipelines (configured in the global config file)

Features

Documentation

Maintenance

Full Changelog: 0.3.1...0.3.2

0.3.1

Released on 2024-11-12 - GitHub - PyPI

What's Changed

Features

Maintenance

Full Changelog: 0.3.0...0.3.1

0.3.0

Released on 2024-10-31 - GitHub - PyPI

What's Changed

Breaking changes

Documentation

Misc

Full Changelog: 0.2.3...0.3.0

0.2.3

Released on 2024-10-10 - GitHub - PyPI

What's Changed

Features

  • [ENH] make fmriprep --fs-no-reconall value-key and id more intuitive. by @mathdugre in #406

Bug Fixes

  • [BUG] keep working directory on failed run / flag to keep pipeline working directory on success by @bcmcpher in #345
  • [BUG] Do not pool BIDS and PROC pipelines together when searching pipeline configs by @michellewang in #391
  • [FIX] Do not enable markup language processing when logging messages related to subprocesses by @michellewang in #410

Maintenance

Full Changelog: 0.2.2...0.2.3

0.2.2

Released on 2024-09-27 - GitHub - PyPI

What's Changed

Features

  • [ENH] Init a Nipoppy dataset with a BIDS dataset by @Remi-Gau in #358

Bug Fixes

Documentation

Maintenance

Misc

New Contributors

Full Changelog: 0.2.1...0.2.2

0.2.1

Released on 2024-09-12 - GitHub - PyPI

What's Changed

Breaking Changes

Features

  • [ENH] add automatic release notes for GitHub. by @mathdugre in #322
  • [ENH] Add "ANALYSIS_LEVEL" field to pipeline step config to allow group-level processing by @michellewang in #341

Bug Fixes

Documentation

Maintenance

  • [MAINT] automatically label issue and PRs based on prefixes by @mathdugre in #338

Misc

Full Changelog: 0.2.0...0.2.1

0.2.0

Released on 2024-08-15 - GitHub - PyPI

What's Changed

New Contributors

Full Changelog: 0.1.0...0.2.0

0.1.0

Released on 2023-06-27 - GitHub - PyPI

What's Changed

New Contributors

Full Changelog: https://github.com/neurodatascience/mr_proc/commits/0.1.0