Releases: nilearn/nilearn
0.11.0
Released November 2024
List of pull requests
- [MAINT] Post release 0.10.4 by @Remi-Gau in #4366
- [MAINT] clean up makefiles and allow color in CLI in github workflows by @Remi-Gau in #4370
- [DOC] update release procotol by @Remi-Gau in #4371
- Change "resting state" to "movie watching" in compare means example by @man-shu in #4373
- [DOC] Mention in style guide the meaning of trailing underscore for attributes by @Remi-Gau in #4374
- [REF] Refactor CSS and html masker reports by @Remi-Gau in #4372
- [BOT] update pre-commit hooks by @github-actions in #4381
- [FIX] skip problematic plotting in doc build by @Remi-Gau in #4383
- [ENH] enhance
save_glm_to_bids
outputs by @Remi-Gau in #4375 - [MAINT] change schedule of GH workflows by @Remi-Gau in #4386
- [MAINT] monitor duration of doc build by @Remi-Gau in #4387
- [MAINT] pre-download data on full doc build by @Remi-Gau in #4390
- [FIX] fix flake8 bugbear errors by @Remi-Gau in #4384
- [MAINT] improve workflow to test on nightly dependencies by @Remi-Gau in #4364
- [MAINT] update precommit configuration by @Remi-Gau in #4391
- [MAINT] update parameters for
scipy.sparse.linalg.cg
by @Remi-Gau in #4394 - [FIX] remove, implement or better document "unused" arguments by @Remi-Gau in #4273
- [MAINT] Update circle-ci trigger-hosting by @Remi-Gau in #4402
- [REF] refactor style checks in CI by @Remi-Gau in #4406
- [MAINT] test on several macos versions by @Remi-Gau in #4405
- [DOC] Fix typos found by codespell by @DimitriPapadopoulos in #4410
- FIX failing
load_confound
test related to standardisation by @htwangtw in #4411 - add width input to view_img() by @alexsayal in #4416
- [BOT] update AUTHORS.rst and doc/changes/names.rst by @github-actions in #4418
- [FIX] Raise error if unknown kwargs are given to
first_level_from_bids
by @michellewang in #4414 - [FIX] Refactor design matrix and contrast formula for the two-sample T-test example by @YCHuang0610 in #4407
- [BOT] update AUTHORS.rst and doc/changes/names.rst by @github-actions in #4422
- [MAINT] only on use macOS-latest by @Remi-Gau in #4424
- [MAINT] pacify codepspell by @Remi-Gau in #4430
- [ENH] add plotting functions to the experimental surface module by @jeromedockes in #4235
- [ENH] Adapt FirstLevelModel to work with surface data objects from new API by @ymzayek in #4126
- Copy input image header to the output by default by @man-shu in #4397
- Example to demonstrate
copy_header_from
inmath_img
by @man-shu in #4392 - [STY] apply black to files no longer invovled in other pull requests by @Remi-Gau in #4433
- [ENH] Add warning for future change of the default of
force_resample
to True by @ajoshiusc in #4412 - [MAINT] remove some try/except on imports by @Remi-Gau in #4440
- [ENH] add footer to all masker reports by @Remi-Gau in #4307
- [ENH] expand surface plotting with new surface object by @Remi-Gau in #4431
- [ENH] update example to show parametric modulation by @Remi-Gau in #4436
- [MAINT] add force_resample where missing by @Remi-Gau in #4441
- [DOC] add ...CV in logistic estimator name by @man-shu in #4438
- [BOT] update pre-commit hooks by @github-actions in #4447
- [REF] add force_resample default to cached calls by @Remi-Gau in #4450
- [ENH] add report for SurfaceMasker by @Remi-Gau in #4432
- [MAINT] remove duplicate code by @Remi-Gau in #4449
- [DOC] Fix deploy doc on main by @Remi-Gau in #4455
- [REF] minor refactor of get_cmap and matplotlib version-handling by @Remi-Gau in #4458
- [REF] refactor report templates by @Remi-Gau in #4460
- [FIX] throw warning a masker
generate_report
is called without matplotlib by @Remi-Gau in #4457 - [FIX] use string as label names in example involving the new surface based destrieux atlas by @Remi-Gau in #4462
- [REF] refactor FLM fitting by @Remi-Gau in #4461
- [MAINT] for monitoring of duration of CI only plot doc build on main (full builds) by @Remi-Gau in #4463
- [MAINT] rename
tr
variable - private occurences by @Remi-Gau in #4468 - [ENH] Replace
tr
byt_r
in HRF generating functions and examples by @Remi-Gau in #4470 - [FIX] pacify ruff warning about numpy 2 by @Remi-Gau in #4477
- [FIX] coerce loaded data from NKI to float in examples by @Remi-Gau in #4475
- [ENH] add function to plot regressor correlation matrix by @Remi-Gau in #4467
- [ENH] use nilearn
logger.log
function instead ofprint
orsys.stderr.write
by @Remi-Gau in #4469 - [FIX] change creation of region_names and add test by @mtorabi59 in #4360
- [FIX] fix trigger hosting of doc of PR on circle-ci by @Remi-Gau in #4481
- [FIX] Change default
ratio
value in glover to fit canonical Glover HRF (1999) by @const7 in #4452 - Update second_level.py by @arovai in #4483
- [MAINT] use pytest-reporter-html1 to create test reports by @Remi-Gau in #4444
- Revert "[MAINT] use pytest-reporter-html1 to create test reports" by @Remi-Gau in #4485
- [BOT] update pre-commit hooks by @github-actions in #4487
- [FIX] host doc from PR on Circle-CI by @Remi-Gau in #4494
- Explain Decoder's default cross-validation scheme by @man-shu in #4491
- Change default
clustering_percentile
in_BaseDecoder
docstring by @man-shu in #4489 - [BOT] update pre-commit hooks by @github-actions in #4499
- [DOC] Small correction on instructions for setting up environment by @kimsin98 in #4459
- [API] renamed
ax
parameter for consistency by @muddi900 in #4476 - [BOT] update AUTHORS.rst and doc/changes/names.rst by @github-actions in #4504
- [FIX] Reduce
dtype
of mask fromint64
toint8
inimage.binarize_img
by @psadil in #4502 - [FIX] force np.float64 format for second level matrix dataframe by @Remi-Gau in #4503
- [MAINT] Finish adding tests for
_utils.data_gen
by @kimsin98 in #4465 - [REF] refactor nibabel import by @Remi-Gau in #4506
- [ENH] improve I/O for SurfaceImage by @Remi-Gau in #4446
- [FIX] revert save analyze for SPM auditory data by @Remi-Gau in #4508
- [MAINT] use pytest-reporter-html1 to create test reports by @Remi-Gau in #4486
- [BOT] update pre-commit hooks by @github-actions in #4514
- [ENH] Change Butterworth filtering in nilearn.signal.clean to use 'sos' output by @Remi-Gau in #4510
- [STY] apply black to remaining example by @Remi-Gau in #4518
- [STY] apply black to remaining files in plotting subpackage by @Remi-Gau in #4520
- [STY] apply black to surface subpackage by @Remi-Gau in #4519
- [REF] remove obsolete try import by @Remi-Gau in #4528
- [MAINT] Handle 2 numpy and matplolib deprecation warnings by @Remi-Gau in #4522
- [MAINT] raise stacklevel of
copy_header
warning ...
0.10.4
Released April 2024
HIGHLIGHTS
-
Use the appropriate HTML templates for nilearn.maskers.MultiNiftiMapsMasker and nilearn.maskers.MultiNiftiLabelsMasker reports that would lead to empty reports for MultiNiftiMapsMasker (#4310 by Rémi Gau).
-
Fix color bar handling with color map with only 1 level (#4255 by Rémi Gau).
-
Improve colorbar size and labels in mosaic display (#4284 by Rémi Gau).
-
Remove unused **kwargs from nilearn.plotting.view_img and nilearn.plotting.plot_surf (#4270 by Rémi Gau).
Fixes
-
Fix plotting of carpet plot due to a change in the coming version of matplolib (3.9.0) (#4279 by Rémi Gau).
-
Fix errant warning when using stat_type in nilearn.glm.compute_contrast (#4257 by Eric Larson).
-
Fix when thresholding is applied to images by GLM reports (#4258 by Rémi Gau).
-
Use the appropriate HTML templates for nilearn.maskers.MultiNiftiMapsMasker and nilearn.maskers.MultiNiftiLabelsMasker reports that would lead to empty reports for MultiNiftiMapsMasker (#4310 by Rémi Gau).
-
Make masker report tables horizontally scrollable (#4308 by Rémi Gau).-
-
Masker reports tables do not overlap with report image (#4308 by Rémi Gau).
-
Fix color bar handling with color map with only 1 level (#4255 by Rémi Gau).
-
Ensure that region_names_ can be generated by nilearn.maskers.NiftiSpheresMasker.transform_single_imgs for deterministic atlases that use floats or non-consecutive values as region_ids whether they include background in their labels or not (#4274 by Rémi Gau).
-
Ensure that nilearn.interfaces.bids.save_glm_to_bids serializes numpy arrays to list used as GLM parameters before saving them to JSON (#4325 by Rémi Gau).
-
Check that the view parameter in surface plotting functions is a pair of int or float when it is not a string (#4297 by Rémi Gau).
-
Fix positions of the markers on the images on the sphere masker reports (#4285 by Rémi Gau).
-
Fix cut position in nifti maps maskers to match displayed map maximum (#4304 by Rémi Gau).
-
Make sure that nilearn.maskers.NiftiSpheresMasker reports displays properly when it contains only 1 sphere (#4269 by Rémi Gau).
-
Miscellaneous fixes in GLM reports (only display FIR delay if FIR is used, display color bar “Z score” legend…) (#4266 by Rémi Gau).
-
Fix minor typos in documentation (glossary and connectivity/parcellating) (#4343 by Florent Pollet).
-
Update minor information on the Code of Conduct page (#4318 and #4320 by Himanshu Aggarwal).
Enhancements
-
Add an avg_method parameter to nilearn.plotting.plot_surf_stat_map (#4298 by Rémi Gau).
-
Advertise nilearn’s in built globbing capability in an example (#4334 by Himanshu Aggarwal).
Changes
-
Throw warnings when passing parameters to surface plotting functions that are not used by the plotly engine (#4298 by Rémi Gau).
-
Improve colorbar size and labels in mosaic display (#4284 by Rémi Gau).
-
Change the colormap to gray for the background image in the nilearn.maskers.NiftiSpheresMasker (#4269 by Rémi Gau).
-
Remove unused **kwargs from nilearn.plotting.view_img and nilearn.plotting.plot_surf (#4270 by Rémi Gau).
-
Use red to blue color map in the GLM reports (#4266 by Rémi Gau).
-
nilearn.maskers.NiftiSpheresMasker will throw warnings if the labels passed to it is not a list of str, or if the number of items in the list of labels does not match the number of regions in the label image (#4274 by Rémi Gau).
-
Copy headers from user-specified image to the result of nilearn.image.math_img (#4337 by Himanshu Aggarwal).
-
Render the description of the templates, atlases and datasets of the nilearn.datasets as part of the documentation (#4232 by Rémi Gau).
-
Render examples of GLM and masker reports as part of the documentation (#4267 and #4295 by Rémi Gau).
-
HTML, CSS are now linted using prettier. (#4302, by Rémi Gau).
List of pull requests
- [MAINT] Post release 0.10.3 by @Remi-Gau in #4246
- [MAINT] Refactor test reporting by @Remi-Gau in #4247
- [MAINT] remove date from copyright by @Remi-Gau in #4249
- [FIX] numpy 2 compatibility by @Remi-Gau in #4251
- [DOC] Add datasets description to the documentation by @Remi-Gau in #4232
- [FIX] Replace remaining
contrast_type
bystat_type
by @larsoner in https://github.com/nilearn/nil...
0.10.3
Released January 2024
HIGHLIGHTS
Warning
Support for python 3.7 has been dropped. We recommend moving to python >= 3.11.
Minimum supported versions of packages have been bumped up:
- Numpy – v1.19.0
- SciPy – v1.8.0
- Scikit-learn – v1.0.0
- Nibabel – v4.0.0
- Pandas – v1.1.5
- Joblib – v1.0.0
-
API Allow passing arguments to first_level_from_bids to build first level models that include specific set of confounds by relying on the strategies from load_confounds (#4103 by Rémi Gau).
-
Support passing t and F contrasts to compute_contrast that that have fewer columns than the number of estimated parameters. Remaining columns are padded with zero (#4067 by Rémi Gau).
-
NiftiSpheresMasker now has generate_report method (#3102 by Yasmin Mzayek and Nicolas Gensollen).
-
Update the CompCor strategy in load_confounds and load_confounds_strategy to support fmriprep 21.x series and above. (#3285 by Hao-Ting Wang).
-
Allow setting vmin in plot_glass_brain and plot_stat_map (#3993 by Michelle Wang).
-
When plotting thresholded statistical maps with a colorbar, the threshold value(s) will now be displayed as tick labels on the colorbar (##2833 by Nicolas Gensollen).
-
Combine GLM examples plot_fixed_effect and plot_fiac_analysis into a a single example plot_two_runs_model (#3191 by Taylor Salo and Rémi Gau).
NEW
- The temp_file_lifetime parameter of interactive plots’ open_in_browser method is deprecated and has no effect (#4180 by Jerome Dockes)..
Fixes
-
MultiNiftiMasker can now call generate_report which will generate a report for the first subject in the list of subjects (#4001 by Yasmin Mzayek).
-
Make sure that all atlases and datasets fetchers return a description (#4215 Rémi Gau).
-
Update the CompCor strategy in load_confounds and load_confounds_strategy to support fmriprep 21.x series and above. (#3285 by Hao-Ting Wang).
-
Fix SimpleRegressionResults to accommodate for the lack of a model attribute (#4071 Rémi Gau)
-
clean_img can now use kwargs clean__sample_mask argument to correctly reshape the nifti image to the dimensions of the mask in the output (#4051 by Mia Zwally).
-
Fix plotting of an image with color bar when maximum value is exactly zero (#4204 by Rémi Gau).
-
Code Fix PSC normalisation method applied by standardize_signal in signal (#4116 by Hao-Ting Wang and Yasmin Mzayek).
-
Fixed inheritance of decoder classes to keep compatibility with scikit-learn>v1.3 (#4188 by Yasmin Mzayek).
-
Make sure that all the fetchers for atlas and func from nilearn.datasets return a sklearn.utils.Bunch. Add new behavior to fetch_language_localizer_demo_dataset to return output as Bunch. This behavior will become the default in version 0.13.0 (#4233 by Rémi Gau).
Enhancements
-
NiftiSpheresMasker now has generate_report method (#3102 by Yasmin Mzayek and Nicolas Gensollen).
-
Allow passing Pandas Series of image filenames to SecondLevelModel (#4070 by Rémi Gau).
-
Allow passing arguments to first_level_from_bids to build first level models that include specific set of confounds by relying on the strategies from load_confounds (#4103 by Rémi Gau).
-
Support passing t and F contrasts to compute_contrast that that have fewer columns than the number of estimated parameters. Remaining columns are padded with zero (#4067 by Rémi Gau).
-
Multi-subject maskers’ generate_report method no longer fails with 5D data but instead shows report of first subject. User can index input list to show report for different subjects (#3935 by Yasmin Mzayek).
-
Allow global_signal parameter in load_confounds_strategy in denoise_strategy='compcor' (#4225 by Hao-Ting Wang).
-
Add two_sided option for binarize_img (#4121 by Steven Meisler).
-
generate_report now uses appropriate cut coordinates when functional image is provided (#4099 by Yasmin Mzayek and Nicolas Gensollen).
-
Mention the classification type (all-vs-one) in Decoding of a dataset after GLM fit for signal extraction (#4122 by Tamer Gezici).
-
Add backslash to homogenize [Parcellations](https://nilearn.github.io/dev/modules/generated/nilearn.regions....
0.10.2
Released September 2023
HIGHLIGHTS
- Volume plotting functions like
plotting.plot_img
now have an optionalradiological
parameter, defaulting toFalse
. IfTrue
, this will invert the x-axis andL
andR
annotations to confirm to radiological conventional view.. - Update Decoder objects to use the more efficient
LogisticRegressionCV
. - Add
LassoCV
as a new estimator option for Decoder objects - Add
vmin
andsymmetric_cbar
arguments tonilearn.plotting.plot_img_on_surf
. - Improve
contrasts
allowing fixed effects on F contrasts - New experimental surface API to facilitate working with surface data in downstream surface-based analyses. We provide this API as a nilearn.experimental.surface module as it is still incomplete and subject to change without a deprecation cycle..
NEW
- Volume plotting functions like
plotting.plot_img
now have an optionalradiological
parameter, defaulting toFalse
. IfTrue
, this will invert the x-axis andL
andR
annotations to confirm to radiological conventional view.. - New experimental surface API to facilitate working with surface data in downstream surface-based analyses. We provide this API as a nilearn.experimental.surface module as it is still incomplete and subject to change without a deprecation cycle..
Fixes
- Fix bug in method
transform_imgs
ofmaskers.MultiNiftiMapsMasker
andmaskers.MultiNiftiLabelsMasker
that would raise an error if a list ofsample_mask
was specified tofit_transform
. - Fix bug in
nilearn.plotting.surf_plotting._plot_surf_matplotlib
that would make vertices transparent when saving in PDF or SVG format. - Fix bug that would prevent using
symmetric_cmap=True
or theavg_method
argument withplotting.plot_surf_roi
. - Fixes a bug that would lead to an error when loading a fsaverage surface while relying on numpy >= 1.24.x.
- Fix bug that would prevent loading the confounds of a gifti file in actual fmriprep datasets.
- Fix bug that prevented using dataframes as input for second level GLM when computing contrasts.
- Fix bug in
glm.first_level.first_level_from_bids
that returned no confound files if the corresponding bold files contained derivatives BIDS entities. - Fix bug in
glm.first_level.first_level_from_bids
that would throw a warning aboutslice_time_ref
not being provided even when it was. - Fix bug where the
cv_params_
attribute of fitter Decoder objects sometimes had missing entries ifgrid_param
is a sequence of dicts with different keys. - Make the
nilearn.interfaces.fmriprep.load_confounds
confounds file selection more generic. - Change default figure sizes to prevent titles from overlapping figure content
- Relax the
nilearn.interfaces.fmriprep.load_confounds
confounds selection oncosine
as not all confound files contained the variables. - Fix
pathlib.Path
not being counted as Niimg-like object inimage.new_img_like
. - Fix
fit_transform
behavior to match whenfit
method is passed image data - Allow using both vmin and threshold with "plotly" engine to be consistent with "matplotlib" behavior
- Set edgecolors to be the same as facecolors in
plotting.plot_surf_contours
so that ROI contours are rendered clearly - Refactor deprecation of behavior of
datasets.fetch_atlas_craddock_2012
,datasets.fetch_atlas_smith_2009
anddatasets.fetch_atlas_basc_multiscale_2015
fetchers including using API consistentmaps
key
Enhancements
- Add cross-reference links to type definitions in public surface functions.
- Update Decoder objects to use the more efficient
LogisticRegressionCV
. - Throw warning in
glm.first_level.first_level_from_bids
when using event.tsv files with no trial type column. - Make return key names in the description file of destrieux surface consistent with
datasets.fetch_atlas_surf_destrieux
. - Add
LassoCV
as a new estimator option for Decoder objects - Add
vmin
andsymmetric_cbar
arguments tonilearn.plotting.plot_img_on_surf
. - Improve
generate_report
method of maskers by allowing users to pass a cmap argument for plotting image - Improve
contrasts
allowing fixed effects on F contrasts
Changes
- Validate the content of events files before plotting them.
nilearn.glm.first_level.experimental_paradigm.check_events
will now throw a warning if some events have a 0 second duration and will throw an error if an event hasNaN
onset or duration.- Removed old files and test code from deprecated datasets COBRE and NYU resting state.
- PEP8 and isort compliance extended to the whole nilearn codebase..
- Finish applying black formatting to most of the codebase..
- Empty region signals resulting from applying
mask_img
inmaskers.NiftiLabelsMasker
will no longer be kept in release 0.15. Meanwhile, usekeep_masked_labels
parameter when initializing themaskers.NiftiLabelsMasker
object to enable/disable this behavior.. - Empty region signals resulting from applying
mask_img
inmaskers.NiftiMapsMasker
will no longer be kept in release 0.15. Meanwhile, usekeep_masked_maps
parameter when initializing themaskers.NiftiMapsMasker
object to enable/disable this behavior.. - Removed mention of license in "header".
- Configure plots in example gallery for better rendering
- Make one_mesh_info and full_brain_info into private functions _one_mesh_info and _full_brain_info
- Refactor error raising tests using context managers
- Added warning to deprecate
darkness
insurf_plotting._compute_facecolors_matplotlib
andhtml_surface._get_vertexcolor
- Replace skipped doctests with default code-blocks
- Move the
~nilearn.plotting.html_surface._mix_colormaps
tocm.py
innilearn.plotting
- Remove deprecation decorator from
~nilearn.glm.regression
- Expose
standardize
inplotting.plot_carpet
andconnectome.ConnectivityMeasure
to handle "zscore" deprecation. - Example :ref:
sphx_glr_auto_examples_01_plotting_plot_prob_atlas.py
is shortened to speed up build time
List of pull requests
- Post release 0.10.1 by @ymzayek in #3730
- [MAINT] Format nilearn/plotting: apply isort and fix flake8 errors by @Remi-Gau in #3648
- [BOT] update pre-commit hooks by @github-actions in #3731
- [BOT] update pre-commit hooks by @github-actions in #3734
- [FIX] Missing values in
Decoder.cv_params_
whenparam_grid
is a list of dicts with different keys by @michellewang in #3733 - Correcting typo in the "load_confounds_strategy" function ("scrubbing") by @jonasmago in #3738
- [DOC] Fix broken doc build by @ymzayek in #3744
- [MAINT] Clean up remaining files from deprecated datasets (
cobre
,nyu
) by @michellewang in #3743 - [ENH] Use LogisticRegressionCV instead of LogisticRegression to improve Decoder performance by @michellewang in #3736
- [FIX] Fix tests failing due to deprecations in pre-release dependencies by @ymzayek in #3746
- [INFRA] Add timeout setting in Azure Pipelines CI by @ymzayek in #3747
- [BOT] update pre-commit hooks by @github-actions in #3748
- add more info to adhd example by @mtorabi59 in #3739
- [MAINT] improve test coverage BaseMasker by @Remi-Gau in #3721
- [MAINT] refactor nilearn/maskers (sourcery, f-strings) by @Remi-Gau in #3685
- [MAINT] avoid creating files during testing: test_infer_effect_maps by @Remi-Gau in #3716
- [MAINT] Catch warnings as errors on partial doc builds by @ymzayek in #3749
- [FIX] force ordered output of
_sanitize_reorder
to match regex in test by @Remi-Gau in #3751 - [MAINT] run isort and flake8 on the whole nilearn code base in CI by @Remi-Gau in #3651
- [FIX] find confounds even when BIDS derivatives bold files contain res or den entities by @Remi-Gau in #3742
- [BOT] update pre-commit hooks by @github-actions in #3764
- [DOC] update changelog and git blame ignore by @Remi-Gau in #3755
- [FIX] Change error string to match scikit-learn
InvalidParameterError
message by @ymzayek in #3763 - [MAINT] relax regex for warning on sanitize reorder error by @Remi-Gau in #3766
- [DOC] fix duplicate entry in examples dropdown by @Remi-Gau in #3760
- [MAINT] refactor nilearn/datasets (sourcery, f-strings) by @Remi-Gau in #3727
- [MAINT] add workflow to check for f strings by @Remi-Gau in #3759
- [DOC] Remove license and hide authors in examples by @Remi-Gau in #3765
- [MAINT] refactor nilearn/plotting (f-strings) by @Remi-Gau in #3757
- [MAINT] remove test install with python 2.7 workflow by @Remi-Gau in #3768
- [REF] fix f strings by @Remi-Gau in #3770
- [ENH][DOC] Fix inconsistent description of return keys for fetch_atlas_surf_destrieux by @tarunsamanta2k20 in https://git...
Release 0.10.1
Release 0.10.1 (#3724) * update changelog version * Fix some changelog entries * Rename changelog file for release * Add badges * Add release month * Remove dev tag in directives * Fix sphinx docstring userwarning * [full doc] Request full build
Release 0.10.1rc1
Pre-release 0.10.1rc1 (#3536) * REL 0.10.1rc1 * Set version marker * Modify changelog
Release 0.10.0
Release 0.10.0 (#3454)
Release 0.9.2
Release 0.9.2 (#3348)
Release 0.9.1
Release `0.9.1` (#3219) * REL 0.9.1 * formatting
Release 0.9.0
Release `0.9.0` (#3147) * 0.8.2 -> 0.9.0 * add python 3.10 to setup.py * add some recent contributors * [circle full] reformat changelog for 0.9.0 * [circle full] add highlights and improve formatting for 0.9.0 * fix ref * update news * [circle full] bump version number * update changelog for 0.9.0 * [circle full] clean latest changelog