SecretStorage 3.2.0, 2020-11-07
===============================

* Added helper function ``check_service_availability`` for checking if the
  Secret Service daemon is available without using it.

SecretStorage 3.1.2, 2020-01-08
===============================

* Updated the docs to describe how to close the D-Bus connection after use.
* For secrets of wrong type, a TypeError is now raised [`#20`_].

.. _`#20`: https://github.com/mitya57/secretstorage/issues/20

SecretStorage 3.1.1, 2019-01-24
===============================

* Fixes TypeError with cryptography 2.5.
  Thanks Zach Hoffman for the pull request!

SecretStorage 3.1.0, 2018-09-02
===============================

* The ``dbus_init`` function no longer accepts any arguments.
* The ``dbus_init`` function now converts ``ConnectionError`` and
  ``ValueError`` to ``SecretServiceNotAvailableException``.
* New exception class: ``PromptDismissedException``.
* Switched to declarative setup configuration. Build now requires
  setuptools 30.3 or newer.
* Added support for prompts when deleting collections and items.
* Added type annotations to all methods.

SecretStorage 3.0.1, 2018-04-24
===============================

* When ``DBUS_SESSION_BUS_ADDRESS`` environment variable is unset, and
  Jeepney raises a ``KeyError`` because of that, SecretStorage now intercepts
  that error and re-raises it as ``SecretServiceNotAvailableException``.
* Uploaded to PyPI with fixed meta-data.

SecretStorage 3.0.0, 2018-04-23
===============================

.. warning::
   This release is backwards incompatible with the previous versions.

* Python 3.5 or newer is now required.
* SecretStorage has been ported from dbus-python to Jeepney_, a
  pure Python D-Bus client.
* The asynchronous API has been removed. If you need it, please
  file a bug and describe your use case.
* The ``bus`` argument is now called ``connection`` in all functions
  that accept it.

.. _Jeepney: https://pypi.org/project/jeepney/

SecretStorage 2.3.1, 2016-08-27
===============================

* Update requires line in setup.py for cryptography port.
* Documentation is now hosted on ReadTheDocs_.

.. _ReadTheDocs: https://secretstorage.readthedocs.io/en/latest/

SecretStorage 2.3.0, 2016-08-17
===============================

* Ported from PyCrypto to cryptography module [`#6`_].
* ``Item.get_secret()`` now returns a bytes object rather than a bytearray.

.. _`#6`: https://github.com/mitya57/secretstorage/issues/6

SecretStorage 2.2.1, 2016-06-27
===============================

* Made dbus-python dependency optional because compiling it from sources
  is not an option for many users. See issues #4 and #5 for details.

SecretStorage 2.2.0, 2016-06-18
===============================

* Deprecated compatibility functions are dropped.
* Installation from PyPI now pulls in dbus-python.
* Travis CI tests added.
* Other minor fixes, simplifications and improvements.

SecretStorage 2.1.4, 2016-01-10
===============================

* Catch AccessDenied errors in dbus_init() function.
* Documentation improvements.

SecretStorage 2.1.3, 2015-12-20
===============================

* Python 2.6 is no longer supported.
* Compatibility functions are now deprecated and will be removed in
  the next major release.
* Other minor fixes, simplifications and improvements.

SecretStorage 2.1.2, 2015-06-30
===============================

* Add Item.unlock() method.
* Use setuptools when it is available.
* Documentation now uses Alabaster sphinx theme.
* Other documentation fixes and improvements.

SecretStorage 2.1.1, 2014-07-12
===============================

* Fixed a bug where common secret was incorrectly generated
  sometimes (one time of 128).
* Other minor improvements.

SecretStorage 2.1, 2014-05-28
=============================

* Support running tests with GNOME Keyring when there is no
  default collection.
* When D-Bus main loop is already set, do not set it again.
* Make dhcrypto module work with Python < 2.7.4.

SecretStorage 2.0, 2014-01-27
=============================

* Add support for encrypted sessions and use them by default.
* Get rid of Introspect() calls to make D-Bus messaging faster.

SecretStorage 1.1, 2013-11-15
=============================

* Ported to PyQt5.
* Added ``Item.get_created()`` method.
* Improvements to error handling.

SecretStorage 1.0, 2013-05-08
=============================

* Renamed ``exec_prompt_async_*`` functions to just ``exec_prompt_*``
  (old aliases kept for compatibility purposes).
* Added two helper functions:
    - ``get_any_collection()`` for getting default or session
      collection;
    - ``get_default_collection()`` for getting or creating the
      default collection.
* Fix creation of items with empty attributes dict.
* Make ``SecretServiceNotAvailableException`` a subclass of
  ``SecretStorageException``.
* Various documentation improvements.

SecretStorage 0.9, 2013-03-05
=============================

* Added support for content types in secrets.
* Added ``Item.get_modified()`` method.
* Added ``get_all_collections()`` and ``get_collection_by_alias()``
  functions.
* Added ``search_items()`` function for global search.
* Made synchronous version of ``Collection.unlock()`` return a
  boolean representing whether the operation was dismissed.
* Fixed wrong parsing of Secret Service result in
  ``Collection.get_modified()``.
* Various test suite and documentation improvements.

SecretStorage 0.8, 2013-01-05
=============================

* Added ``Collection`` and ``Item`` classes.
* Added support for creating and deleting collections.
* Added synchronous loop unlocking support.
* Added support for PyQt applications.
* Added test suite.
* Convert D-Bus exceptions to SecretStorage exceptions.
* Rewrote the documentation in Sphinx.
* Miscellaneous internal improvements.

SecretStorage 0.2, 2012-06-22
=============================

* Added ``get_item_attributes`` function.
* Renamed ``get_item_ids`` to ``get_items_ids``.
* Renamed ``get_item_by_id`` to ``get_item``.
* Renamed ``delete_item_by_id`` to ``delete_item``.
* Made ``create_item`` return id of the created item.
* Added ``secretstorage.exceptions`` module.
* Made all functions throw exceptions from that module.
* Updated the documentation.
* Added ``delete_test_items.py`` script that deletes all test items.

SecretStorage 0.1, 2012-06-02
=============================

* Initial release.
