Changelog
=========

2.1 series
----------

Unreleased. Release 2.1.0
~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/_changes-2.1.0.rst


2.0 series
----------

.. note:: End-of-life for xoutil 2.0

   xoutil 2.0.7 will be the last release in the xoutil 2.0.x series that adds
   new functionality.  Any future release in this series will be bug-fix only.

   Since the pair-wise releases of 1.9.x and 2.0.x some new functionality has
   been added to some version of 1.9.x that is not present in some releases of
   the 2.0.x series.

   This created some dose of unease for users wanting a new feature in 1.9.3
   in a package where Python 2/3 was not a true concern; they were forced to
   require 'xoutil>=1.9.3,!=2.0.0,!=2.0.1,!=2.0.2' to avoid the package
   manager to select a version without the needed feature.

   This end-of-life notice puts an end to this issue.


2018-11-07.  Release 2.0.9
~~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/_changes-2.0.9.rst


2018-09-24.  Release 2.0.8
~~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/_changes-2.0.8.rst


2018-09-14.  Release 2.0.7
~~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/_changes-2.0.7.rst


2018-07-30. Release 2.0.6
~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/_changes-2.0.6.rst


2018-06-25. Release 2.0.5
~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/_changes-2.0.5.rst


2018-05-09.  Release 2.0.4.1
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/_changes-2.0.4.1.rst


2018-05-08.  Release 2.0.4
~~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/_changes-2.0.4.rst


2018-04-16.  Release 2.0.3
~~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/_changes-2.0.3.rst


2018-03-30.  Release 2.0.2
~~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/_changes-2.0.2.rst


2018-03-22.  Release 2.0.1
~~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/_changes-2.0.1.rst


2018-03-02.  Release 2.0.0
~~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/_changes-2.0.0.rst


1.9 series
----------

.. note:: End-of-life for xoutil 1.9

   xoutil 1.9.7 will be the last release of xoutil that adds functionality.
   Future releases will be strictly bug-fix only.

.. _rel-1.9.9:

2018-11-07.  Release 1.9.9
~~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/_changes-1.9.9.rst

.. _rel-1.9.8:

2018-09-24.  Release 1.9.8
~~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/_changes-1.9.8.rst

.. _rel-1.9.7:

2018-09-14.  Release 1.9.7
~~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/_changes-1.9.7.rst


.. _rel-1.9.6:

2018-07-30.  Release 1.9.6
~~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/_changes-1.9.6.rst

.. _rel-1.9.5:

2018-06-25. Release 1.9.5
~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/_changes-1.9.5.rst


.. _rel-1.9.4:

2018-05-08. Release 1.9.4
~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/_changes-1.9.4.rst


.. _rel-1.9.3:

2018-04-16. Release 1.9.3
~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/_changes-1.9.3.rst

.. _rel-1.9.2:

2018-03-30. Release 1.9.2
~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/_changes-1.9.2.rst

.. _rel-1.9.1:

2018-03-22.  Release 1.9.1
~~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/_changes-1.9.1.rst


2018-03-02.  Release 1.9.0
~~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/_changes-1.9.0.rst


1.8 series
----------

2018-02-24. Release 1.8.8
~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/_changes-1.8.8.rst


2018-01-06. Release 1.8.7
~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/_changes-1.8.7.rst


2018-01-02. Release 1.8.6
~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/_changes-1.8.6.rst


2017-12-22. Release 1.8.5
~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/_changes-1.8.5.rst


2017-12-15. Release 1.8.4
~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/_changes-1.8.4.rst


2017-11-28. Release 1.8.3
~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/_changes-1.8.3.rst


2017-11-22. Release 1.8.2
~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/_changes-1.8.2.rst


2017-11-17. Release 1.8.1
~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/_changes-1.8.1.rst


2017-11-03. Release 1.8.0
~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/_changes-1.8.0.rst


1.7 series
----------

2017-10-31. Release 1.7.12
~~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/_changes-1.7.12.rst


2017-10-05.  1.7.11
~~~~~~~~~~~~~~~~~~~

.. include:: history/_changes-1.7.11.rst


2017-09-21.  1.7.10
~~~~~~~~~~~~~~~~~~~

.. include:: history/_changes-1.7.10.rst


2017-09-20.  1.7.9
~~~~~~~~~~~~~~~~~~

