# Release notes for DIPY version 1.12

GitHub stats for 2025/03/16 - 2026/03/13 (tag: 1.11.0)

These lists are automatically generated, and may be incomplete or contain duplicates.

The following 187 authors contributed 15284 commits.

- Adam Richie-Halford

- Adam Rybinski

- Alberto Di Biase

- Alex Rockhill

- Alexandre Gauvin

- Aman Arya

- Aman Srivastava

- Andrew Lawrence

- Ankur Sinha (Ankur Sinha Gmail)

- Antoine Theberge

- Antonio Ossa

- Areesha Tariq

- Ariel Rokem

- ArjitJ

- Aryansh Omray

- Asa Gilmore

- Atharva Shah

- Bago Amirbekian

- Baran Aydogan

- Basile Pinsard

- Bennet Fauber

- Bishakh Ghosh

- Bramsh Qamar

- Chandan Gangwar

- Chantal Tax

- Charles Poirier

- Chris Filo Gorgolewski

- Christopher Nguyen

- Clint Greene

- Clément Zotti

- Conor Corbin

- Copilot

- Dan Bullock

- Daniel Enrico Cahall

- Daniel McCloy

- David Hunt

- David Qixiang Chen

- David Reagan

- David Romero-Bascones

- Demian Wassermann

- Deneb Boito

- Derek Pisner

- Dimitri Papadopoulos

- Dimitris Rozakis

- Ebrahim Ebrahim

- Eleftherios Garyfallidis

- Emanuele Olivetti

- Emmanuel Caruyer

- Emmanuelle Renauld

- Enes Albay

- Eric Larson

- Eric Peterson

- Erik Ziegler

- Etienne St-Onge

- Fabio Nery

- Felix Liu

- Florent Wijanto

- Francis Jerome

- Francois Rheault

- Gabriel Girard

- Giulia Bertò

- Gnaneswar Lopinti

- Gonzalo Sanguinetti

- Gregory Lee

- Gregory R. Lee

- Guillaume Theaud

- Himanshu Mishra

- Ian Nimmo-Smith

- Inigo Tellaetxe

- Jacob Roberts

- Jaewon Chung

- Jakob Wasserthal

- Javier Guaje

- Jean-Christophe Houde

- Jirka Borovec

- John Kruper

- John Shen

- Jon Haitz Legarreta Gorroño

- Jon Mendoza

- Jong Sung Park

- Joshua Newton

- Julio Villalon

- Kaibo Tang

- Karan

- Katrin Leinweber

- Kaustav Deka

- Kenji Marshall

- Kesshi Jordan

- Kevin Sitek

- Kimberly Chan

- Kumar Ashutosh

- Leevi Kerkela

- Leon Weninger

- Liberty

- Lucas Da Costa

- Maharshi Gor

- Malinda Dilhara

- Manu Tej Sharma

- Marc-Alexandre Côté

- Maria Luisa Mandelli

- Martijn Nagtegaal

- Martin Kozár

- Martino Pilia

- Matt Cieslak

- Matthew Brett

- Matthew Feickert

- Matthias Ekman

- Matthieu Dumont

- Mauro Zucchelli

- Maxime Descoteaux

- Michael Paquette

- Michael R. Crusoe

- Mitesh Gulecha

- Mohamed Abouagour

- Mrinal Chaturvedi

- Nasim Anousheh

- Naveen Kumarmarri

- Nicolas Delinte

- Nil Goyette

- Nishant Singh

- Omar Ocegueda

- Oscar Esteban

- Parichit Sharma

- Paul Camacho

- Philippe Karan

- Pradeep Reddy Raamana

- Praitayini Kanakaraj

- Prajwal Reddy

- Qiyuan Tian

- Rafael Neto Henriques

- Rahul Ubale

- Ranveer Aggarwal

- Ricci Woo

- Riddhish Bhalodia

- Rohan Prinja

- Ross Lawrence

- Rutger Fick

- Saber Sheybani

- Sagun Pai

- Sam Coveney

- Samuel St-Jean

- Sandro Turriate

- Santiago Vila

- Sarath Chandra

- Scott Trinkle

- Serge Koudoro

- Shahnawaz Ahmed

- Shilpi Prasad

- Shreyas Fadnavis

- Shrishti Hore

- Shubham Shaswat

- Siddharth Kapoor

- Siddhesh Thakur

- Sourav Singh

- Sreekar Chigurupati

- Stefan van der Walt

- Stephan Meesters

- Sven Dorkenwald

- Sylvain Merlet

- Takis Panagopoulos

- Tashrif Billah

- Theodore Ni

- Tingyi Wanyan

- Tom Dela Haije

- Tom Wright

- Umesh Gupta

- Vara Lakshmi Bayanagari

- Vatsala Swaroop

- Vibhatha Abeykoon

