What's Changed
- [MAINT] post-release by @Remi-Gau in #5999
- [ENH] Support pathlike objects for
cmapargument inplot_surf_roiby @jpaillard in #5981 - [BOT] update AUTHORS.rst and doc/changes/names.rst by @github-actions[bot] in #6003
- [FIX] Avoid using
_preprocess_datafunction from sklearn by @hndgzkn in #6000 - [MAINT] bump to sklearn 1.5.0 by @Remi-Gau in #5997
- [MAINT] Remove pull_request trigger from testing minimal workflow by @Remi-Gau in #6006
- [ENH] Improve error messages when Chrome is not installed with newer kaleido versions by @hndgzkn in #6004
- [MAINT] ignore ConvergenceWarnings in tests by @Remi-Gau in #6001
- [DEP] deprecations for 0.14.0 by @Remi-Gau in #5995
- [FIX] ensure
is_gil_enabledreturns a bool by @Remi-Gau in #6010 - [REF] refactor get_params by @Remi-Gau in #6002
- [ENH] allow feature selection to be done by specifying a number of features to select by @isha822 in #5863
- [REF] refactor existing benchmarks by @Remi-Gau in #6007
- [DOC] avoid showing matplotlib non-interactive warning in sphinx gallery by @Remi-Gau in #6008
- [MAINT] silence convergence warning by @Remi-Gau in #6012
- [DEP] remove new default in examples by @Remi-Gau in #6011
- [ENH] add public method to access fitted mask of GLM by @Remi-Gau in #6005
- [MAINT] Mark as thread unsafe the tests failing in parallel by @Remi-Gau in #6013
- chore: update pre-commit hooks by @pre-commit-ci[bot] in #6017
- [FIX] increase tolerance idempotent results for Searchlight by @Remi-Gau in #6016
- [FIX] allow local install with uv sync by @mathdugre in #6024
- [MAINT] Ignore sorting import doc/conf.py by @Remi-Gau in #6026
- [MAINT] less verbose log in one example by @Remi-Gau in #6050
- [MAINT] mark test as slow by @Remi-Gau in #6053
- [MISC] clean up TODOs and wrong version numbers by @Remi-Gau in #6019
- [ENH] test without aggressive garbage collection by @bpinsard in #6039
- [MAINT] Refactoring of nilearn.signals::standardize_signal by @mathdugre in #6054
- [MAINT] add #6039 gc removal to changelog and add Basile to CITATION.cff by @bpinsard in #6064
- [PERF] Add warnings in NiftiMapsMasker transform when resampling images by @pbarbarant in #6028
- [BOT] update AUTHORS.rst and doc/changes/names.rst by @github-actions[bot] in #6070
- [FIX] add month hash to ci cache key to fix pre-fetch and caching of datasets by @bpinsard in #6047
- [PERF] Try using GPU via CuPy/PyTorch arrays by @man-shu in #5958
- [ENH] Smoothing of surface data by @jyeatman in #3267
- [BOT] update AUTHORS.rst and doc/changes/names.rst by @github-actions[bot] in #6080
- [MAINT] refactor some tests for smoothing by @Remi-Gau in #6062
- [FIX] Make
nilearn.plotting.view_imgresample non-isotropic images by @michellewang in #6031 - [MAINT] Do not use MNI template image in tests for
view_imgby @michellewang in #6072 - [MAINT] Refactoring of nilearn.plotting.image.utils.load_anat by @mathdugre in #6079
- [DOC] adding plot_carpet example by @likeajumprope in #6065
- [BOT] update AUTHORS.rst and doc/changes/names.rst by @github-actions[bot] in #6086
- [MAINT] Add changelog badges in a comment to
latest.rstby @michellewang in #6084 - [MAINT] prefetch data to avoid refetching during doc build by @Remi-Gau in #6089
- [DOC] improve setup for pre-commit by @Remi-Gau in #6071
- [PERF] Parallel signal extraction for img_to_signals_labels by @pbarbarant in #6041
- [DOC] configure tox to easily run on all available pythons by @Remi-Gau in #6085
- [MAINT] reduce number of FutureWarning thrown when checking estimators by @Remi-Gau in #6087
- [DOC] Describe coef, intercept aggregation and predict in Decoder by @man-shu in #6076
- Bump actions/upload-artifact from 6 to 7 by @dependabot[bot] in #6104
- chore: update pre-commit hooks by @pre-commit-ci[bot] in #6099
- Bump actions/download-artifact from 7 to 8 by @dependabot[bot] in #6105
- [MAINT] use a non-yanked version of scipy by @Remi-Gau in #6091
- [DOC] document how to get a listing of the fixtures by @Remi-Gau in #6090
- [DOC] add examples for some functions by @Remi-Gau in #5976
- [DOC] add example for plot_img in the docstring by @likeajumprope in #6073
- [FIX] Use joblib's loky backend instead of threading by @pbarbarant in #6110
- [MAINT] A couple small fixes by @DimitriPapadopoulos in #6111
- [MAINT] compliance with scientific python by @Remi-Gau in #6095
- [ENH] add opacity slider on view_img by @Remi-Gau in #6107
- [MAINT] allow smoothing on surface for maskers and other 'estimators' by @Remi-Gau in #6083
- [MAINT] apply sourcery refactoring suggestions by @Remi-Gau in #6096
- [MAINT] use dual="auto" for LinearSVC by @Remi-Gau in #6058
- [MAINT] extract tests for non_parametric_inference and first_level_from_bids into separate modules by @Remi-Gau in #6114
- [MAINT] use dependency groups to install dependencies only used in development by @Remi-Gau in #6108
- [FIX] use pytest.warns instead of pytest.deprecated_call() by @Remi-Gau in #6129
- [ENH] Allow plot_<> functions to accept threshold in percentile by @emdupre in #6025
- [BOT] update AUTHORS.rst and doc/changes/names.rst by @github-actions[bot] in #6131
- [FIX] make sure crosshair is in mask in NiftiMasker reports by @Remi-Gau in #6043
- [ENH] pass extra arguments for estimator to Searchlight by @Remi-Gau in #6020
- [MAINT] update tox config to on several environments at once by @Remi-Gau in #6128
- [MAINT] update info dev team by @Remi-Gau in #6132
- [BOT] update AUTHORS.rst and doc/changes/names.rst by @github-actions[bot] in #6135
- [FIX] Do not display colorbar if data is single valued for
plot_roiby @hndgzkn in #6122 - [DOC] Add example to show how to fetch and plot with Templateflow by @jpaillard in #5968
- [FIX] runtime warning of no low-pass with cosine by @bpinsard in #6027
- [DOC] Add missing changelog for PR 6122 by @hndgzkn in #6138
- [FIX] add extra dependencies to checklink tox env by @Remi-Gau in #6136
- [MAINT] add more benchmarks by @Remi-Gau in #5590
- [ENH] use brainsprite for Nifti and NiftiLabel maskers reports by @Remi-Gau in #6037
- [FIX] Remove equality to cutoff value while thresholding by @hndgzkn in #6130
- [MAINT] remove duplicated checks by @Remi-Gau in #6140
- [ENH] pass extra parameters to embedded sklearn estimators by @Remi-Gau in #5641
- [FIX] Update min scikit-learn version to 1.7.1 to use HTML representation from scikit-learn by @hndgzkn in #6142
- [MAINT] run parallel thread tests on plotting by @Remi-Gau in #5987
- [FIX] fix typo by @Remi-Gau in #6146
- [MAINT] handle all FutureWarnings during tests by @Remi-Gau in #5942
- [FIX] bump versions used for kaleido and plotly by @Remi-Gau in #5866
- [MAINT] update minimum version tested by @Remi-Gau in #6147
- [MAINT] add removed TODO by @Remi-Gau in #6155
- [MAINT] ignore more generic virtual env folders by @Remi-Gau in #6154
- [MAINT] fix standardize type in standardize_signal by @Remi-Gau in #6156
- [MAINT] set scheduled workflows to run quarterly by @Remi-Gau in #6151
- Bump codecov/codecov-action from 5 to 6 by @dependabot[bot] in #6162
- [FIX] Do not copy mask img's header in masking.unmask by @tsalo in #6157
- [MAINT] only test on oldest and latest python in PR by @Remi-Gau in #6168
- [MAINT] shorten tests by @Remi-Gau in #6159
- chore: update pre-commit hooks by @pre-commit-ci[bot] in #6169
- [ENH] Refactor reporting mixin to a common interface by @hndgzkn in #6022
- [DOC] update docstring first_level_from_bids by @Remi-Gau in #6171
- [FIX] link redirect by @Remi-Gau in #6178
- [REF] centralize assets by @Remi-Gau in #6174
- [ENH] Make times and durations readable by @rohan3412 in #5990
- [DOC] update release protocol for prereleases by @Remi-Gau in #6183
- [ENH] add
node_labelsparameter toview_connectomeby @Rishikakaps in #6153 - [BOT] update AUTHORS.rst and doc/changes/names.rst by @github-actions[bot] in #6185
- [ENH] Add niivue as rendering engine for
view_surfby @alexisthual in #3729 - [BOT] update AUTHORS.rst and doc/changes/names.rst by @github-actions[bot] in #6195
- [MAINT] mark tests as thread unsafe by @Remi-Gau in #6187
- [MAINT] bump requests and jinja due to vulnerabilities by @Remi-Gau in #6199
- [FIX] fix extra contour parameter in tests by @Remi-Gau in #6198
- [DOC] Add section on automated contributions by @emdupre in #6101
- [STY] use lower case 'default' in doc strings by @Remi-Gau in #6204
- [ENH] Improve error message when missing regressors in FirstlevelGLM for t contrasts by @Remi-Gau in #4076
- [MAINT] add type to fill_doc by @Remi-Gau in #6202
- [MAINT] add some type annotation to plot_img by @Remi-Gau in #6200
- [DOC] unify estimator documentation accept scikit-learn compatible object by @XichunXu in #6181
- [BOT] update AUTHORS.rst and doc/changes/names.rst by @github-actions[bot] in #6207
- [MAINT] pin JS dependencies by @Remi-Gau in #6208
- [MAINT] run single_process tests separately when testing compatibility between dependencies by @Remi-Gau in #6210
- [DOC] add check box for use of LLM tools in PR template by @Remi-Gau in #6203
- [MAINT] mark tests as parallel thread unsafe by @Remi-Gau in #6212
- [ENH] add type annotation and further checks to math_img by @Remi-Gau in #6173
- [MAINT] add types to some variables by @Remi-Gau in #6216
- [ENH] Add agents and claude md by @Remi-Gau in #6176
- [MAINT] add 'needs triage' label to new issues by @Remi-Gau in #6218
- [DOC] fix removed reference by @Remi-Gau in #6224
- [MAINT] test html output by @Remi-Gau in #6179
- [REF] use same estimator validation for Searchlight and Decoders by @Remi-Gau in #6215
- [DOC] Update Decoder nested CV example by @michellewang in #6059
- [STY] standardize javascript code by @Remi-Gau in #6205
- [MAINT] update plotly-gl3d-latest.min.js by @Remi-Gau in #6228
- [MAINT] add baseline figures for freesurfer data by @Remi-Gau in #6230
- [FIX] fix freesurfer vertices order by @Remi-Gau in #6127
- [DOC] Update change log fixing freesurfer vertices order by @hndgzkn in #6235
- [FIX] handle future warning from dependencies by @Remi-Gau in #6226
- [ENH] Refactor reporting glm to reuse
nilearn.reporting.mixin.ReportMixinby @hndgzkn in #6172 - [FIX] deprecate GLM fitted attributes with no trailing underscore by @Remi-Gau in #6236
- [DOC] update changelog for deprecation of residuals, predicted and r_square by @Remi-Gau in #6238
- [FIX] fix issues related to image with a single or no map / label by @Remi-Gau in #5908
- [MAINT] add some type annotation to several of the plotting functions by @Remi-Gau in #6217
- [MAINT] reduce number of warnings raised in tests by @Remi-Gau in #6242
- [MAINT] add some type annotation to clean_img, clean, unmask by @Remi-Gau in #6239
- [MAINT] raise error when maps or labels images contain no map or label after resampling by @Remi-Gau in #6240
- [FIX] Add the option confounds_strategy=None in first_level_from_bids by @pbarbarant in #6247
- [DOC] Add possibility of adding user-defined estimator without cv to searchlight by @mtorabi59 in #6056
- [MAINT] fix plotting tests running in non-plotting tox environments by @Remi-Gau in #6237
- [ENH] implement allow_overlap in SurfaceMapsMasker by @Remi-Gau in #6211
- [MAINT] update datasets and their documentation by @Remi-Gau in #6246
- [FIX] Fix missing subjects in ADHD dataset phenotypic data by @hndgzkn in #6250
- [FIX] fix order parameters glm generate_report by @Remi-Gau in #6249
- [FIX] Wrong ROI contour colors by @hndgzkn in #6245
- fix encoding by @Remi-Gau in #6256
- [FIX] fix flaky tests in decomposition by @Remi-Gau in #6244
- [FIX] Resizing of reports when viewed in browser by @hndgzkn in #6234
- [FIX] make warning filtering less agressive by @Remi-Gau in #6252
- [ENH] add more type annottion to image functions by @Remi-Gau in #6251
- [FIX] Improve GLM input checks and ensure FirstLevelModel mask is based on all runs by @Remi-Gau in #6254
- [MAINT] remove flaky marker by @Remi-Gau in #6261
- [DOC] add Examples sections for 4 utility functions by @laurapiro17 in #6259
- [BOT] update AUTHORS.rst and doc/changes/names.rst by @github-actions[bot] in #6263
- [MAINT] Add a check for
cov_estimatorto ensure the user input is a valid sklearn estimator by @htwangtw in #6074 - [DOC] add Examples sections for 5 GLM utility functions by @laurapiro17 in #6262
- [REF] refactor fit_transform ConnectivityMeasure by @Remi-Gau in #6264
- [FIX] ensure image estimator can fit and preserve several dtype by @Remi-Gau in #5511
- [DOC] Fix typos and grammar in the fMRI decoding tutorial by @KoseiTanno in #6269
- [FIX] forbid bool as dtype for estimators by @Remi-Gau in #6271
- [FIX] ensure all maskers
inverse transformaccepts array-like (pandas, polars dataframe) by @Remi-Gau in #6175 - [FIX] fix typos and grammatical errors in examples by @Remi-Gau in #6270
- [ENH] Ensure decoder and FREMClassifier are indempotent by @Remi-Gau in #6268
- [DOC] Add mini example for threshold_img by @ferponcem in #6280
- [BOT] update AUTHORS.rst and doc/changes/names.rst by @github-actions[bot] in #6289
- [DOC] reorganize sections in doc strings to match numpydoc standard by @Remi-Gau in #6284
- [DOC] Add example for
reorder_imgby @mibur1 in #6282 - [DOC] Add example to largest_connected_component_img by @BastienCagna in #6283
- [BOT] update AUTHORS.rst and doc/changes/names.rst by @github-actions[bot] in #6292
- [FIX] throw warning when NiftiLabelMasker resamples images at transform time by @Remi-Gau in #6276
- [MAINT] slightly increase tolerance of SurfaceLabelsMasker html report test by @Remi-Gau in #6298
- [DOC] Add example for
resample_imgandresample_to_imgby @mibur1 in #6296 - [DOC] add examples for spm_hrf functions by @Remi-Gau in #6281
- [DOC] correct install command for docs by @mibur1 in #6305
- [FIX] Update copybutton_prompt conf by @emdupre in #6301
- [MAINT] rename typing module by @Remi-Gau in #6288
- [DOC] Add example to
check_niimg,check_niimg_3dandcheck_niimg_4dby @hndgzkn in #6286 - [DOC] Minimal example for the vec_to_sym_matrix function by @ferponcem in #6295
- [DOC] Add example to
threshold_stat_mapby @hndgzkn in #6297 - [DOC] Add example to
smooth_imgby @hndgzkn in #6302 - [DOC] minimal example for copy_img function by @RDoerfel in #6299
- [BOT] update AUTHORS.rst and doc/changes/names.rst by @github-actions[bot] in #6309
- [DOC] add example for concat_imgs by @ferponcem in #6308
- [DOC] Minimal example for the sym_matrix_to_vec function by @ferponcem in #6300
- [ENH] test reports with brainsprite by @Remi-Gau in #6267
- [DOC] Doc get bids files example by @gamorosino in #6317
- [BOT] update AUTHORS.rst and doc/changes/names.rst by @github-actions[bot] in #6321
- [MAINT] do not user the nightly release of some of our dependencies for free-threaded tests by @Remi-Gau in #6307
- [ENH] use bids derivative masks when generating models with first_level_from_bids by @Remi-Gau in #6260
- [DOC] Add example to signals_to_img_labels by @hndgzkn in #6306
- [ENH] add documentation make_first_level_design_matrix by @marco7877 in #6320
- [BOT] update AUTHORS.rst and doc/changes/names.rst by @github-actions[bot] in #6330
- [DOC] add example all_estimators by @aliswh in #6324
- [DOC] add example to utils.all_displays by @aliswh in #6325
- [FIX] reduce number of decimals in output doc test by @Remi-Gau in #6331
- [DOC] use matplotlib directive to show figure in plotting example docstring section by @Remi-Gau in #6310
- [DOC] Remove indent in image.py by @emdupre in #6323
- [DOC] Add example for new_img_like by @hndgzkn in #6319
- [DOC] add example for
unmaskby @mibur1 in #6327 - [Maint] Add str to threshold docs; remove unnecessary TYPE_CHECKING block for Nifti1Image by @mcsitter in #6333
- [DOC] add example for compute_background_mask by @marco7877 in #6303
- [DOC] added example for intersect_masks by @mbedini in #6318
- [BOT] update AUTHORS.rst and doc/changes/names.rst by @github-actions[bot] in #6344
- [MAINT] Add return type annotations to public functions in nilearn.image by @Remi-Gau in #6338
- [TEST] [DOC] More tests for crop_img + examples in docstring by @thibaultdvx in #6316
- [DOC] add an example for clean_img by @nirmitee-mulay in #6312
- [BOT] update AUTHORS.rst and doc/changes/names.rst by @github-actions[bot] in #6349
- [MAINT] Add return type annotations to public functions in nilearn.masking by @Remi-Gau in #6345
- [REF] move extract_data by @Remi-Gau in #6351
- [MAINT] Add type annotations to functions in nilearn.signal and nilearn.surface by @Remi-Gau in #6353
- [MAINT] set plotly as separate optional dependencies by @Remi-Gau in #6352
- [MAINT] hoist surface classes to top of module by @Remi-Gau in #6354
- [FIX] fix name report surface maps masker by @Remi-Gau in #6356
- [MAINT] skip sklearn 1.9.0 to avoid sluggish HTML repr of estimators with many features by @Remi-Gau in #6355
- [DOC] added jupyterlite option in the documentation by @HugoDelhaye in #6033
- [BOT] update AUTHORS.rst and doc/changes/names.rst by @github-actions[bot] in #6363
- [FIX] fix broken links by @Remi-Gau in #6361
- Bump actions/checkout from 6 to 7 by @dependabot[bot] in #6364
- Bump actions/cache from 5 to 6 by @dependabot[bot] in #6366
- Bump codecov/codecov-action from 6 to 7 by @dependabot[bot] in #6367
- Bump actions/upload-artifact from 6 to 7 by @dependabot[bot] in #6365
- [REL] 0.14.0 by @Remi-Gau in #6347
- [FIX] fix minor issue in changelog by @Remi-Gau in #6371
New Contributors
- @jpaillard made their first contribution in #5981
- @jyeatman made their first contribution in #3267
- @likeajumprope made their first contribution in #6065
- @Rishikakaps made their first contribution in #6153
- @XichunXu made their first contribution in #6181
- @laurapiro17 made their first contribution in #6259
- @KoseiTanno made their first contribution in #6269
- @ferponcem made their first contribution in #6280
- @BastienCagna made their first contribution in #6283
- @RDoerfel made their first contribution in #6299
- @gamorosino made their first contribution in #6317
- @marco7877 made their first contribution in #6320
- @aliswh made their first contribution in #6324
- @mbedini made their first contribution in #6318
- @thibaultdvx made their first contribution in #6316
- @nirmitee-mulay made their first contribution in #6312
- @HugoDelhaye made their first contribution in #6033
Full Changelog: 0.13.1...0.14.0