Release Notes¶
This document outlines the list of changes to ridgeplot between each release. For full details, see the commit logs.
Unreleased changes¶
CI/CD¶
0.5.0¶
Breaking changes¶
Features¶
Implement a new
color_discrete_mapparameter to allow users to specify custom colors for each trace (#348)
Miscellaneous¶
Bump project classification from Pre-Alpha to Alpha (#336)
CI/CD¶
0.4.0¶
Features¶
Add support for custom row labels via a new
row_labelsargument (#333)
Deprecations¶
Deprecated the
show_yticklabelsargument in favor of the new more general and flexiblerow_labelsargument (#333)
CI/CD¶
Add
./cicd_utils/find-unmentioned-prs.shhelper script to find merged PRs that were not mentioned in the changelog yet (#334)Bump actions/first-interaction from 1 to 3 (#331)
Bump actions/checkout from 4 to 5 (#330)
Bump actions/download-artifact from 4 to 5 (#329)
Bump sigstore/gh-action-sigstore-python from 3.0.0 to 3.0.1 (#326)
pre-commit autoupdate (#324)
Dependencies¶
Remove
importlib_metadatausage fromconf.py(#332)
0.3.2¶
Internal¶
Documentation¶
Bump the Plotly JS version used in Sphinx from 2.35.2 to 3.0.0 (#317)
0.3.1¶
Internal¶
Improve type annotations and use stricter pyright settings (#291)
Documentation¶
CI/CD¶
Fix regressions tests by comparing against JSON artifacts instead of flaky JPEGs (#299)
Thanks to @imprvhub for their contributions to this release! 🚀
0.3.0¶
Features¶
Add support for histogram and bar traces (#287)
Documentation¶
Internal¶
CI/CD¶
0.2.1¶
Bug fixes¶
Fixed
ZeroDivisionErrorfor index-based colormodes when specifying single-trace or single-row plots (#268)
0.2.0¶
After almost 4 years, 30 “patch” releases, +200 pull-requests, and close to 1,000 commits, this is ridgeplot’s first minor release (v0.1.30 -> v0.2.0)! 🚀
ridgeplot has been downloaded over 400k times (peaking at 102k downloads in a single month), is listed as a dependency in 135 public GitHub repositories, and - perhaps most relevantly - is a dependency of larger projects such as Shiny for Python, Ploomber, and NiMARE which further extends the impact and reach of the project.
This release marks a small milestone for ridgeplot, which we believe has now reached a level of maturity and stability that warrants a stricter and more structured, predictable, and standard release and versioning process. Even though we have managed to never publish breaking changes in the past (if you find any, please let us know!), we will from now on be even more careful and mindful of the impact of any changes that could affect downstream users and their applications.
We will make an effort to standardise and document our versioning policy. For now, we will try to simply adhere to the following general rules:
We are explicitly not going to follow Semantic Versioning, as we believe it is not a good fit for this project yet.
MAJOR.MINOR.PATCHversioning scheme:MAJOR: We don’t have any plans for this yet… we will probably use this in the future once we settle on a more stable API and feature set
MINOR: New features, significant improvements, and deprecations
PATCH: Backwards-compatible bug fixes, small improvements, internal changes, and documentation updates
Breaking changes:
We might introduce breaking changes in minor releases!
However, this will never happen without a proper deprecation period and a clear upgrade path. i.e., we will always first deprecate the old API via a
DeprecationWarningand provide a clear migration path to the new API.Such instances will be kept to a minimum and will likely only show up in the form of deprecated or renamed parameters or the meaning/behaviour of their arguments/values.
Breaking changes¶
Features¶
Implement new
"fillgradient"colormode (#244)Add new
line_colorparameter to theridgeplotfunction (#253)Add a
line_color='fill-color'option which automatically matches the trace’s line color to the trace’s fill color (#253)Add new
normparameter to theridgeplotfunction to allow users to normalize the data before plotting (#255)Add
sample_weightsargument toridgeplot()to allow users to pass sample weights to the KDE estimator (#259)
Deprecations¶
Rename
coloralphatoopacityfor consistently with Plotly Express and deprecate the old parameter name (#245)Rename
linewidthtoline_widthfor consistency with Plotly’s API and deprecate the old parameter name (#253)Deprecated
colorscale='default'andlist_all_colorscale_names()in favour or Plotly Express’px.colors.named_colorscales()(#262)
Dependencies¶
The new minimum version of Plotly is
5.20to leverage the newfillgradientfeature (#244)
Optimizations¶
Importing statsmodels, scipy, and numpy can be slow, so we now only import the
ridgeplot._kdemodule when the user needs this functionality (#242)
Documentation¶
Update examples in the getting-started guide to reflect the new default colormode (#244)
Update the
plotly.min.jsversion from2.27to2.35.2to leverage thefillgradientfeature (#244)Fix the API reference docs for the internal
ridgeplot._colormodule (#244)Tighten margins in generated examples (#257)
Add the reference jupyter notebook used to generate the ridgeplot logo (#242)
Update ridgeplot’s logo to use Plotly’s official colors (#243)
CI/CD¶
Internal¶
Simplify and refactor
interpolate_colorto not depend onpx.colors.find_intermediate_color(#253)Improve type narrowing using
typing.TypeIs(#259)Refactor community health files (#260)
Thanks to @sstephanyy for their contributions to this release! 🚀
0.1.30¶
Features¶
Documentation¶
Improve the documentation for the
colormodeparameter (#232)
Internal¶
Refactor
_figure_factory.pyto use a functional approach (#228)Stop using the term “midpoints” to refer to the “interpolation values” when dealing with continuous color scales (#232)
Refactor color validation logic to use helpers provided by Plotly (#233)
Drop
colors.jsonand use Plotly’sColorscaleValidatorandnamed_colorscalesdirectly (#234)Refactor color utilities into
ridgeplot._color(#235)
0.1.29¶
Features¶
Add new
"trace-index-row-wise"colormode (#224)
Improvements¶
Remove duplicated labels when plotting multiple traces on the same y-axis row (#223)
Documentation¶
Internal¶
Eagerly validate input shapes in
RidgeplotFigureFactory(#222)Vendor
_zip_equal()from more-itertools (#222)Improve overall test coverage (#222)
Bug fixes¶
Support edge case in
get_collection_array_shapewhere the input array is empty or contains nested empty arrays (#222)
CI/CD¶
0.1.28¶
Ooops! This release was skipped due to a mistake in the release process. The changes in this release were included in the 0.1.29 release.
0.1.27¶
Breaking changes¶
CI/CD¶
0.1.26¶
Breaking changes¶
CI/CD¶
0.1.25¶
This release contains a number of improvements to the docs, API reference, CI/CD logic (incl. official support for Python 3.12), and other minor internal changes.
Documentation¶
Internals¶
CI/CD¶
Add support for Python 3.12 (#182)
0.1.24¶
Breaking changes¶
Features¶
Add hoverinfo by default to the Plotly traces (#174)
Documentation¶
Use the
{raw} html :file: _static/charts/<PLOT-ID>.htmldirective to load the interactive Plotly graphs in the generated Sphinx docs. The generated HTML artifacts only include a<div>wrapper block now and the plotly.min.js is now vendored and automatically loaded via thehtml_js_filesSphinx config (#132)Small adjustments to the example plots in the documentation (#132)
Reformat markdown files, removing all line breaks (#132)
Internals¶
CI/CD¶
0.1.23¶
Fix the references to the interactive Plotly IFrames (#129)
0.1.22¶
Deprecations¶
The
colormode='index'value has been deprecated in favor ofcolormode='row-index', which provides the same functionality but is more explicit and allows to distinguish between the'row-index'and'trace-index'modes (#114)The
show_annotationsargument has been deprecated in favor ofshow_yticklabels(#114)The
get_all_colorscale_names()function has been deprecated in favor oflist_all_colorscale_names()(#114)
Features¶
Documentation¶
Major update to the documentation, including more examples, interactive plots, script to generate the HTML and WebP images from the example scripts, improved API reference, and more (#114)
Internal¶
0.1.21¶
Features¶
Add
ridgeplot.datasets.load_probly()helper function to load theproblytoy dataset. Theprobly.csvfile is now included in the package underridgeplot/datasets/data/(#80)
Documentation¶
Internal¶
Fixed and improved some type annotations, including the introduction of
ridgeplot._typesmodule for type aliases such asNumericandNestedNumericSequence(#80)Add the
blacken-docspre-commit hook and add thepep8-naming,flake8-pytest-style,flake8-simplify,flake8-implicit-str-concat,flake8-bugbear,flake8-rst-docstrings,flake8-rst-docstrings, etc… plugins to theflake8pre-commit hook (#81)Cleanup and improve some type annotations (#81)
Update deprecated
set-outputcommands (GitHub Actions) (#87)
0.1.17¶
Automate the release process. See .github/workflows/release.yml, which issues a new GitHub release whenever a new git tag is pushed to the main branch by extracting the release notes from the changelog.
Fix automated release process to PyPI (#27)
0.1.16¶
0.1.14¶
Remove
named_colorscalesfrom public API (#18)
0.1.13¶
Add tests for example scripts (#14)
0.1.12¶
Internal¶
Update and standardise CI steps (#6)
Documentation¶
0.1.11¶
colors.jsonwas missing from the final distributions (#2)
0.1.0¶
🚀 Initial release!