====
NEWS
====

:Author: Toshio Kuratomi
:Maintainer: Patrick Uiterwijk
:Date: 24 Aug 2017
:Version: 1.2.x

-----
1.2.6
-----

* Updated codepoint tables

-----
1.2.5
-----

* Updated codepoint tables
* Code style fixes

-----
1.2.4
-----

* Further compat fixes for python-3.5

-----
1.2.3
-----

* Compatibility with python-3.5

-----
1.2.2
-----

* Compatibility with python-3.4
* Compatibility with pep470

-----
1.2.1
-----

* Fix release-related problems with the 1.2.0 tarball.
  - Include locale data for the test suite.
  - Include NEWS.rst and README.rst.
  - Include runtests.sh.
  - Adjust trove classifiers to indicate python3 support.

-----
1.2.0
-----

* kitchen gained support for python3.  The tarball release now includes a
  ``kitchen2/`` and a ``kitchen3/`` directory containing copies of the source
  code modified to work against each of the two major python versions.  When
  installing with ``pip`` or ``setup.py``, the appropriate version should be
  selected and installed.
* The canonical upstream repository location moved to git and github.  See
  https://github.com/fedora-infra/kitchen
* Added kitchen.text.misc.isbasestring(), kitchen.text.misc.isbytestring(),
  and kitchen.text.misc.isunicodestring().  These are mainly useful for code
  being ported to python3 as python3 lacks a basestring type and has two types
  for byte strings.  Code that has to run on both python2 and python3 or
  wants to provide similar byte vs unicode semantics may find these functions
  to be a good abstraction.
* Add a python2_api parameter to various i18n functions: NullTranslations
  constructor, NewGNUTranslations constructor, and get_translation_object.
  When set to True (the default), the python2 api for gettext objects is used.
  When set to False, the python3 api is used.  This option is intended to aid
  in porting from python2 to python3.
* Exception messages are no longer translated.  The idea is that exceptions
  should be easily searched for via a web search.
* Fix a bug in unicode_to_xml() where xmlcharrefs created when a unicode
  string is turned into a byte string with an encoding that doesn't have 
  all of the needed characters had their ampersands ("&") escaped.
* Fix a bug in NewGNUTranslations.lngettext() if a fallback gettext object is
  used and the message is not in any catalog.
* Speedups to process_control_chars() that are directly reflected in
  unicode_to_xml() and byte_string_to_xml()
* Remove C1 Control Codes in to_xml() as well as C0 Control Codes

-----
1.1.1
-----

* Fix a bug with easy_gettext_setup() and get_translation_object() when using
  the default value of localedirs.

-----
1.1.0
-----

* Add yum.i18n.exception2msg section to the porting docs
* Deprecate BYTE_EXCEPTION_CONVERTERS as simplification of code lets
  us use EXCEPTION_CONVERTERS for both exception_to_unicode and
  exception_to_bytes.
* kitchen.i18n.get_translation_object
  - Add more parameters to :func:`~kitchen.i18n.get_translation_object` so it
    can more easily be used as a replacement for :func:`gettext.translation`.
  - Change the way we use localedirs.  We cycle through them until we find a
    suitable locale file rather than simply cycling through until we find a
    directory that exists.
  - When multiple message catalogs are found in localedirs (and via environment
    variables), set up the extra ones as fallbacks if the message isn't found
    in the first catalog.
* Change the return values from gettext and lgettext family of functions.
  Instead of simply guaranteeing a byte str will be returned we now guarantee
  the byte str will be valid in a certain encoding (the str may still be
  mangled but it will be valid).
* Updated subprocess and base64 modules from latest python-2.7 branch.
* Fix i18n Translation objects to set input_charset and output_charset on any
  fallback objects.
* Fix kitchen.i18n Translation objects' output_encoding() method on python-2.3.
  It was accessing a different self object than we wanted it to.  Defining it
  in a different way makes it work on python-2.3.

-----
1.0.0
-----

* Add a pointer to ordereddict and iterutils in the docs
* Change a few pieces of code to not internally mix bytes and unicode