- Yaroslav Halchenko

- Yash Sherry

- Yijun Liu

- aziza

- dependabot[bot]

- endolith

- kunal mehta

- lb-97

- prathameshfuke

- pre-commit-ci[bot]

- rishav

- root

- samarmaharaj

- satyam kumar

- shadow1409

- svabhishek29

- ujjwal-shekhar

- Étienne Mollier

We closed a total of 497 issues, 173 pull requests and 324 regular issues; this is the full list (generated with the script `tools/github_stats.py`):

Pull Requests (173):

- PR #3844: NF: FORCE recon model

- PR #3617: NF: add dipy_fit_msmtcsd cli with its tests

- PR #3687: BUAN Bundle Profiles Lite Version

- PR #3850: DOC: Fix broken and outdated links in gitwash documentation

- PR #3679: Build aarch64 natively

- PR #3847: BF: Updated sherbrooke-3shell.

- PR #3845: BF: improve output file management of BiasField correction CLI

- PR #3841: DOC: Complete missing parameters in save_polydata docstring

- PR #3689: NF: Parallel Eudx

- PR #3836: DOC: Documentation fix

- PR #3808: RF: improve trx support for recobundles CLI

- PR #3825: DOC: Modernize and complete benchmarks/README.rst - closes #3824

- PR #3813: Fix #3811: reset warning filters in test_io_peaks_deprecated

- PR #3833: DOC: Improve docstrings for SimilarityMetric in align.metrics

- PR #3795: Added docs for nn and io

- PR #3812: Fix #3810: use warnings.warn() for empty tractogram

- PR #3700: RF: Simplify non-negative code in anisotropic_power

- PR #3783: Fix figure canvas not cleared in simulation tutorials

- PR #3699: Qti robust

- PR #3834: Bump docker/setup-qemu-action from 3 to 4 in the actions group

- PR #3831: DOC: Fix docstring errors in dipy/io/pickles.py

- PR #3820: BF: improve rumba performance

- PR #3818: BF: fix future errors/warnings from the future Numpy 2.5

- PR #3816: RF: relax precision for affine_registration / motion_correction

- PR #3823: DOC: Fix lowercase ‘returns’ section header in _make_fetcher docstring

- PR #3805: Bump the actions group with 2 updates

- PR #3791: NF: update biasfield correction method.

- PR #3793: DOC: Add documentation for the PAM5 file format

- PR #3752: CI: Update secrets management

- PR #3796: updated the docstring for ls_fit_dki and cls_fit_dki

- PR #3790: ENH: Cythonize AK, RK, and KFA kurtosis computations

- PR #3789: BF: handle force option when using symlink and hardlink

- PR #3784: Fix typo in test_template.yml input description (closes #3774)

- PR #3765: NF: add cli dipy_cluster_streamlines

- PR #3766: RF: improve CLI help formatting

- PR #3767: RF: Fix multiple cli

- PR #3780: Fix numpydoc validation issues in fetcher.py

- PR #3781: Fix epsilon docstring mismatch

- PR #3771: docs: Add a pull request template to standardize PR submissions.

- PR #3762: NF: add new CLI dipy_brain_mask with its associated test

- PR #3761: [DOC] Fix grammatical errors and typos across documentation and codebase

- PR #3754: DOC: Typo in gitwash development_workflow guide

- PR #3758: DOC: Fix missing space in load_peaks deprecation message

- PR #3756: DOC: Remove Gitter link

- PR #3704: Fix get simplified backward transform

- PR #3746: TST: Replace legacy nose-style yield assert_raises with pytest.raises

- PR #3750: Update setuptools requirement from ~=69.5 to >=69.5,<83.0 in the python-dependencies group

- PR #3739: CI: Add top-level permissions for least-privilege security

- PR #3733: CI: Add pip ecosystem tracking to Dependabot configuration

- PR #3729: CI: Fix threading env vars not persisting across steps in benchmark.yml

- PR #3722: CI: Pin actions/first-interaction by commit SHA in first_interaction.yml

- PR #3721: CI: Pin srvaroa/labeler action by commit SHA in label-pr.yml

- PR #3719: DOC: Update outdated Travis CI reference to GitHub Actions in CONTRIBUTING.md

- PR #3716: CI: Fix invalid cron schedule in test.yml

- PR #3715: CI: Add missing timeout-minutes to workflow jobs

- PR #3749: RF: Updated the list provide a table of dataset names.

- PR #3740: Bump srvaroa/labeler from 1.13.0 to 1.14.0 in the actions group

- PR #3737: DOC: Migrate remaining http:// URLs to https://

- PR #3711: CI: Fix incorrect Cython file glob patterns in labeler.yml

- PR #3709: STYLE: Fix spelling mistakes in docstrings and comments

- PR #3713: CI: Remove duplicate .mailmap entry in labeler.yml

