Skip to content

0.2.0

Compare
Choose a tag to compare
@github-actions github-actions released this 24 Nov 00:34
· 141 commits to main since this release
8196584

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.PATCH versioning 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 DeprecationWarning and 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

  • Remove support for the deprecated show_annotations parameter and colormode='index' value (#254)
  • The new default colormode is "fillgradient" (#244)
  • The default value for line_width changed from 1 to 1.5 (#253)

Features

  • Implement new "fillgradient" colormode (#244)
  • Add new line_color parameter to the ridgeplot function (#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 norm parameter to the ridgeplot function to allow users to normalize the data before plotting (#255)
  • Add sample_weights argument to ridgeplot() to allow users to pass sample weights to the KDE estimator (#259)

Deprecations

  • Rename coloralpha to opacity for consistently with Plotly Express and deprecate the old parameter name (#245)
  • Rename linewidth to line_width for consistency with Plotly's API and deprecate the old parameter name (#253)
  • Deprecated colorscale='default' and list_all_colorscale_names() in favour or Plotly Express' px.colors.named_colorscales() (#262)

Dependencies

  • The new minimum version of Plotly is 5.20 to leverage the new fillgradient feature (#244)

Optimizations

  • Importing statsmodels, scipy, and numpy can be slow, so we now only import the ridgeplot._kde module 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.js version from 2.27 to 2.35.2 to leverage the fillgradient feature (#244)
  • Fix the API reference docs for the internal ridgeplot._color module (#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

  • Stop sending coverage reports to Codacy (#265)
  • Improve local development experience and optimise the CI pipeline (#273)

Internal

  • Simplify and refactor interpolate_color to not depend on px.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! πŸš€