=====================
Added
-----
* Better feedback of communication errors to user in .NET backend and implementing error details proposed in 174.
* Two devices example file to use for e.g. debugging.
* Detection/discovery callbacks in Core Bluetooth backend ``Scanner`` implemented.
* Characteristic handle printout in ``service_explorer.py``.
* Added scanning filters to .NET backend's ``discover`` method.
Changed
-------
* Replace ``NSRunLoop`` with dispatch queue in Core Bluetooth backend. This causes callbacks to be dispatched on a
background thread instead of on the main dispatch queue on the main thread. ``call_soon_threadsafe()`` is used to synchronize the events
with the event loop where the central manager was created. Fixes 111.
* The Central Manager is no longer global in the Core Bluetooth backend. A new one is created for each
``BleakClient`` and ``BleakScanner``. Fixes 206 and 105.
* Merged 167 and reworked characteristics handling in Bleak. Implemented in all backends;
bleak now uses the characteristics' handle to identify and keep track of them.
Fixes 139 and 159 and allows connection for devices with multiple instances
of the same characteristic UUIDs.
* In ``requirements.txt`` and ``Pipfile``, the requirement on ``pythonnet``
was bumped to version 2.5.1, which seems to solve issues described in 217 and 225.
* Renamed ``HISTORY.rst`` to ``CHANGELOG.rst`` and adopted
the `Keep a Changelog <https://keepachangelog.com/en/1.0.0/>`_ format.
* Python 3.5 support from macOS is officially removed since pyobjc>6 requires 3.6+
* Pin ``pyobjc`` dependencies to use at least version 6.2. (PR 194)
* Pin development requirement on `bump2version` to version 1.0.0
* Added ``.pyup.yml`` for Pyup
* Using CBManagerState constants from pyobj instead of integers.
Removed
-------
* Removed documentation note about not using new event loops in Linux. This was fixed by 143.
* ``_central_manager_delegate_ready`` was removed in macOS backend.
* Removed the ``bleak.backends.bluez.utils.get_gatt_service_path`` method. It is not used by
bleak and possibly generates errors.
Fixed
-----
* Improved handling of the txdbus connection to avoid hanging of disconnection
clients in BlueZ backend. Fixes 216, 219 & 221.
* 150 hints at the device path not being possible to create as is done in the `get_device_object_path` method.
Now, we try to get it from BlueZ first. Otherwise, use the old fallback.
* Minor documentation errors corrected.
* ``CBManagerStatePoweredOn`` is now properly handled in Core Bluetooth.
* Device enumeration in ``discover``and ``Scanner`` corrected. Fixes 211
* Updated documentation about scanning filters.
* Added workaround for ``isScanning`` attribute added in macOS 10.13. Fixes 234.