.. include:: history/_changes-1.7.9.rst


2017-09-19.  1.7.8
~~~~~~~~~~~~~~~~~~

.. include:: history/_changes-1.7.8.rst


2017-09-07. 1.7.7
~~~~~~~~~~~~~~~~~

.. include:: history/_changes-1.7.7.rst


2017-09-05.  Release 1.7.6
~~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/_changes-1.7.6.rst


2017-09-05.  Release 1.7.5
~~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/_changes-1.7.5.rst


2017-04-06. Release 1.7.4
~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/_changes-1.7.4.rst


2017-02-23. Release 1.7.3
~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/_changes-1.7.3.rst


2017-02-07. Release 1.7.2
~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/_changes-1.7.2.rst


2015-12-17. Release 1.7.1
~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/_changes-1.7.1.rst

.. warning:: Due to lack of time, we have decided to release this version
   without proper releases of 1.7.0 and 1.6.11.


.. _release-1.7.0:

Unreleased. Release 1.7.0
~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/_changes-1.7.0.rst


1.6 series
----------


Unreleased. Release 1.6.11
~~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/_changes-1.6.11.rst


2015-04-15. Release 1.6.10
~~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/_changes-1.6.10.rst


2015-04-03.  Release 1.6.9
~~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/_changes-1.6.9.rst


2015-01-26. Release 1.6.8
~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/_changes-1.6.8.rst


2014-12-17. Release 1.6.7
~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/_changes-1.6.7.rst


2014-11-26. Release 1.6.6
~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/_changes-1.6.6.rst


2014-10-13. Release 1.6.5
~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/_changes-1.6.5.rst


2014-09-13. Release 1.6.4
~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/_changes-1.6.4.rst

2014-08-05. Release 1.6.3
~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/_changes-1.6.3.rst


2014-08-04. Release 1.6.2
~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/_changes-1.6.2.rst


2014-07-18. Release 1.6.1
~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/_changes-1.6.1.rst


2014-06-02. Release 1.6.0
~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/_changes-1.6.0.rst


1.5 series
----------

2014-05-29. Release 1.5.6
~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/_changes-1.5.6.rst


2014-05-13. Release 1.5.5
~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/_changes-1.5.5.rst

2014-04-08. Release 1.5.4
~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/_changes-1.5.4.rst


2014-04-01. Release 1.5.3
~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/_changes-1.5.3.rst

2014-03-03. Release 1.5.2
~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/_changes-1.5.2.rst


2014-02-14. Release 1.5.1
~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/_changes-1.5.1.rst


2014-01-24. Release 1.5.0
~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/_changes-1.5.0.rst


1.4 series
----------

.. include:: history/changes-1.4.2.rst
.. include:: history/changes-1.4.1.rst

2013-04-26. Release 1.4.0
~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/changes-1.4.0.rst


1.3 series
----------

.. include:: history/changes-1.3.0.rst

1.2 series
----------

2013-04-03. Release 1.2.3
~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/changes-1.2.3.rst


2013-03-25. Release 1.2.2
~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/changes-1.2.2.rst


2013-02-14. Release 1.2.1
~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/changes-1.2.1.rst


2013-01-04. Release 1.2.0
~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: history/changes-1.2.0.rst


1.1 series
----------

2012-11-01. Release 1.1.4
~~~~~~~~~~~~~~~~~~~~~~~~~

- Introduces `xoutil.compat.iteritems_`:func:, `xoutil.compat.iterkeys_`:func:
  and `xoutil.compat.itervalues_`:func:.

- `execution context <xoutil.context>`:mod: are now aware of `zope.interface`
  interfaces; so that you may ask for a context name implementing a given
  interface, instead of the name itself.

- Improves xoutil.formatter documentation.

- Several fixes to `xoutil.aop.classical`:mod:. It has sudden backwards
  incompatible changes.

- `before` and `after` methods may use the `*args, **kwargs` idiom to get the
  passed arguments of the weaved method.

- Several minor fixes: Invalid warning about Unset not in xoutil.types

2012-08-22. Release 1.1.3
~~~~~~~~~~~~~~~~~~~~~~~~~

- Adds function `xoutil.fs.rmdirs`:func: that removes empty dirs.

