* :issue:`1827`: Fixed issue where bytes values in a ``HeaderMap`` would be converted to strings.
* :pr:`1826`: Rely on `jaraco.collections <https://pypi.org/project/jaraco.collections>`_ for its case-insensitive dictionary support.
18.4.0
-------
* :pr:`1715`: Fixed issue in cpstats where the ``data/`` endpoint would fail with encoding errors on Python 3.
* :pr:`1821`: Simplify the passthrough of parameters to ``CPWebCase.getPage`` to cheroot. CherryPy now requires cheroot 8.2.1 or later.
18.3.0
-------
* :pr:`1806`: Support handling multiple exceptions when processing hooks as reported in :issue:`1770`.
18.2.0
-------
* File-based sessions no longer attempt to remove the lock files when releasing locks, instead deferring to the default behavior of zc.lockfile. Fixes :issue:`1391` and :issue:`1779`.
* :pr:`1794`: Add native support for ``308 Permanent Redirect`` usable via ``raise cherrypy.HTTPRedirect('/new_uri', 308)``.
18.1.2
-------
* Fixed :issue:`1377` via :pr:`1785`: Restore a native WSGI-less HTTP server support. * :pr:`1769`: Reduce log level for non-error events in win32.py
18.1.1
-------
* :pr:`1774` reverts :pr:`1759` as new evidence emerged that the original behavior was intentional. Re-opens :issue:`1758`.