- PR #3706: RF: Add alternative to symlink for some CLI

- PR #3696: BF: Handle empty tractograms gracefully in horizon

- PR #3694: DOC: Fix numpydoc PR03 parameter order in path_length

- PR #3692: DOC: Fixed DOC CI Issue

- PR #3675: Adding synthseg pytorch model

- PR #3686: BF: Handle empty streamlines in slr_with_qbx after length filtering

- PR #3684: RF: address some edge cases in multiple workflows

- PR #3681: Examples for IRLS (robust fitting)

- PR #3685: DOC: fix some missing :footcite:p in documentation

- PR #3671: Increased speed and lisibility of connectivity matrix, added weights

- PR #3680: RF: Added max_version option to optional_package api.

- PR #3677: DOC: Fix file path in many tutorials.

- PR #3676: RF: Allow reslice to automatically determines isotropic resolution

- PR #3678: Build 3.14 nightly wheels

- PR #3664: DOC: Improve Horizon class docstring for clarity

- PR #3665: FIX: Correct path construction logic in fetcher data loader, Resolve path construction errors in read_bundles_2_subjects

- PR #3673: RF: Allow bvals file for medianOtsu workflow

- PR #3674: Bump scientific-python/upload-nightly-action from 0.6.2 to 0.6.3 in the actions group

- PR #3542: RF: Editing tranform_img in dipy.nn.utils

- PR #3670: Test: Add regression test for median_otsu autocrop deprecation

- PR #3668: MNT: Replace deprecated autocrop in brain_extraction_dwi.py, reconst_csa.py, reconst_csa_parallel.py, reconst_dti.py tutorial examples

- PR #3672: Bump the actions group with 3 updates

- PR #3669: DOC: Prefer BibTeX reference in GQSI example documentation

- PR #3657: Document pre-commit setup for developers

- PR #3667: MNT: Replace deprecated autocrop in reconst_dti.py

- PR #3659: NF: Intermediate map for symmetric diffeomorphic registration

- PR #3660: DOC: Programmatic DIPY Horizon usage (non-CLI)

- PR #3623: RF: refactoring of `nlmeans` to allow the selection our classic version and the blockwise version

- PR #3661: CI: simplify cache, too many data was cached

- PR #3662: Bump actions/checkout from 5 to 6 in the actions group

- PR #3552: BF: Discards streamlines by size

- PR #3652: NF: Reduce default iteration counts and make level_iters configurable in motion correction

- PR #3618: BF: manage empty file in dipy_slr cli to avoid enigmatic crash

- PR #3655: CI: remove fetch-data job

- PR #3658: Added interpolation parameter to dipy_apply_transform

- PR #3648: Revert split extension (for SFT and SFS)

- PR #3654: RF: fix warnings introduced by the future Numpy version 2.4

- PR #3651: RF: handle bingham tests warnings

- PR #3650: BF: update first interaction Github action parameters

- PR #3649: Bump the actions group with 2 updates

- PR #3635: BF: Fix CVXPY warning

- PR #3646: [BF] Fix fwdti

- PR #3639: fix: BUG: fix UnboundLocalError in _single_sf_to_bingham when no valid peaks found

- PR #3610: NF: add dipy_fit_powermap workflows with its associated tests

- PR #3634: BF: expand requirements during its generation

- PR #3425: NF: add FWDTI Workflow

- PR #3631: RF: Fixed weird volumes instead of denoised volumes in Patch2Self 3

- PR #3629: Bump actions/setup-python from 5 to 6 in the actions group

- PR #3625: docs: remove NeuroFedora

- PR #3424: NF: Automate requirement files

- PR #3624: Bump the actions group with 3 updates

- PR #3605: RF: Parallel quantize_evecs

- PR #3613: BF: Allow length to work with float16 streamlines

- PR #3612: BF: fix lower triangular bug introduced in #3563

- PR #1617: NF: added streamline clipping function to utils

- PR #3606: RF: Address cvxpy 1.7.0 warnings.

- PR #3609: Bump actions/first-interaction from 1 to 2 in the actions group

- PR #3560: Doc: explicit `finalize_mask` information in CLI tutorial

- PR #3602: ENH: Adopt pathlib for workflows

- PR #3604: RF: replace old LocalTracking by our new tracking interface

- PR #3587: RF: from TRK to TRX as default file format for tracks

- PR #3603: DOC: Fix workflows test utils parameter name in docstring

- PR #3601: DOC: Record API changes after pathlib adoption

- PR #3593: STYLE: Adopt pathlib for path manipulation

- PR #3599: TEST: Restore removed test case in io workflows

- PR #3600: MNT: Fix miscellaneous labeler regexes

- PR #3597: STYLE: Miscellaneous style fixes

- PR #3598: BF: Miscellaneous fixes to surfaces

