---------------------------
This release has been nearly a year in the making, with major new contributions from Ian Thomas, Thuy Do Thi Minh, Simon Høxbro Hansen, Maxime Liquet, and James Bednar, and additional support from Andrii Oriekhov, Philipp Rudiger, and Ajay Thorve.
Enhancements:
- Full support for `antialiased lines <https://datashader.org/user_guide/Timeseries.html#antialiasing>`_ of specified width (`1048 <https://github.com/holoviz/datashader/pull/1048>`_, `#1072 <https://github.com/holoviz/datashader/pull/1072>`_). Previous antialiasing support was limited to single-pixel lines and certain floating-point reduction functions. Now supports arbitrary widths and arbitrary reduction functions, making antialiasing fully supported. Performance ranges from 1.3x to 14x slower than the simplest zero-width implementation; see `benchmarks <https://github.com/holoviz/datashader/pull/1072>`_.
- Fixed an issue with visibility on zoomed-in points plots and on overlapping line plots that was first reported in 2017, with a new option ``rescale_discrete_levels`` for ``how='eq_hist'`` (`1055 <https://github.com/holoviz/datashader/pull/1055>`_)
- Added a `categorical color_key for 2D <https://datashader.org/getting_started/Pipeline.html#colormapping-2d-categorical-data>`_ (unstacked) aggregates (`1020 <https://github.com/holoviz/datashader/pull/1020>`_), for producing plots where each pixel has at most one category value
- Improved docs:
* A brand new `polygons guide <https://datashader.org/user_guide/Polygons.html>`_ (`#1071 <https://github.com/holoviz/datashader/pull/1071>`_)
* A new guide to `3D aggregations <https://datashader.org/getting_started/Pipeline.html#id1>`_ using ``by`` now documenting using ``categorizer`` objects to do 3D numerical binning (`1071 <https://github.com/holoviz/datashader/pull/1071>`_)
* Moved documentation for `spreading <https://datashader.org/getting_started/Pipeline.html#spreading>`_ to its own section so it can be presented at the right pipeline stage (was mixed up with colormapping before) (`1071 <https://github.com/holoviz/datashader/pull/1071>`_)
* Added `rescale_discrete_levels example <https://datashader.org/getting_started/Pipeline.html#transforming-data-values-for-colormapping>`_ (`1071 <https://github.com/holoviz/datashader/pull/1071>`_)
* Other misc doc cleanup (`1035 <https://github.com/holoviz/datashader/pull/1035>`_, `#1037 <https://github.com/holoviz/datashader/pull/1037>`_, `#1058 <https://github.com/holoviz/datashader/pull/1058>`_, `#1074 <https://github.com/holoviz/datashader/pull/1074>`_, `#1077 <https://github.com/holoviz/datashader/pull/1077>`_)
Bugfixes:
- Fixed details of the raster coordinate calculations to match other primitives, making it simpler to overlay separately rendered results (`959 <https://github.com/holoviz/datashader/pull/959>`_, `#1046 <https://github.com/holoviz/datashader/pull/1046>`_)
- Various fixes and extensions for cupy/CUDA, e.g. to use cuda for category_binning, spread, and dynspread, including cupy.interp where appropriate (`1015 <https://github.com/holoviz/datashader/pull/1015>`_, `#1016 <https://github.com/holoviz/datashader/pull/1016>`_, `#1044 <https://github.com/holoviz/datashader/pull/1044>`_, `#1050 <https://github.com/holoviz/datashader/pull/1050>`_, `#1060 <https://github.com/holoviz/datashader/pull/1060>`_)
- Infrastructure/build/ecosystem fixes (`1022 <https://github.com/holoviz/datashader/pull/1022>`_, `#1025 <https://github.com/holoviz/datashader/pull/1025>`_, `#1027 <https://github.com/holoviz/datashader/pull/1027>`_, `#1036 <https://github.com/holoviz/datashader/pull/1036>`_, `#1045 <https://github.com/holoviz/datashader/pull/1045>`_, `#1049 <https://github.com/holoviz/datashader/pull/1049>`_, `#1050 <https://github.com/holoviz/datashader/pull/1050>`_, `#1057 <https://github.com/holoviz/datashader/pull/1057>`_, `#1061 <https://github.com/holoviz/datashader/pull/1061>`_, `#1062 <https://github.com/holoviz/datashader/pull/1062>`_, `#1063 <https://github.com/holoviz/datashader/pull/1063>`_, `#1064 <https://github.com/holoviz/datashader/pull/1064>`_)
Compatibility:
- ``Canvas.line()`` option ``antialias=True`` is now deprecated; use ``line_width=1`` (or another nonzero value) instead. (`1048 <https://github.com/holoviz/datashader/pull/1048>`_)
- Removed long-deprecated ``bokeh_ext.py`` (`1059 <https://github.com/holoviz/datashader/pull/1059>`_)
- Dropped support for Python 2.7 (actually already dropped from the tests in Datashader 0.12) and 3.6 (no longer supported by many downstream libraries like rioxarray, but several of them are not properly declaring that restriction, making 3.6 much more difficult to support.) (`1033 <https://github.com/holoviz/datashader/pull/1033>`_)
- Now tested on Python 3.7, 3.8, 3.9, and 3.10. (`1033 <https://github.com/holoviz/datashader/pull/1033>`_)