.. _release1.12:

=====================================
 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
:file:`tools/github_stats.py`):

Pull Requests (173):

* :ghpull:`3844`: NF: FORCE recon model
* :ghpull:`3617`: NF: add dipy_fit_msmtcsd cli with its tests
* :ghpull:`3687`: BUAN Bundle Profiles Lite Version
* :ghpull:`3850`: DOC: Fix broken and outdated links in gitwash documentation
* :ghpull:`3679`: Build aarch64 natively
* :ghpull:`3847`: BF: Updated sherbrooke-3shell.
* :ghpull:`3845`: BF: improve output file management of BiasField correction CLI
* :ghpull:`3841`: DOC: Complete missing parameters in save_polydata docstring
* :ghpull:`3689`: NF: Parallel Eudx
* :ghpull:`3836`: DOC: Documentation fix
* :ghpull:`3808`: RF: improve trx support for recobundles CLI
* :ghpull:`3825`: DOC: Modernize and complete benchmarks/README.rst - closes #3824
* :ghpull:`3813`: Fix #3811: reset warning filters in test_io_peaks_deprecated
* :ghpull:`3833`: DOC: Improve docstrings for SimilarityMetric in align.metrics
* :ghpull:`3795`: Added docs for nn and io
* :ghpull:`3812`: Fix #3810: use warnings.warn() for empty tractogram
* :ghpull:`3700`: RF: Simplify non-negative code in anisotropic_power
* :ghpull:`3783`: Fix figure canvas not cleared in simulation tutorials
* :ghpull:`3699`: Qti robust
* :ghpull:`3834`: Bump docker/setup-qemu-action from 3 to 4 in the actions group
* :ghpull:`3831`: DOC: Fix docstring errors in dipy/io/pickles.py
* :ghpull:`3820`: BF: improve rumba performance
* :ghpull:`3818`: BF: fix future errors/warnings from the future Numpy 2.5
* :ghpull:`3816`: RF: relax precision for affine_registration / motion_correction
* :ghpull:`3823`: DOC: Fix lowercase 'returns' section header in _make_fetcher docstring
* :ghpull:`3805`: Bump the actions group with 2 updates
* :ghpull:`3791`: NF: update biasfield correction method.
* :ghpull:`3793`: DOC: Add documentation for the PAM5 file format
* :ghpull:`3752`: CI: Update secrets management
* :ghpull:`3796`: updated the docstring for ls_fit_dki and cls_fit_dki
* :ghpull:`3790`: ENH: Cythonize AK, RK, and KFA kurtosis computations
* :ghpull:`3789`: BF: handle `force` option when using symlink and hardlink
* :ghpull:`3784`: Fix typo in test_template.yml input description (closes #3774)
* :ghpull:`3765`: NF: add cli dipy_cluster_streamlines
* :ghpull:`3766`: RF: improve CLI help formatting
* :ghpull:`3767`: RF: Fix multiple cli
* :ghpull:`3780`: Fix `numpydoc` validation issues in `fetcher.py`
* :ghpull:`3781`: Fix epsilon docstring mismatch
* :ghpull:`3771`: docs: Add a pull request template to standardize PR submissions.
* :ghpull:`3762`: NF: add new CLI dipy_brain_mask with its associated test
* :ghpull:`3761`:  [DOC] Fix grammatical errors and typos across documentation and codebase
* :ghpull:`3754`: DOC: Typo in gitwash development_workflow guide
* :ghpull:`3758`: DOC: Fix missing space in `load_peaks` deprecation message
* :ghpull:`3756`: DOC: Remove Gitter link
* :ghpull:`3704`: Fix get simplified backward transform
* :ghpull:`3746`: TST: Replace legacy nose-style `yield assert_raises` with `pytest.raises`
* :ghpull:`3750`: Update setuptools requirement from ~=69.5 to >=69.5,<83.0 in the python-dependencies group
* :ghpull:`3739`: CI: Add top-level permissions for least-privilege security
* :ghpull:`3733`: CI: Add pip ecosystem tracking to Dependabot configuration
* :ghpull:`3729`: CI: Fix threading env vars not persisting across steps in benchmark.yml
* :ghpull:`3722`: CI: Pin actions/first-interaction by commit SHA in first_interaction.yml
* :ghpull:`3721`: CI: Pin srvaroa/labeler action by commit SHA in label-pr.yml
* :ghpull:`3719`:  DOC: Update outdated Travis CI reference to GitHub Actions in CONTRIBUTING.md
* :ghpull:`3716`: CI: Fix invalid cron schedule in test.yml
* :ghpull:`3715`: CI: Add missing timeout-minutes to workflow jobs
* :ghpull:`3749`: RF: Updated the list provide a table of dataset names.
* :ghpull:`3740`: Bump srvaroa/labeler from 1.13.0 to 1.14.0 in the actions group
* :ghpull:`3737`:  DOC: Migrate remaining `http://` URLs to `https://`
* :ghpull:`3711`: CI: Fix incorrect Cython file glob patterns in labeler.yml
* :ghpull:`3709`: STYLE: Fix spelling mistakes in docstrings and comments
* :ghpull:`3713`: CI: Remove duplicate .mailmap entry in labeler.yml
* :ghpull:`3706`: RF: Add alternative to symlink for some  CLI
* :ghpull:`3696`: BF: Handle empty tractograms gracefully in horizon
* :ghpull:`3694`: DOC: Fix numpydoc PR03 parameter order in path_length
* :ghpull:`3692`: DOC: Fixed DOC CI Issue
* :ghpull:`3675`: Adding synthseg pytorch model
* :ghpull:`3686`: BF: Handle empty streamlines in slr_with_qbx after length filtering
* :ghpull:`3684`: RF: address some edge cases in multiple workflows
* :ghpull:`3681`: Examples for IRLS (robust fitting)
* :ghpull:`3685`: DOC: fix some missing `:footcite:p` in documentation
* :ghpull:`3671`: Increased speed and lisibility of connectivity matrix, added weights
* :ghpull:`3680`: RF: Added max_version option to optional_package api.
* :ghpull:`3677`: DOC: Fix file path in many tutorials.
* :ghpull:`3676`: RF: Allow reslice to automatically determines isotropic resolution
* :ghpull:`3678`: Build 3.14 nightly wheels
* :ghpull:`3664`: DOC: Improve Horizon class docstring for clarity
* :ghpull:`3665`: FIX: Correct path construction logic in fetcher data loader, Resolve path construction errors in read_bundles_2_subjects
* :ghpull:`3673`: RF: Allow bvals file for medianOtsu workflow
* :ghpull:`3674`: Bump scientific-python/upload-nightly-action from 0.6.2 to 0.6.3 in the actions group
* :ghpull:`3542`: RF: Editing tranform_img in dipy.nn.utils
* :ghpull:`3670`: Test: Add regression test for median_otsu autocrop deprecation
* :ghpull:`3668`: MNT: Replace deprecated autocrop in brain_extraction_dwi.py, reconst_csa.py, reconst_csa_parallel.py, reconst_dti.py tutorial examples
* :ghpull:`3672`: Bump the actions group with 3 updates
* :ghpull:`3669`: DOC: Prefer BibTeX reference in GQSI example documentation
* :ghpull:`3657`: Document pre-commit setup for developers
* :ghpull:`3667`: MNT: Replace deprecated autocrop in reconst_dti.py
* :ghpull:`3659`: NF: Intermediate map for symmetric diffeomorphic registration
* :ghpull:`3660`: DOC: Programmatic DIPY Horizon usage (non-CLI)
* :ghpull:`3623`: RF: refactoring of ``nlmeans`` to allow the selection our classic version and the blockwise version
* :ghpull:`3661`: CI: simplify cache, too many data was cached
* :ghpull:`3662`: Bump actions/checkout from 5 to 6 in the actions group
* :ghpull:`3552`: BF: Discards streamlines by size
* :ghpull:`3652`: NF:  Reduce default iteration counts and make level_iters configurable in motion correction
* :ghpull:`3618`: BF: manage empty file in dipy_slr cli to avoid enigmatic crash
* :ghpull:`3655`: CI: remove fetch-data job
* :ghpull:`3658`: Added interpolation parameter to dipy_apply_transform
* :ghpull:`3648`: Revert split extension (for SFT and SFS)
* :ghpull:`3654`: RF: fix warnings introduced by the future Numpy version 2.4
* :ghpull:`3651`: RF: handle bingham tests warnings
* :ghpull:`3650`: BF: update first interaction Github action parameters
* :ghpull:`3649`: Bump the actions group with 2 updates
* :ghpull:`3635`: BF: Fix CVXPY warning
* :ghpull:`3646`: [BF] Fix fwdti
* :ghpull:`3639`: fix: BUG: fix UnboundLocalError in _single_sf_to_bingham when no valid peaks found
* :ghpull:`3610`: NF: add dipy_fit_powermap workflows with its associated tests
* :ghpull:`3634`: BF: expand requirements during its generation
* :ghpull:`3425`: NF: add FWDTI Workflow
* :ghpull:`3631`: RF: Fixed weird volumes instead of denoised volumes in Patch2Self 3
* :ghpull:`3629`: Bump actions/setup-python from 5 to 6 in the actions group
* :ghpull:`3625`: docs: remove NeuroFedora
* :ghpull:`3424`: NF: Automate requirement files
* :ghpull:`3624`: Bump the actions group with 3 updates
* :ghpull:`3605`: RF: Parallel `quantize_evecs`
* :ghpull:`3613`: BF: Allow `length` to work with float16 streamlines
* :ghpull:`3612`: BF: fix lower triangular bug introduced in #3563
* :ghpull:`1617`: NF: added streamline clipping function to utils
* :ghpull:`3606`: RF: Address cvxpy 1.7.0 warnings.
* :ghpull:`3609`: Bump actions/first-interaction from 1 to 2 in the actions group
* :ghpull:`3560`: Doc: explicit ``finalize_mask`` information in CLI tutorial
* :ghpull:`3602`: ENH: Adopt `pathlib` for workflows
* :ghpull:`3604`: RF: replace old LocalTracking by our new tracking interface
* :ghpull:`3587`: RF: from TRK to TRX as default file format for tracks
* :ghpull:`3603`: DOC: Fix workflows test utils parameter name in docstring
* :ghpull:`3601`: DOC: Record API changes after `pathlib` adoption
* :ghpull:`3593`: STYLE: Adopt `pathlib` for path manipulation
* :ghpull:`3599`: TEST: Restore removed test case in io workflows
* :ghpull:`3600`: MNT: Fix miscellaneous labeler regexes
* :ghpull:`3597`: STYLE: Miscellaneous style fixes
* :ghpull:`3598`: BF: Miscellaneous fixes to surfaces
* :ghpull:`3592`: STYLE: Adopt a unified logger across the code base
* :ghpull:`3429`: StatefulSurface - Class to handle surfaces
* :ghpull:`3595`: DOC: Remove default arguments from docstrings
* :ghpull:`3594`: STYLE: Miscellaneous style fixes
* :ghpull:`3591`: STYLE: Apply `ruff` manually to all files
* :ghpull:`3582`: NF: Add PR labeler workflow
* :ghpull:`3586`: MNT: Change issue template file extensions
* :ghpull:`3584`: MNT: Add GitHub issue templates
* :ghpull:`3583`: DOC: Change unused commit prefixes to some other more useful ones
* :ghpull:`3581`: SciPy deprecation of "disp" in optimizer
* :ghpull:`3556`: RF: allow the saving of S0 estimate for dti workflow
* :ghpull:`3563`: RF: Address some Zero division warnings
* :ghpull:`3565`: RF: use multi_voxel_fit for rumba
* :ghpull:`3541`: RF: Deprecate autocrop in median_otsu
* :ghpull:`3580`: TEST: uncomment and update test_cross
* :ghpull:`3515`: RF: Improve `dipy_info` printed output
* :ghpull:`3562`: DOC: Add missing opening backtick to reference syntax.
* :ghpull:`3561`: STYLE: Make affine variable naming consistent
* :ghpull:`3557`: DOC: fix streamline-tools tutorial by avoiding the use of identity affine
* :ghpull:`3559`: [RF]: Patch2self in denoising CLI tutorial
* :ghpull:`3555`: ENH: improve dipy_info message when no reference for some streamline files.
* :ghpull:`3554`: Doc: Fix typo in multiple tutorial
* :ghpull:`3546`: BF: Make `StoppingCriterion` reproducible for multi-thread execution
* :ghpull:`3548`: RF: fix typo in hcp fetcher function argument name
* :ghpull:`3549`: BF: Improves Cython enum management.
* :ghpull:`3520`: ENH: Opacity slider turned off on hide
* :ghpull:`3493`: NF: allow broadcasting in dipy_math
* :ghpull:`3488`: RF - changed min/max len from nbr pts to mm
* :ghpull:`3538`: RF: Fixed the latex
* :ghpull:`3519`: ENH: Horizon peaks fname support
* :ghpull:`3455`: Fix Bugs in #3453: Ensure Correct Weight Reshaping & Consistent Extra Output in iter_fit_tensor
* :ghpull:`3535`: CI: Ignore fork() warnings.
* :ghpull:`3528`: DOC: Changed documentation errors in dipy.sims.voxel
* :ghpull:`3533`: CI: introduce cached Data.
* :ghpull:`3531`: CI: Ignore specific cvxpy warnings to avoid CI failure.
* :ghpull:`3527`: BF: Search bar should come bigger in the center.
* :ghpull:`3530`: STYLE: Add additional emojis to first interaction message
* :ghpull:`3526`: Bump scientific-python/upload-nightly-action from 0.6.1 to 0.6.2 in the actions group
* :ghpull:`3522`: FIX: Avoid division by zero on single-CPU systems (issue #3521)
* :ghpull:`3510`: [RF]: Saving the figure in the example.
* :ghpull:`3512`: STYLE: Call `warning` instead of the deprecated `warn` function
* :ghpull:`3514`: DOC: Miscellaneous doc improvements
* :ghpull:`3495`: BF: Fixing minor issue in dipy_classify_tissue dam option
* :ghpull:`3481`: UPCOMING:  Release 1.11.0

Issues (324):

* :ghissue:`3844`: NF: FORCE recon model
* :ghissue:`3503`: Create new interface for MTMS CSD and standard CSD that use Ray properly
* :ghissue:`3617`: NF: add dipy_fit_msmtcsd cli with its tests
* :ghissue:`3687`: BUAN Bundle Profiles Lite Version
* :ghissue:`3849`: DOC: Fix broken and outdated links in gitwash documentation
* :ghissue:`3850`: DOC: Fix broken and outdated links in gitwash documentation
* :ghissue:`2766`: WIP Issue 2738 click cli refactor
* :ghissue:`2738`: Replace our custom Argparse CLI api by Click ?
* :ghissue:`2547`: [WIP][FIX] option to disable multithreading while multiprocessing
* :ghissue:`3143`: [WIP][NF] Add `dipy_gtable` cli
* :ghissue:`3679`: Build aarch64 natively
* :ghissue:`3847`: BF: Updated sherbrooke-3shell.
* :ghissue:`3845`: BF: improve output file management of BiasField correction CLI
* :ghissue:`3628`: iter_fit_tensor returns {} instead of None causing KeyError in nlls_fit_tensor when return_leverages=False
* :ghissue:`3840`: DOC: Complete missing parameters in save_polydata docstring
* :ghissue:`3841`: DOC: Complete missing parameters in save_polydata docstring
* :ghissue:`3689`: NF: Parallel Eudx
* :ghissue:`3836`: DOC: Documentation fix
* :ghissue:`3808`: RF: improve trx support for recobundles CLI
* :ghissue:`3693`: QTI issues - lack of MIN_POSITIVE_SIGNAL and issue with constrained solver and WLS is wrong anyway
* :ghissue:`3824`: DOC: Modernize and complete benchmarks/README.rst (and developer docs)
* :ghissue:`3825`: DOC: Modernize and complete benchmarks/README.rst - closes #3824
* :ghissue:`3835`: ENH: add ASV continuous benchmarking workflow
* :ghissue:`3811`: test_io_peaks_deprecated fails - ACTUAL: 82 warnings, DESIRED: 2
* :ghissue:`3813`: Fix #3811: reset warning filters in test_io_peaks_deprecated
* :ghissue:`3833`: DOC: Improve docstrings for SimilarityMetric in align.metrics
* :ghissue:`3795`: Added docs for nn and io
* :ghissue:`3827`: Enh asv continuous benchmarks
* :ghissue:`3814`: ENH: Ray-aware CSD and MSMT-CSD workflows (#3503, #3617)
* :ghissue:`3807`: Fix #3502: Add ODF and Tensor visualization to dipy_horizon
* :ghissue:`3810`: test_horizon_empty_tractogram fails - logger.warning() not caught by warnings.catch_warnings()
* :ghissue:`3812`: Fix #3810: use warnings.warn() for empty tractogram
* :ghissue:`3700`: RF: Simplify non-negative code in anisotropic_power
* :ghissue:`3656`: Some tutorials do not clear the figure canvas
* :ghissue:`3783`: Fix figure canvas not cleared in simulation tutorials
* :ghissue:`3645`: Powermap contains negative intensities
* :ghissue:`3699`: Qti robust
* :ghissue:`3834`: Bump docker/setup-qemu-action from 3 to 4 in the actions group
* :ghissue:`3830`: DOC: Fix docstring errors in dipy/io/pickles.py
* :ghissue:`3831`: DOC: Fix docstring errors in dipy/io/pickles.py
* :ghissue:`3820`: BF: improve rumba performance
* :ghissue:`3818`: BF: fix future errors/warnings from the future Numpy 2.5
* :ghissue:`3816`: RF: relax precision for affine_registration / motion_correction
* :ghissue:`3822`: DOC: Fix lowercase 'returns' section header in _make_fetcher docstring
* :ghissue:`3823`: DOC: Fix lowercase 'returns' section header in _make_fetcher docstring
* :ghissue:`3805`: Bump the actions group with 2 updates
* :ghissue:`3647`: Biasfield Correction b0 method not working correctly
* :ghissue:`3791`: NF: update biasfield correction method.
* :ghissue:`2427`: Document the PAM file format
* :ghissue:`3793`: DOC: Add documentation for the PAM5 file format
* :ghissue:`3752`: CI: Update secrets management
* :ghissue:`3785`: Weights parameter documented twice
* :ghissue:`3796`: updated the docstring for ls_fit_dki and cls_fit_dki
* :ghissue:`3790`: ENH: Cythonize AK, RK, and KFA kurtosis computations
* :ghissue:`3799`: DOC: Add tutorial for saving and loading QuickBundles clustering results
* :ghissue:`3789`: BF: handle `force` option when using symlink and hardlink
* :ghissue:`3774`: CI: Fix typo in test_template.yml workflow input description
* :ghissue:`3784`: Fix typo in test_template.yml input description (closes #3774)
* :ghissue:`3765`: NF: add cli dipy_cluster_streamlines
* :ghissue:`3766`: RF: improve CLI help formatting
* :ghissue:`3767`: RF: Fix multiple cli
* :ghissue:`3759`: DOC: Standardize docstring format across modules using numpydoc conventions
* :ghissue:`3780`: Fix `numpydoc` validation issues in `fetcher.py`
* :ghissue:`3764`: epsilon docstring mismatch
* :ghissue:`3781`: Fix epsilon docstring mismatch
* :ghissue:`3778`: CI: Add manual workflow trigger (workflow_dispatch) to test.yml
* :ghissue:`3779`: CI: Add manual workflow trigger (workflow_dispatch) to test.yml
* :ghissue:`3775`: CI: Add pip caching to build_docs.yml
* :ghissue:`3776`: CI: Add pip caching to build_docs.yml
* :ghissue:`3772`: CI: Add concurrency group to build_docs.yml
* :ghissue:`3773`: CI: Add concurrency group to build_docs.yml
* :ghissue:`3770`: Add a Pull Request template to standardize PR descriptions
* :ghissue:`3771`: docs: Add a pull request template to standardize PR submissions.
* :ghissue:`3768`: CI: Add workflow to clean up GitHub Actions caches on closed PRs
* :ghissue:`3769`: CI: Add workflow to clean up GitHub Actions caches on closed PRs
* :ghissue:`3777`:  CI: Add manual workflow trigger (workflow_dispatch) to test.yml
* :ghissue:`3762`: NF: add new CLI dipy_brain_mask with its associated test
* :ghissue:`3760`: [DOC] Fix typos and grammatical errors in documentation and code
* :ghissue:`3761`:  [DOC] Fix grammatical errors and typos across documentation and codebase
* :ghissue:`3753`: DOC: Typo in gitwash development_workflow guide
* :ghissue:`3754`: DOC: Typo in gitwash development_workflow guide
* :ghissue:`3757`: DOC: Fix missing space in `load_peaks` deprecation message
* :ghissue:`3758`: DOC: Fix missing space in `load_peaks` deprecation message
* :ghissue:`3755`: DOC: Update Gitter link to Matrix invite link
* :ghissue:`3756`: DOC: Remove Gitter link
* :ghissue:`3704`: Fix get simplified backward transform
* :ghissue:`3751`: Fixed Github Workflow Issues
* :ghissue:`3745`: Replace legacy nose-style `yield assert_raises` with `pytest.raises`
* :ghissue:`3746`: TST: Replace legacy nose-style `yield assert_raises` with `pytest.raises`
* :ghissue:`3750`: Update setuptools requirement from ~=69.5 to >=69.5,<83.0 in the python-dependencies group
* :ghissue:`3738`: CI: Missing top-level permissions in CI workflow files
* :ghissue:`3739`: CI: Add top-level permissions for least-privilege security
* :ghissue:`3734`: CI: Benchmark workflow triggers on all pushes/PRs instead of master only
* :ghissue:`3735`: CI: Restrict benchmark workflow triggers to master branch
* :ghissue:`3732`: CI: Dependabot only monitors GitHub Actions, not pip dependencies
* :ghissue:`3733`: CI: Add pip ecosystem tracking to Dependabot configuration
* :ghissue:`3731`: MNT: Remove dead install type code paths from install.sh
* :ghissue:`3728`: CI: Benchmark threading env vars don't persist to the benchmarking step
* :ghissue:`3729`: CI: Fix threading env vars not persisting across steps in benchmark.yml
* :ghissue:`3727`: CI: Update stale dependency pins in CI configuration
* :ghissue:`3723`: CI: first_interaction.yml action pinned by tag instead of SHA on pull_request_target trigger
* :ghissue:`3722`: CI: Pin actions/first-interaction by commit SHA in first_interaction.yml
* :ghissue:`3720`: CI: label-pr.yml uses third-party action pinned by tag on pull_request_target trigger
* :ghissue:`3721`: CI: Pin srvaroa/labeler action by commit SHA in label-pr.yml
* :ghissue:`3718`: DOC: CONTRIBUTING.md references Travis CI instead of GitHub Actions
* :ghissue:`3719`:  DOC: Update outdated Travis CI reference to GitHub Actions in CONTRIBUTING.md
* :ghissue:`3717`: CI: Invalid cron schedule in test.yml runs ~1-2x/year instead of monthly
* :ghissue:`3716`: CI: Fix invalid cron schedule in test.yml
* :ghissue:`3714`: CI: Add missing timeout-minutes to workflow jobs
* :ghissue:`3715`: CI: Add missing timeout-minutes to workflow jobs
* :ghissue:`3749`: RF: Updated the list provide a table of dataset names.
* :ghissue:`3724`: CI: Duplicate step names in nightly.yml upload_anaconda job make logs confusing
* :ghissue:`3725`: CI: Rename duplicate 'Upload wheel' steps in nightly.yml for clarity
* :ghissue:`3747`: Missing `__all__` exports in subpackage `__init__.py` files
* :ghissue:`3748`: STY: Add missing `__all__` exports to subpackage `__init__.py` files
* :ghissue:`3740`: Bump srvaroa/labeler from 1.13.0 to 1.14.0 in the actions group
* :ghissue:`3741`: Replace deprecated `numpy.testing.assert_()` with plain `assert`
* :ghissue:`3742`: TST: Replace deprecated `npt.assert_()` with plain `assert`
* :ghissue:`3743`: Replace deprecated `assert_almost_equal` / `assert_array_almost_equal` with `assert_allclose`
* :ghissue:`3744`: TST: Replace deprecated `assert_almost_equal` / `assert_array_almost_equal` with `assert_allclose`
* :ghissue:`3736`: DOC: Remaining insecure `http://` URLs should be migrated to `https://`
* :ghissue:`3737`:  DOC: Migrate remaining `http://` URLs to `https://`
* :ghissue:`3710`: CI: Fix incorrect Cython file glob patterns in labeler.yml
* :ghissue:`3711`: CI: Fix incorrect Cython file glob patterns in labeler.yml
* :ghissue:`3708`: STYLE: Fix spelling mistakes in docstrings and comments
* :ghissue:`3709`: STYLE: Fix spelling mistakes in docstrings and comments
* :ghissue:`3712`: #CI: Remove duplicate `.mailmap` entry in labeler.yml
* :ghissue:`3713`: CI: Remove duplicate .mailmap entry in labeler.yml
* :ghissue:`3706`: RF: Add alternative to symlink for some  CLI
* :ghissue:`3688`: dipy_horizon with Empty Streamline File
* :ghissue:`3696`: BF: Handle empty tractograms gracefully in horizon
* :ghissue:`3701`: Revert temporary suppression of SCS CSC conversion warning
* :ghissue:`3697`: Fix dipy_horizon crash on empty tractogram files
* :ghissue:`3694`: DOC: Fix numpydoc PR03 parameter order in path_length
* :ghissue:`2760`: TRX integration
* :ghissue:`3692`: DOC: Fixed DOC CI Issue
* :ghissue:`3675`: Adding synthseg pytorch model
* :ghissue:`3683`: DIPY_SLR Breaking with Wrong Error
* :ghissue:`3686`: BF: Handle empty streamlines in slr_with_qbx after length filtering
* :ghissue:`3684`: RF: address some edge cases in multiple workflows
* :ghissue:`3222`: Issue with CWLS in dki
* :ghissue:`3405`: Follow up for the Iteratively reweighted least squares
* :ghissue:`3681`: Examples for IRLS (robust fitting)
* :ghissue:`3516`: Do not require FURY to show information from a VTK/VTP tractography files
* :ghissue:`2538`: [WIP] Registration public API for multi-slice 2D data
* :ghissue:`3685`: DOC: fix some missing `:footcite:p` in documentation
* :ghissue:`3671`: Increased speed and lisibility of connectivity matrix, added weights
* :ghissue:`3680`: RF: Added max_version option to optional_package api.
* :ghissue:`3682`: TST: Add interface tests for pure Python DirectionGetter implementations
* :ghissue:`3677`: DOC: Fix file path in many tutorials.
* :ghissue:`3676`: RF: Allow reslice to automatically determines isotropic resolution
* :ghissue:`3678`: Build 3.14 nightly wheels
* :ghissue:`3664`: DOC: Improve Horizon class docstring for clarity
* :ghissue:`3665`: FIX: Correct path construction logic in fetcher data loader, Resolve path construction errors in read_bundles_2_subjects
* :ghissue:`3673`: RF: Allow bvals file for medianOtsu workflow
* :ghissue:`3674`: Bump scientific-python/upload-nightly-action from 0.6.2 to 0.6.3 in the actions group
* :ghissue:`3542`: RF: Editing tranform_img in dipy.nn.utils
* :ghissue:`3670`: Test: Add regression test for median_otsu autocrop deprecation
* :ghissue:`3668`: MNT: Replace deprecated autocrop in brain_extraction_dwi.py, reconst_csa.py, reconst_csa_parallel.py, reconst_dti.py tutorial examples
* :ghissue:`3672`: Bump the actions group with 3 updates
* :ghissue:`3669`: DOC: Prefer BibTeX reference in GQSI example documentation
* :ghissue:`3643`: Document pre-commit setup
* :ghissue:`3657`: Document pre-commit setup for developers
* :ghissue:`3667`: MNT: Replace deprecated autocrop in reconst_dti.py
* :ghissue:`3439`: data fetching: problem with UW server ?
* :ghissue:`3659`: NF: Intermediate map for symmetric diffeomorphic registration
* :ghissue:`3397`: Adding Python Code Example for DIPY Horizon in Tutorials
* :ghissue:`3660`: DOC: Programmatic DIPY Horizon usage (non-CLI)
* :ghissue:`2950`: Clean up the non-local means denoising modules
* :ghissue:`1259`: nlmeans does not respect boundaries
* :ghissue:`1224`: Memory issue
* :ghissue:`1131`: new non_local_means module seems to disregard 3D array of noise standard deviation
* :ghissue:`1178`: Recheck indexing with nlmeans as some of it is indexing wrong positions
* :ghissue:`3623`: RF: refactoring of ``nlmeans`` to allow the selection our classic version and the blockwise version
* :ghissue:`3661`: CI: simplify cache, too many data was cached
* :ghissue:`3662`: Bump actions/checkout from 5 to 6 in the actions group
* :ghissue:`3552`: BF: Discards streamlines by size
* :ghissue:`3652`: NF:  Reduce default iteration counts and make level_iters configurable in motion correction
* :ghissue:`3618`: BF: manage empty file in dipy_slr cli to avoid enigmatic crash
* :ghissue:`3655`: CI: remove fetch-data job
* :ghissue:`3658`: Added interpolation parameter to dipy_apply_transform
* :ghissue:`3621`: filename for statefulsurface and statefultractogram cannot have period in them anymore
* :ghissue:`3648`: Revert split extension (for SFT and SFS)
* :ghissue:`3636`: Bug with use of where
* :ghissue:`3654`: RF: fix warnings introduced by the future Numpy version 2.4
* :ghissue:`3651`: RF: handle bingham tests warnings
* :ghissue:`3653`: RF: Fix imports in reconst
* :ghissue:`3640`: First interaction workflow doesn't work
* :ghissue:`3650`: BF: update first interaction Github action parameters
* :ghissue:`3649`: Bump the actions group with 2 updates
* :ghissue:`3638`: UnboundLocalError: local variable 'fits' referenced before assignment
* :ghissue:`3635`: BF: Fix CVXPY warning
* :ghissue:`3646`: [BF] Fix fwdti
* :ghissue:`3639`: fix: BUG: fix UnboundLocalError in _single_sf_to_bingham when no valid peaks found
* :ghissue:`3610`: NF: add dipy_fit_powermap workflows with its associated tests
* :ghissue:`2087`: Single-shell Free Water DTI (Object Oriented)
* :ghissue:`3634`: BF: expand requirements during its generation
* :ghissue:`3425`: NF: add FWDTI Workflow
* :ghissue:`2137`: Deep-learning-based registration example
* :ghissue:`3631`: RF: Fixed weird volumes instead of denoised volumes in Patch2Self 3
* :ghissue:`3633`: Patch2Self CLI provides wrong doc string for version
* :ghissue:`3539`: FOSR implementation in Python for tractometry
* :ghissue:`3629`: Bump actions/setup-python from 5 to 6 in the actions group
* :ghissue:`3625`: docs: remove NeuroFedora
* :ghissue:`3424`: NF: Automate requirement files
* :ghissue:`3624`: Bump the actions group with 3 updates
* :ghissue:`3605`: RF: Parallel `quantize_evecs`
* :ghissue:`3613`: BF: Allow `length` to work with float16 streamlines
* :ghissue:`3608`: Predicting from a fitted DTI model is broken?
* :ghissue:`3612`: BF: fix lower triangular bug introduced in #3563
* :ghissue:`3588`: In-house QP solver using numba for fitting MSMT
* :ghissue:`1617`: NF: added streamline clipping function to utils
* :ghissue:`3606`: RF: Address cvxpy 1.7.0 warnings.
* :ghissue:`3609`: Bump actions/first-interaction from 1 to 2 in the actions group
* :ghissue:`3551`: Shutting down the gitter live chat ?
* :ghissue:`1164`: Parallel quantize_evecs + PEP8
* :ghissue:`3124`: ENH: Add commentary on median otsu tutorial/change default parameters
* :ghissue:`3560`: Doc: explicit ``finalize_mask`` information in CLI tutorial
* :ghissue:`3602`: ENH: Adopt `pathlib` for workflows
* :ghissue:`3604`: RF: replace old LocalTracking by our new tracking interface
* :ghissue:`3506`: Make sure .trx is default everywhere
* :ghissue:`3587`: RF: from TRK to TRX as default file format for tracks
* :ghissue:`3603`: DOC: Fix workflows test utils parameter name in docstring
* :ghissue:`3601`: DOC: Record API changes after `pathlib` adoption
* :ghissue:`3593`: STYLE: Adopt `pathlib` for path manipulation
* :ghissue:`3599`: TEST: Restore removed test case in io workflows
* :ghissue:`3600`: MNT: Fix miscellaneous labeler regexes
* :ghissue:`3597`: STYLE: Miscellaneous style fixes
* :ghissue:`3598`: BF: Miscellaneous fixes to surfaces
* :ghissue:`3592`: STYLE: Adopt a unified logger across the code base
* :ghissue:`3596`: NF - Add DirectionGetter for Flocking Tractography
* :ghissue:`3429`: StatefulSurface - Class to handle surfaces
* :ghissue:`3595`: DOC: Remove default arguments from docstrings
* :ghissue:`3594`: STYLE: Miscellaneous style fixes
* :ghissue:`3513`: STYLE: Log message instead of printing orphan string
* :ghissue:`3591`: STYLE: Apply `ruff` manually to all files
* :ghissue:`3582`: NF: Add PR labeler workflow
* :ghissue:`3586`: MNT: Change issue template file extensions
* :ghissue:`3584`: MNT: Add GitHub issue templates
* :ghissue:`3583`: DOC: Change unused commit prefixes to some other more useful ones
* :ghissue:`3581`: SciPy deprecation of "disp" in optimizer
* :ghissue:`3556`: RF: allow the saving of S0 estimate for dti workflow
* :ghissue:`3497`: dipy_fit_dti does not return S0 estimate
* :ghissue:`3418`: Division by 0 warning
* :ghissue:`3563`: RF: Address some Zero division warnings
* :ghissue:`3352`: Rumba and multivoxel fit decorator
* :ghissue:`3565`: RF: use multi_voxel_fit for rumba
* :ghissue:`3537`: Remove autocrop from median_otsu
* :ghissue:`3541`: RF: Deprecate autocrop in median_otsu
* :ghissue:`2866`: arm64 test failure with numpy 1.24.2
* :ghissue:`3580`: TEST: uncomment and update test_cross
* :ghissue:`1776`: make it really easy for DiPy to call graspy functions
* :ghissue:`2269`: Allow dipy_fit_dti Workflow to Use Native Orientation of Provided Mask Image
* :ghissue:`2682`: DIPY Free-Water Corrected DTI (FA output quality)
* :ghissue:`2428`: dipy.align.reslice
* :ghissue:`2399`: fitting free water mapping out of iterations
* :ghissue:`2319`: Reconstruction with MSMT CSD example resulted in Nan values
* :ghissue:`2329`: Slice to volume registration
* :ghissue:`1974`: MAP-MRI optimization & validation errors
* :ghissue:`2612`: Mean Diffusivity turns out low in CSF when reconstructing using ReconstDtiFlow
* :ghissue:`687`: Refactor imaffine class structure.
* :ghissue:`706`: Thoughts about using the SyN algorithm
* :ghissue:`2184`: discussion: continuous integration using GPUs
* :ghissue:`1991`: [DISCUSSION] b-tensor encoding gradient table format
* :ghissue:`2186`: Pure-python implementation of boundary-based registration (BBR)?
* :ghissue:`1852`: Telemetry
* :ghissue:`2338`: Team DIPY Citations
* :ghissue:`2663`: Plotting tensors in Fury: issue with right-handed coordinate system?
* :ghissue:`3515`: RF: Improve `dipy_info` printed output
* :ghissue:`2850`: Orthogonal Tensor Parameter (Moment) Maps
* :ghissue:`1886`: NF - add the option to save the last point of streamlines
* :ghissue:`3562`: DOC: Add missing opening backtick to reference syntax.
* :ghissue:`3561`: STYLE: Make affine variable naming consistent
* :ghissue:`3382`: Check use of affine in `streamline_tools` example
* :ghissue:`3557`: DOC: fix streamline-tools tutorial by avoiding the use of identity affine
* :ghissue:`2473`: Add Patch2self in our denoising CLI tutorial
* :ghissue:`3559`: [RF]: Patch2self in denoising CLI tutorial
* :ghissue:`2695`: Replace CENIR multishell with HBN POD2 data
* :ghissue:`2728`: Do we have multi_processes method for streamline extraction
* :ghissue:`2848`: Noise estimation of T1 brain MR images
* :ghissue:`3500`: dipy_fit_csa does not use num_processes
* :ghissue:`3517`: `dipy_info` provides misleading message when no reference is provided
* :ghissue:`3555`: ENH: improve dipy_info message when no reference for some streamline files.
* :ghissue:`3554`: Doc: Fix typo in multiple tutorial
* :ghissue:`3413`: Tutorial Typos
* :ghissue:`3492`: BF: Peaks working with world coordinates.
* :ghissue:`1249`: Bias correction for local pca
* :ghissue:`823`: WIP: "Out-of-core" LiFE
* :ghissue:`3540`: Tractography with GFA as stopping criterion is not reproducible across runs
* :ghissue:`3546`: BF: Make `StoppingCriterion` reproducible for multi-thread execution
* :ghissue:`3545`: ENH: Add `StopingCriterion` reproducibility test
* :ghissue:`3548`: RF: fix typo in hcp fetcher function argument name
* :ghissue:`3549`: BF: Improves Cython enum management.
* :ghissue:`3507`: Extract b0 interface throws value error with HCP 7T (MGH) - subject 1007
* :ghissue:`3474`: Filenames missing in horizon for peaks objects
* :ghissue:`3520`: ENH: Opacity slider turned off on hide
* :ghissue:`3544`: ENH: Add `StopingCriterion` reproducibility test
* :ghissue:`3493`: NF: allow broadcasting in dipy_math
* :ghissue:`3488`: RF - changed min/max len from nbr pts to mm
* :ghissue:`3536`: FA latex formula does not show correctly on DTI tutorial
* :ghissue:`3538`: RF: Fixed the latex
* :ghissue:`3519`: ENH: Horizon peaks fname support
* :ghissue:`1404`: RF - DirectionGetter.get_direction function return
* :ghissue:`3453`: Inconistancy between documentation and implementation on dipy.reconst.dti.nlls_fit_tensor
* :ghissue:`3455`: Fix Bugs in #3453: Ensure Correct Weight Reshaping & Consistent Extra Output in iter_fit_tensor
* :ghissue:`3535`: CI: Ignore fork() warnings.
* :ghissue:`3501`: Probabilistic reference in docs seems incorrect
* :ghissue:`3336`: Simplify CIs
* :ghissue:`3528`: DOC: Changed documentation errors in dipy.sims.voxel
* :ghissue:`3533`: CI: introduce cached Data.
* :ghissue:`3531`: CI: Ignore specific cvxpy warnings to avoid CI failure.
* :ghissue:`2494`: Potential speed up for the data fetchers
* :ghissue:`3527`: BF: Search bar should come bigger in the center.
* :ghissue:`3530`: STYLE: Add additional emojis to first interaction message
* :ghissue:`3526`: Bump scientific-python/upload-nightly-action from 0.6.1 to 0.6.2 in the actions group
* :ghissue:`3521`: Division by zero when machine has a single CPU
* :ghissue:`3522`: FIX: Avoid division by zero on single-CPU systems (issue #3521)
* :ghissue:`3510`: [RF]: Saving the figure in the example.
* :ghissue:`3512`: STYLE: Call `warning` instead of the deprecated `warn` function
* :ghissue:`3514`: DOC: Miscellaneous doc improvements
* :ghissue:`3508`: New disco tracking tutorial not available in docs
* :ghissue:`3495`: BF: Fixing minor issue in dipy_classify_tissue dam option
* :ghissue:`3494`: publish wheels
* :ghissue:`3481`: UPCOMING:  Release 1.11.0