- PR #3592: STYLE: Adopt a unified logger across the code base

- PR #3429: StatefulSurface - Class to handle surfaces

- PR #3595: DOC: Remove default arguments from docstrings

- PR #3594: STYLE: Miscellaneous style fixes

- PR #3591: STYLE: Apply ruff manually to all files

- PR #3582: NF: Add PR labeler workflow

- PR #3586: MNT: Change issue template file extensions

- PR #3584: MNT: Add GitHub issue templates

- PR #3583: DOC: Change unused commit prefixes to some other more useful ones

- PR #3581: SciPy deprecation of “disp” in optimizer

- PR #3556: RF: allow the saving of S0 estimate for dti workflow

- PR #3563: RF: Address some Zero division warnings

- PR #3565: RF: use multi_voxel_fit for rumba

- PR #3541: RF: Deprecate autocrop in median_otsu

- PR #3580: TEST: uncomment and update test_cross

- PR #3515: RF: Improve dipy_info printed output

- PR #3562: DOC: Add missing opening backtick to reference syntax.

- PR #3561: STYLE: Make affine variable naming consistent

- PR #3557: DOC: fix streamline-tools tutorial by avoiding the use of identity affine

- PR #3559: [RF]: Patch2self in denoising CLI tutorial

- PR #3555: ENH: improve dipy_info message when no reference for some streamline files.

- PR #3554: Doc: Fix typo in multiple tutorial

- PR #3546: BF: Make StoppingCriterion reproducible for multi-thread execution

- PR #3548: RF: fix typo in hcp fetcher function argument name

- PR #3549: BF: Improves Cython enum management.

- PR #3520: ENH: Opacity slider turned off on hide

- PR #3493: NF: allow broadcasting in dipy_math

- PR #3488: RF - changed min/max len from nbr pts to mm

- PR #3538: RF: Fixed the latex

- PR #3519: ENH: Horizon peaks fname support

- PR #3455: Fix Bugs in #3453: Ensure Correct Weight Reshaping & Consistent Extra Output in iter_fit_tensor

- PR #3535: CI: Ignore fork() warnings.

- PR #3528: DOC: Changed documentation errors in dipy.sims.voxel

- PR #3533: CI: introduce cached Data.

- PR #3531: CI: Ignore specific cvxpy warnings to avoid CI failure.

- PR #3527: BF: Search bar should come bigger in the center.

- PR #3530: STYLE: Add additional emojis to first interaction message

- PR #3526: Bump scientific-python/upload-nightly-action from 0.6.1 to 0.6.2 in the actions group

- PR #3522: FIX: Avoid division by zero on single-CPU systems (issue #3521)

- PR #3510: [RF]: Saving the figure in the example.

- PR #3512: STYLE: Call warning instead of the deprecated warn function

- PR #3514: DOC: Miscellaneous doc improvements

- PR #3495: BF: Fixing minor issue in dipy_classify_tissue dam option

- PR #3481: UPCOMING: Release 1.11.0

Issues (324):

- #3844: NF: FORCE recon model

- #3503: Create new interface for MTMS CSD and standard CSD that use Ray properly

- #3617: NF: add dipy_fit_msmtcsd cli with its tests

- #3687: BUAN Bundle Profiles Lite Version

- #3849: DOC: Fix broken and outdated links in gitwash documentation

- #3850: DOC: Fix broken and outdated links in gitwash documentation

- #2766: WIP Issue 2738 click cli refactor

- #2738: Replace our custom Argparse CLI api by Click ?

- #2547: [WIP][FIX] option to disable multithreading while multiprocessing

- #3143: [WIP][NF] Add dipy_gtable cli

- #3679: Build aarch64 natively

- #3847: BF: Updated sherbrooke-3shell.

- #3845: BF: improve output file management of BiasField correction CLI

- #3628: iter_fit_tensor returns {} instead of None causing KeyError in nlls_fit_tensor when return_leverages=False

- #3840: DOC: Complete missing parameters in save_polydata docstring

- #3841: DOC: Complete missing parameters in save_polydata docstring

- #3689: NF: Parallel Eudx

- #3836: DOC: Documentation fix

- #3808: RF: improve trx support for recobundles CLI

- #3693: QTI issues - lack of MIN_POSITIVE_SIGNAL and issue with constrained solver and WLS is wrong anyway

- #3824: DOC: Modernize and complete benchmarks/README.rst (and developer docs)

- #3825: DOC: Modernize and complete benchmarks/README.rst - closes #3824

- #3835: ENH: add ASV continuous benchmarking workflow

- #3811: test_io_peaks_deprecated fails - ACTUAL: 82 warnings, DESIRED: 2

- #3813: Fix #3811: reset warning filters in test_io_peaks_deprecated

- #3833: DOC: Improve docstrings for SimilarityMetric in align.metrics

