Skip to content

Conversation

effigies
Copy link
Member

This PR replaces the conda+pip locks with pixi, which allows us to have a single lockfile.

In passing, I also started installing AFNI tools from their Docker builds, moved the template fetch and MSM download into their own layers. Since this somehow caused me to re-fetch FreeSurfer, I went ahead and updated the base image.

Copy link

codecov bot commented Aug 29, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 73.64%. Comparing base (50131fa) to head (c84e83e).
⚠️ Report is 8 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #3503      +/-   ##
==========================================
+ Coverage   73.63%   73.64%   +0.01%     
==========================================
  Files          60       60              
  Lines        4612     4618       +6     
  Branches      586      586              
==========================================
+ Hits         3396     3401       +5     
- Misses       1087     1088       +1     
  Partials      129      129              

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@effigies effigies force-pushed the chore/pixi branch 4 times, most recently from 35c0e8e to f4cfe8c Compare September 4, 2025 18:16
Copy link
Collaborator

@mgxd mgxd left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Big fan of having a single tool handle dependency resolution / environment freezing - just a few questions:

@effigies
Copy link
Member Author

effigies commented Sep 8, 2025

  • how would upgrading pixi.lock look when cutting a new release?

If you're going for a minimal update (e.g., nipreps fixes only): Update your dependencies in pyproject.toml and run pixi lock.

If you're looking to do general upgrades, use pixi update instead.

There's also a pixi upgrade that will update dependencies in pyproject.toml, but I'm not sure I want to use it, since it pulls minimum versions too far ahead.

* is the size difference of the test image just due to lack of metadata? https://circleci.com/api/v1.1/project/github/nipreps/fmriprep/14338/output/110/0?file=true&allocation-id=68bb5934b822b028391d9507-0-build%2FABCDEFGH

fmriprep has the container feature, which includes telemetry, datalad, git and git-annex, and any dependencies they trigger in either conda-forge or PyPI. test just has pytest and packages, which are collectively smaller.

@effigies
Copy link
Member Author

effigies commented Sep 8, 2025

@mgxd I cancelled the docker build on GHA after FreeSurfer took 2 hours. If you're good with this, we can merge and the next one will actually go into the cache and save us time in the future...

@mgxd
Copy link
Collaborator

mgxd commented Sep 8, 2025

Let's do it

@effigies effigies merged commit c4a2f7d into nipreps:master Sep 8, 2025
6 of 15 checks passed
@effigies effigies deleted the chore/pixi branch September 8, 2025 18:10
effigies added a commit that referenced this pull request Sep 11, 2025
Not sure how we missed this in #3503, but we need to use a downloaded
image to avoid reading stdin in fmriprep-docker.
effigies added a commit that referenced this pull request Oct 1, 2025
25.2.0 (October 01, 2025)

New feature release in the 25.2.x series.

This release is an *fMRIPrep Long-Term Support (LTS)* release.
The planned support window is 4 years, until October 2029.

This release is an incremental improvement over 25.1.x, but includes some fixes
and improvements that do not fit within our
`bug-fix policy <https://www.nipreps.org/devs/releases/#bug-fix-releases>`__.

Importantly, the change in interpolation in 25.1.0 introduced artifacts for some datasets.
This release changes the default interpolation mode to ``grid-constant``, which
resolves those problems while not reintroducing the issue the previous release sought to fix.

This release also (finally) introduces per-session processing.
The ``--session-label`` flag selects the sessions to process,
and the ``--subject-anatomical-reference`` flag indicates whether and how
to combine across sessions.
Existing filters passed via ``--bids-filter-file`` may need to be updated or
removed in favor of using these flags to achieve the desired behavior.

We would like to thank the AMP-SCZ and ENIGMA consortia for testing out and providing
feedback on this release.

  * FIX: Clean up output report language (#3529)
  * FIX: Default to grid-constant interpolation mode (#3516)
  * FIX: Adapt to transposed ndcoords in nitransforms (#3517)
  * FIX: Write out Freesurfer-derived outputs (#3512)
  * FIX: Add kwargs to _warnings.py (#3483)
  * ENH: Resample BOLD data to any surface template space using the Connectome Workbench (#3461)
  * ENH: Add boldref / sbref to source metadata (#3532)
  * ENH: Add dedicated session filtering, alternative anatomical template options (#3495)
  * ENH: Write out goodvoxels mask (#3513)
  * ENH: Add registration metadata to boldref-to-anat transforms (#3500)
  * ENH: Write out cortex mask GIFTIs (#3491)
  * ENH: Update transforms.py according to new transform chain of nitransforms (#3494)
  * RF/DOC: Improve and document command-line parser defaults (#3487)
  * DOC: Explain better SDC and B0FieldSource requirement (#2768)
  * DOC: Document `freesurfer` parameter in BOLD confound workflow init (#3504)
  * DOC: Add myself to contributor list (#3506)
  * DOC: Fix non-standard Input/Output docstring section management (#3505)
  * MNT: Split Dockerfile into base and pixi layers (#3521)
  * MNT: Replace conda with pixi and lock (#3503)
  * MNT: Update license metadata using SPDX expression (#3486)
  * MNT: no need to re-run `ruff check` after `ruff format` (#3480)
  * MNT: Update pre-commit ruff legacy alias (#3479)
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

Successfully merging this pull request may close these issues.

2 participants