-----
0.2.4
-----

* Have easy_gettext_setup return lgettext functions instead of gettext
  functions when use_unicode=False
* Correct docstring for kitchen.text.converters.exception_to_bytes() -- we're
  transforming into a byte str, not into unicode.
* Correct some examples in the unicode frustrations documentation
* Correct some cross-references in the documentation

-----
0.2.3
-----

* Expose MAXFD, list2cmdline(), and mswindows in kitchen.pycompat27.subprocess.
  These are undocumented, and not in upstream's __all__ but google (and bug
  reports against kitchen) show that some people are using them.  Note that
  upstream is leaning towards these being private so they may be deprecated in
  the python3 subprocess.

-----
0.2.2
-----

* Add kitchen.text.converters.exception_to_bytes() and
  kitchen.text.converters.exception_to_unicode() that take an exception object
  and convert it into a text representation.
* Add a documentation section on how API can be simplified if you can limit your encodings

If all goes well, we'll be making a 1.0 release shortly which is basically this release.

-------
0.2.2a1
-------

* Fix exception messages that contain unicode characters
* Speed up to_unicode for the common cases of utf-8 and latin-1.
* kitchen.i18n.NewGNUTranslations object that always returns unicode for
  ugettext and ungettext, always returns str for the other gettext functions,
  and doesn't throw UnicodeError.
* Change i18n functions to return either DummyTranslations or
  NewGNUTranslations so all strings returned are known to be unicode or str.
* kitchen.pycompat24.base64 now synced from upstream python so it implements
  all of the python-2.4 API
* unittest NewGNUTranslations
* unittest that easy_gettext_setup returns the correct objects
* Document kitchen.text.display
* Proofread all of the documentation.  Cross reference to the stdlib.
* Write a porting guide for people porting from python-fedora and yum APIs.

-------
0.2.1a1
-------

* Fix failing unittest on python-2.7
* Add iterutils module
* Update table of combining utf8 characters from python-2.7
* Speed up kitchen.text.misc.str_eq().
* docs:
  - api-i18n
  - api-exceptions
  - api-collections
  - api-iterutils
  - Add two tutorial sections for unicode
* unittests
  - kitchen.text.converters.getwriter()
  - kitchen.iterutils
  - tests for more input variations to str_eq

-----
0.2a2
-----
* Add unittests for kitchen.text.display, update kitchen.text.utf8 and
  kitchen.text.misc test coverage
* Bug fixes for python-2.3
* Some doc updates.  More to come.
* New function kitchen.text.converters.getwriter()

-----
0.2a1
-----
* Relicense to LGPLv2+
* All API versions for subpackages moved to 1.0 to comply with new guidelines
  on hacking subpackages.
* Documentation on hacking kitchen and addons
* Kitchen.text API changed (new API version 1.0)
  * Move utils.* to misc.*
  * Deprecate kitchen.text.utf8.utf8_valid in favor of
    kitchen.text.misc.byte_string_valid_encoding
    - byte_string_valid_encoding is significantly faster and a bit more generic
  * Port utf8 functions to use unicode
  * Put the unicode versions of the utf8 functions into kitchen.text.display

-----
0.1a3
-----
* Add a defaultdict implementation for pycompat25
* Add documentation
* Add a StrictDict class that never has str and unicode keys collide.

-----
0.1a2
-----
* Fixes for python-2.3
* versioning subpackage with version_tuple_to_string() function that creates
  PEP-386 compatible version strings.
* Changed pycompat24.builtinset -- now you need to call the add_builtin_set()
  function to add set and frozenset to the __builtin__ namespace.
* pycompat24.base64modern module that implements the modern interface to
  encode and decode base64.  Note that it does't implement b32 or b16 at the
  moment.
* pycompat27 with the 2.7 version of subprocess.
* The 2.7 version of subprocess is also available at
  kitchen.pycompat24.subprocess since subprocess first appeared in python2.4

-----
0.1a1
-----
* Initial releae of kitchen.core