- #3795: Added docs for nn and io

- #3827: Enh asv continuous benchmarks

- #3814: ENH: Ray-aware CSD and MSMT-CSD workflows (#3503, #3617)

- #3807: Fix #3502: Add ODF and Tensor visualization to dipy_horizon

- #3810: test_horizon_empty_tractogram fails - logger.warning() not caught by warnings.catch_warnings()

- #3812: Fix #3810: use warnings.warn() for empty tractogram

- #3700: RF: Simplify non-negative code in anisotropic_power

- #3656: Some tutorials do not clear the figure canvas

- #3783: Fix figure canvas not cleared in simulation tutorials

- #3645: Powermap contains negative intensities

- #3699: Qti robust

- #3834: Bump docker/setup-qemu-action from 3 to 4 in the actions group

- #3830: DOC: Fix docstring errors in dipy/io/pickles.py

- #3831: DOC: Fix docstring errors in dipy/io/pickles.py

- #3820: BF: improve rumba performance

- #3818: BF: fix future errors/warnings from the future Numpy 2.5

- #3816: RF: relax precision for affine_registration / motion_correction

- #3822: DOC: Fix lowercase ‘returns’ section header in _make_fetcher docstring

- #3823: DOC: Fix lowercase ‘returns’ section header in _make_fetcher docstring

- #3805: Bump the actions group with 2 updates

- #3647: Biasfield Correction b0 method not working correctly

- #3791: NF: update biasfield correction method.

- #2427: Document the PAM file format

- #3793: DOC: Add documentation for the PAM5 file format

- #3752: CI: Update secrets management

- #3785: Weights parameter documented twice

- #3796: updated the docstring for ls_fit_dki and cls_fit_dki

- #3790: ENH: Cythonize AK, RK, and KFA kurtosis computations

- #3799: DOC: Add tutorial for saving and loading QuickBundles clustering results

- #3789: BF: handle force option when using symlink and hardlink

- #3774: CI: Fix typo in test_template.yml workflow input description

- #3784: Fix typo in test_template.yml input description (closes #3774)

- #3765: NF: add cli dipy_cluster_streamlines

- #3766: RF: improve CLI help formatting

- #3767: RF: Fix multiple cli

- #3759: DOC: Standardize docstring format across modules using numpydoc conventions

- #3780: Fix numpydoc validation issues in fetcher.py

- #3764: epsilon docstring mismatch

- #3781: Fix epsilon docstring mismatch

- #3778: CI: Add manual workflow trigger (workflow_dispatch) to test.yml

- #3779: CI: Add manual workflow trigger (workflow_dispatch) to test.yml

- #3775: CI: Add pip caching to build_docs.yml

- #3776: CI: Add pip caching to build_docs.yml

- #3772: CI: Add concurrency group to build_docs.yml

- #3773: CI: Add concurrency group to build_docs.yml

- #3770: Add a Pull Request template to standardize PR descriptions

- #3771: docs: Add a pull request template to standardize PR submissions.

- #3768: CI: Add workflow to clean up GitHub Actions caches on closed PRs

- #3769: CI: Add workflow to clean up GitHub Actions caches on closed PRs

- #3777: CI: Add manual workflow trigger (workflow_dispatch) to test.yml

- #3762: NF: add new CLI dipy_brain_mask with its associated test

- #3760: [DOC] Fix typos and grammatical errors in documentation and code

- #3761: [DOC] Fix grammatical errors and typos across documentation and codebase

- #3753: DOC: Typo in gitwash development_workflow guide

- #3754: DOC: Typo in gitwash development_workflow guide

- #3757: DOC: Fix missing space in load_peaks deprecation message

- #3758: DOC: Fix missing space in load_peaks deprecation message

- #3755: DOC: Update Gitter link to Matrix invite link

- #3756: DOC: Remove Gitter link

- #3704: Fix get simplified backward transform

- #3751: Fixed Github Workflow Issues

- #3745: Replace legacy nose-style yield assert_raises with pytest.raises

- #3746: TST: Replace legacy nose-style yield assert_raises with pytest.raises

- #3750: Update setuptools requirement from ~=69.5 to >=69.5,<83.0 in the python-dependencies group

- #3738: CI: Missing top-level permissions in CI workflow files

- #3739: CI: Add top-level permissions for least-privilege security

- #3734: CI: Benchmark workflow triggers on all pushes/PRs instead of master only

- #3735: CI: Restrict benchmark workflow triggers to master branch

- #3732: CI: Dependabot only monitors GitHub Actions, not pip dependencies

- #3733: CI: Add pip ecosystem tracking to Dependabot configuration

- #3731: MNT: Remove dead install type code paths from install.sh

- #3728: CI: Benchmark threading env vars don’t persist to the benchmarking step

- #3729: CI: Fix threading env vars not persisting across steps in benchmark.yml