- Adds functions `xoutil.string.safe_join`:func:,
  `xoutil.string.safe_encode`:func:, `xoutil.string.safe_decode`:func:,
  and `xoutil.string.safe_strip`:func:; and the class
  `xoutil.string.SafeFormatter`:class:.

- Adds function `xoutil.cpystack.iter_frames`:func:.

2012-07-11. Release 1.1.2
~~~~~~~~~~~~~~~~~~~~~~~~~

- Fixes all copyrights notices and chooses the PSF License for Python 3.2.3
  as the license model for xoutil releases.

- All releases from now on will be publicly available at github_.

.. _github: https://github.com/merchise-autrement/xoutil/

.. TODO: Migrate some stuffs from "/merchise-autrement/" by "/merchise/"

2012-07-06. Release 1.1.1
~~~~~~~~~~~~~~~~~~~~~~~~~

- Improves deprecation warnings by pointing to the real calling filename
- Removes all internal use of simple_memoize since it's deprecated. We now use
  `~xoutil.functools.lru_cache`:func:.

2012-07-03. Release 1.1.0
~~~~~~~~~~~~~~~~~~~~~~~~~

- Created the whole documentation Sphinx directory.

- Removed xoutil.future since it was not properly tested.

- Removed xoutil.annotate, since it's not portable across Python's VMs.

- Introduced module `xoutil.collections`:mod:

- Deprecated modules `xoutil.default_dict`:mod:, `xoutil.opendict`:mod: in
  favor of `xoutil.collections`:mod:.

- Backported `xoutil.functools.lru_cache`:func: from Python 3.2.

- Deprecated module `xoutil.memoize`:mod: in favor of
  `xoutil.functools.lru_cache`:func:.


1.0 series
----------

2012-06-15. Release 1.0.30
~~~~~~~~~~~~~~~~~~~~~~~~~~

- Introduces a new module :py`xoutil.proxy`:mod:.

- Starts working on the sphinx documentation so that we move to 1.1 release we
  a decent documentation.

2012-06-01. Release 1.0.29.
~~~~~~~~~~~~~~~~~~~~~~~~~~~

- Introduces `xoutil.iterators.slides` and `xoutil.aop.basic.contextualized`

2012-05-28. Release 1.0.28.
~~~~~~~~~~~~~~~~~~~~~~~~~~~

- Fixes normalize path and other details
- Makes validate_attrs to work with mappings as well as objects
- Improves complementors to use classes as a special case of sources
- Simplifies importing of legacy modules
- PEP8

2012-05-22. Release 1.0.27.
~~~~~~~~~~~~~~~~~~~~~~~~~~~

- Removes bugs that were not checked (tested) in the previous release.

2012-05-21. Release 1.0.26.
~~~~~~~~~~~~~~~~~~~~~~~~~~~

- Changes in AOP classic. Now you have to rename after, before and around methods
  to _after, _before and _around.

  It is expected that the signature of those methods change in the future.

- Introducing a default argument for `xoutil.objects.get_first_of`:func:.

- Other minor additions in the code. Refactoring and the like.

2012-04-30. Release 1.0.25.
~~~~~~~~~~~~~~~~~~~~~~~~~~~

- Extends the classical AOP approach to modules. Implements an extended version
  with hooks.

- 1.0.25.1: Makes classical/extended AOP more reliable to TypeError's in getattr.
  xoonko, may raise TypeError's for TranslatableFields.

2012-04-27. Release 1.0.24.

- Introduces a classical AOP implementation: xoutil.aop.classical.

2012-04-10. Release 1.0.23.
~~~~~~~~~~~~~~~~~~~~~~~~~~~

- Introduces decorators: xoutil.decorators.instantiate and xoutil.aop.complementor

2012-04-05. Release 1.0.22
~~~~~~~~~~~~~~~~~~~~~~~~~~

- Allows annotation's expressions to use defined local variables.  Before this
  release the following code raised an error::

        >>> from xoutil.annotate import annotate
        >>> x1 = 1
        >>> @annotation('(a: x1)')
        ... def dummy():
        ...     pass
        Traceback (most recent call last):
           ...
        NameError: global name 'x1' is not defined

- Fixes decorators to allow args-less decorators


2012-04-03. Release 1.0.21
~~~~~~~~~~~~~~~~~~~~~~~~~~

- Includes a new module `xoutil.annotate`:mod: that provides a way to place
  Python annotations in forward-compatible way.