- #3727: CI: Update stale dependency pins in CI configuration

- #3723: CI: first_interaction.yml action pinned by tag instead of SHA on pull_request_target trigger

- #3722: CI: Pin actions/first-interaction by commit SHA in first_interaction.yml

- #3720: CI: label-pr.yml uses third-party action pinned by tag on pull_request_target trigger

- #3721: CI: Pin srvaroa/labeler action by commit SHA in label-pr.yml

- #3718: DOC: CONTRIBUTING.md references Travis CI instead of GitHub Actions

- #3719: DOC: Update outdated Travis CI reference to GitHub Actions in CONTRIBUTING.md

- #3717: CI: Invalid cron schedule in test.yml runs ~1-2x/year instead of monthly

- #3716: CI: Fix invalid cron schedule in test.yml

- #3714: CI: Add missing timeout-minutes to workflow jobs

- #3715: CI: Add missing timeout-minutes to workflow jobs

- #3749: RF: Updated the list provide a table of dataset names.

- #3724: CI: Duplicate step names in nightly.yml upload_anaconda job make logs confusing

- #3725: CI: Rename duplicate ‘Upload wheel’ steps in nightly.yml for clarity

- #3747: Missing __all__ exports in subpackage __init__.py files

- #3748: STY: Add missing __all__ exports to subpackage __init__.py files

- #3740: Bump srvaroa/labeler from 1.13.0 to 1.14.0 in the actions group

- #3741: Replace deprecated numpy.testing.assert_() with plain assert

- #3742: TST: Replace deprecated npt.assert_() with plain assert

- #3743: Replace deprecated assert_almost_equal / assert_array_almost_equal with assert_allclose

- #3744: TST: Replace deprecated assert_almost_equal / assert_array_almost_equal with assert_allclose

- #3736: DOC: Remaining insecure http:// URLs should be migrated to https://

- #3737: DOC: Migrate remaining http:// URLs to https://

- #3710: CI: Fix incorrect Cython file glob patterns in labeler.yml

- #3711: CI: Fix incorrect Cython file glob patterns in labeler.yml

- #3708: STYLE: Fix spelling mistakes in docstrings and comments

- #3709: STYLE: Fix spelling mistakes in docstrings and comments

- #3712: #CI: Remove duplicate .mailmap entry in labeler.yml

- #3713: CI: Remove duplicate .mailmap entry in labeler.yml

- #3706: RF: Add alternative to symlink for some CLI

- #3688: dipy_horizon with Empty Streamline File

- #3696: BF: Handle empty tractograms gracefully in horizon

- #3701: Revert temporary suppression of SCS CSC conversion warning

- #3697: Fix dipy_horizon crash on empty tractogram files

- #3694: DOC: Fix numpydoc PR03 parameter order in path_length

- #2760: TRX integration

- #3692: DOC: Fixed DOC CI Issue

- #3675: Adding synthseg pytorch model

- #3683: DIPY_SLR Breaking with Wrong Error

- #3686: BF: Handle empty streamlines in slr_with_qbx after length filtering

- #3684: RF: address some edge cases in multiple workflows

- #3222: Issue with CWLS in dki

- #3405: Follow up for the Iteratively reweighted least squares

- #3681: Examples for IRLS (robust fitting)

- #3516: Do not require FURY to show information from a VTK/VTP tractography files

- #2538: [WIP] Registration public API for multi-slice 2D data

- #3685: DOC: fix some missing :footcite:p in documentation

- #3671: Increased speed and lisibility of connectivity matrix, added weights

- #3680: RF: Added max_version option to optional_package api.

- #3682: TST: Add interface tests for pure Python DirectionGetter implementations

- #3677: DOC: Fix file path in many tutorials.

- #3676: RF: Allow reslice to automatically determines isotropic resolution

- #3678: Build 3.14 nightly wheels

- #3664: DOC: Improve Horizon class docstring for clarity

- #3665: FIX: Correct path construction logic in fetcher data loader, Resolve path construction errors in read_bundles_2_subjects

- #3673: RF: Allow bvals file for medianOtsu workflow

- #3674: Bump scientific-python/upload-nightly-action from 0.6.2 to 0.6.3 in the actions group

- #3542: RF: Editing tranform_img in dipy.nn.utils

- #3670: Test: Add regression test for median_otsu autocrop deprecation

- #3668: MNT: Replace deprecated autocrop in brain_extraction_dwi.py, reconst_csa.py, reconst_csa_parallel.py, reconst_dti.py tutorial examples

- #3672: Bump the actions group with 3 updates

- #3669: DOC: Prefer BibTeX reference in GQSI example documentation

- #3643: Document pre-commit setup

- #3657: Document pre-commit setup for developers

- #3667: MNT: Replace deprecated autocrop in reconst_dti.py

- #3439: data fetching: problem with UW server ?

- #3659: NF: Intermediate map for symmetric diffeomorphic registration

- #3397: Adding Python Code Example for DIPY Horizon in Tutorials

- #3660: DOC: Programmatic DIPY Horizon usage (non-CLI)

- #2950: Clean up the non-local means denoising modules

- #1259: nlmeans does not respect boundaries

- #1224: Memory issue

- #1131: new non_local_means module seems to disregard 3D array of noise standard deviation

- #1178: Recheck indexing with nlmeans as some of it is indexing wrong positions

- #3623: RF: refactoring of `nlmeans` to allow the selection our classic version and the blockwise version

- #3661: CI: simplify cache, too many data was cached

- #3662: Bump actions/checkout from 5 to 6 in the actions group

- #3552: BF: Discards streamlines by size

- #3652: NF: Reduce default iteration counts and make level_iters configurable in motion correction

- #3618: BF: manage empty file in dipy_slr cli to avoid enigmatic crash

- #3655: CI: remove fetch-data job

- #3658: Added interpolation parameter to dipy_apply_transform

- #3621: filename for statefulsurface and statefultractogram cannot have period in them anymore

- #3648: Revert split extension (for SFT and SFS)

- #3636: Bug with use of where

- #3654: RF: fix warnings introduced by the future Numpy version 2.4

- #3651: RF: handle bingham tests warnings

- #3653: RF: Fix imports in reconst

- #3640: First interaction workflow doesn’t work

- #3650: BF: update first interaction Github action parameters

- #3649: Bump the actions group with 2 updates

- #3638: UnboundLocalError: local variable ‘fits’ referenced before assignment

- #3635: BF: Fix CVXPY warning

- #3646: [BF] Fix fwdti

- #3639: fix: BUG: fix UnboundLocalError in _single_sf_to_bingham when no valid peaks found

- #3610: NF: add dipy_fit_powermap workflows with its associated tests

- #2087: Single-shell Free Water DTI (Object Oriented)

- #3634: BF: expand requirements during its generation

- #3425: NF: add FWDTI Workflow

- #2137: Deep-learning-based registration example

- #3631: RF: Fixed weird volumes instead of denoised volumes in Patch2Self 3

- #3633: Patch2Self CLI provides wrong doc string for version

- #3539: FOSR implementation in Python for tractometry

- #3629: Bump actions/setup-python from 5 to 6 in the actions group

- #3625: docs: remove NeuroFedora

- #3424: NF: Automate requirement files

- #3624: Bump the actions group with 3 updates

- #3605: RF: Parallel quantize_evecs

- #3613: BF: Allow length to work with float16 streamlines

- #3608: Predicting from a fitted DTI model is broken?

- #3612: BF: fix lower triangular bug introduced in #3563

- #3588: In-house QP solver using numba for fitting MSMT

- #1617: NF: added streamline clipping function to utils

- #3606: RF: Address cvxpy 1.7.0 warnings.

- #3609: Bump actions/first-interaction from 1 to 2 in the actions group

- #3551: Shutting down the gitter live chat ?

- #1164: Parallel quantize_evecs + PEP8

- #3124: ENH: Add commentary on median otsu tutorial/change default parameters

- #3560: Doc: explicit `finalize_mask` information in CLI tutorial

- #3602: ENH: Adopt pathlib for workflows

- #3604: RF: replace old LocalTracking by our new tracking interface

- #3506: Make sure .trx is default everywhere

- #3587: RF: from TRK to TRX as default file format for tracks

- #3603: DOC: Fix workflows test utils parameter name in docstring

- #3601: DOC: Record API changes after pathlib adoption

- #3593: STYLE: Adopt pathlib for path manipulation

- #3599: TEST: Restore removed test case in io workflows

- #3600: MNT: Fix miscellaneous labeler regexes

- #3597: STYLE: Miscellaneous style fixes

- #3598: BF: Miscellaneous fixes to surfaces

- #3592: STYLE: Adopt a unified logger across the code base

- #3596: NF - Add DirectionGetter for Flocking Tractography

- #3429: StatefulSurface - Class to handle surfaces

- #3595: DOC: Remove default arguments from docstrings

- #3594: STYLE: Miscellaneous style fixes

- #3513: STYLE: Log message instead of printing orphan string

- #3591: STYLE: Apply ruff manually to all files

- #3582: NF: Add PR labeler workflow

- #3586: MNT: Change issue template file extensions

- #3584: MNT: Add GitHub issue templates

- #3583: DOC: Change unused commit prefixes to some other more useful ones

- #3581: SciPy deprecation of “disp” in optimizer

- #3556: RF: allow the saving of S0 estimate for dti workflow

- #3497: dipy_fit_dti does not return S0 estimate

- #3418: Division by 0 warning

- #3563: RF: Address some Zero division warnings

- #3352: Rumba and multivoxel fit decorator

- #3565: RF: use multi_voxel_fit for rumba

- #3537: Remove autocrop from median_otsu

- #3541: RF: Deprecate autocrop in median_otsu

- #2866: arm64 test failure with numpy 1.24.2

- #3580: TEST: uncomment and update test_cross

- #1776: make it really easy for DiPy to call graspy functions

- #2269: Allow dipy_fit_dti Workflow to Use Native Orientation of Provided Mask Image

- #2682: DIPY Free-Water Corrected DTI (FA output quality)

- #2428: dipy.align.reslice

- #2399: fitting free water mapping out of iterations

- #2319: Reconstruction with MSMT CSD example resulted in Nan values

- #2329: Slice to volume registration

- #1974: MAP-MRI optimization & validation errors

- #2612: Mean Diffusivity turns out low in CSF when reconstructing using ReconstDtiFlow

- #687: Refactor imaffine class structure.

- #706: Thoughts about using the SyN algorithm

- #2184: discussion: continuous integration using GPUs

- #1991: [DISCUSSION] b-tensor encoding gradient table format

- #2186: Pure-python implementation of boundary-based registration (BBR)?

- #1852: Telemetry

- #2338: Team DIPY Citations

- #2663: Plotting tensors in Fury: issue with right-handed coordinate system?

- #3515: RF: Improve dipy_info printed output

- #2850: Orthogonal Tensor Parameter (Moment) Maps

- #1886: NF - add the option to save the last point of streamlines

- #3562: DOC: Add missing opening backtick to reference syntax.

- #3561: STYLE: Make affine variable naming consistent

- #3382: Check use of affine in streamline_tools example

- #3557: DOC: fix streamline-tools tutorial by avoiding the use of identity affine

- #2473: Add Patch2self in our denoising CLI tutorial

- #3559: [RF]: Patch2self in denoising CLI tutorial

- #2695: Replace CENIR multishell with HBN POD2 data

- #2728: Do we have multi_processes method for streamline extraction

- #2848: Noise estimation of T1 brain MR images

- #3500: dipy_fit_csa does not use num_processes

- #3517: dipy_info provides misleading message when no reference is provided

- #3555: ENH: improve dipy_info message when no reference for some streamline files.

- #3554: Doc: Fix typo in multiple tutorial

- #3413: Tutorial Typos

- #3492: BF: Peaks working with world coordinates.

- #1249: Bias correction for local pca

- #823: WIP: “Out-of-core” LiFE

- #3540: Tractography with GFA as stopping criterion is not reproducible across runs

- #3546: BF: Make StoppingCriterion reproducible for multi-thread execution

- #3545: ENH: Add StopingCriterion reproducibility test

- #3548: RF: fix typo in hcp fetcher function argument name

- #3549: BF: Improves Cython enum management.

- #3507: Extract b0 interface throws value error with HCP 7T (MGH) - subject 1007

- #3474: Filenames missing in horizon for peaks objects

- #3520: ENH: Opacity slider turned off on hide

- #3544: ENH: Add StopingCriterion reproducibility test

- #3493: NF: allow broadcasting in dipy_math

- #3488: RF - changed min/max len from nbr pts to mm

- #3536: FA latex formula does not show correctly on DTI tutorial

- #3538: RF: Fixed the latex

- #3519: ENH: Horizon peaks fname support

- #1404: RF - DirectionGetter.get_direction function return

- #3453: Inconistancy between documentation and implementation on dipy.reconst.dti.nlls_fit_tensor

- #3455: Fix Bugs in #3453: Ensure Correct Weight Reshaping & Consistent Extra Output in iter_fit_tensor

- #3535: CI: Ignore fork() warnings.

- #3501: Probabilistic reference in docs seems incorrect

- #3336: Simplify CIs

- #3528: DOC: Changed documentation errors in dipy.sims.voxel

- #3533: CI: introduce cached Data.

- #3531: CI: Ignore specific cvxpy warnings to avoid CI failure.

- #2494: Potential speed up for the data fetchers

- #3527: BF: Search bar should come bigger in the center.

- #3530: STYLE: Add additional emojis to first interaction message

- #3526: Bump scientific-python/upload-nightly-action from 0.6.1 to 0.6.2 in the actions group

- #3521: Division by zero when machine has a single CPU

- #3522: FIX: Avoid division by zero on single-CPU systems (issue #3521)

- #3510: [RF]: Saving the figure in the example.

- #3512: STYLE: Call warning instead of the deprecated warn function

- #3514: DOC: Miscellaneous doc improvements

- #3508: New disco tracking tutorial not available in docs

- #3495: BF: Fixing minor issue in dipy_classify_tissue dam option

- #3494: publish wheels

- #3481: UPCOMING: Release 1.11.0