Version 2.7.4 -> 2.8
--------------------
  - fixed test failure in test_DateTimeParserGenerator.py with version 70.1rc
  - added wrappers for UCurrNameStyle and for ucurr_getName() onto CurrencyUnit
  - added support for ICU 70.1
  - added FieldPosition-less overloads to RuleBasedNumberFormat.format()
  - added pyproject.toml file to (also) build via python -m build

Version 2.7.3 -> 2.7.4
----------------------
  - added wrappers for UWordBreak and BreakIterator.getRuleStatusVec()
  - added wrappers for MessagePattern (Roman Kalukiewicz)
  - added wrapper for Collator::getKeywordValuesForLocale()

Version 2.7.2 -> 2.7.3
----------------------
  - added wrappers for LocaleMatcher.acceptLanguage|FromHTTP()

Version 2.7.1 -> 2.7.2
----------------------
  - worked around limitation of Visual Studio 2017 (cgohlke)
  - added missing test and samples files to distribution (foutrelis)

Version 2.7 -> 2.7.1
--------------------
  - added some tests for TimeZone classes
  - fixed bug w/FormattedNumberRange.getFirst|SecondDecimal() gone w/ ICU 68.1+
  - fixed bug with VTimeZone.write() wrapper invoking VTimeZone.writeSimple()

Version 2.6 -> 2.7
------------------
  - added wrapper for Locale.canonicalize()
  - added wrappers for MeasureUnit.product(), reciprocal(), getDimensionality()
  - added wrapper for MeasureUnit.forIdentifier()
  - implemented *, /, **, 1/m for MeasureUnit in terms of product and reciprocal
  - added wrappers for BasicTimeZone, RuleBasedTimeZone, VTimeZone
  - added wrappers for TimeZoneTransition, TimeZoneRule and its subclasses
  - added wrappers for DateTimeRule, DateRuleType, TimeRuleType
  - added support for ICU 69.1

Version 2.5 -> 2.6
------------------
  - added missing BreakIterator.getRuleStatus() wrapper
  - added wrappers for UBiDi API
  - added wrappers for UBiDiTransform API
  - added support for ICU 68.1
  - added wrappers for DateIntervalFormat.get/setContext()
  - added wrapper for LocaleMatcher.isMatch()
  - added wrapper for LocaleMatcherBuilder.setDirection()
  - added wrappers LocaleMatcherBuilder.setMaxDistance(), setNoDefaultLocale()
  - added wrappers for MeasureUnit.getComplexity() and UMeasureUnitComplexity
  - added wrapper for MeasureUnit.getIdentifier()
  - switched MeasureUnit.__str__() to use MeasureUnit::getIdentifier()  
  - added wrappers for new MeasureUnit static factory methods
  - added wrapper for FormattedNumber.getOutputUnit()
  - added wrapper for FormattedNumberRange.getDecimalNumbers()
  - added wrappers for PluralRules.select(FormattedNumber|Range)

Version 2.4.3 -> 2.5
--------------------
  - added support for turning on -pedantic with gcc or clang
  - added support for ICU 67.1
  - added wrappers for FormattedValue, ConstrainedFieldPosition, UFieldCategory
  - made FormattedValue iterable via nextPosition()
  - added wrappers for FormattedDateInterval, FormattedNumber, FormattedList
  - added wrappers for FormattedRelativeDateTime and enums
  - added wrappers for UNumberFormatFields, UNumberFormatAttribute
  - added wrappers for NumberRangeFormatter, FormattedNumberRange and enums
  - added icu.ICU_MAX_MAJOR_VERSION global set to largest ICU version supported

Version 2.4.2 -> 2.4.3
----------------------
  - added Char.getPropertyValueName() and Char.getPropertyValueEnum()
  - fixed build errors with PythonReplaceable for ICU < 55

Version 2.4.1 -> 2.4.2
----------------------
  - fixed build issues with ICU < 59

Version 2.4 -> 2.4.1
--------------------
  - added missing header files to MANIFEST.in

Version 2.3.1 -> 2.4
--------------------
  - workedaround mystery variations in test_Script.testSurrogatePairs
  - added support for RuleBasedBreakIterator.getBinaryRules()
  - added support for RuleBasedBreakIterator(binaryRules)
  - added wrappers for LocaleBuilder
  - added workaround for MSVC++ compiler issue (kochelmonster)
  - added support for ICU 65.1
  - added wrappers for DecimalFormat.get|setMultiplierScale()
  - added wrapper for Locale.createUnicodeKeywords()
  - added wrappers for new MeasureUnit static factory methods
  - added wrappers for LocaleMatcher
  - added wrappers for LocaleMatcher::Builder as LocaleMatcher.Builder
  - added wrappers for LocaleMatcher::Result as LocaleMatcher.Result
  - added support for constructing Locale objects from keywords
  - locale.addLikelySubtags() and minimizeSubtags() now modify locale in place
  - added wrappers for BytesTrie, BytesTrie.Builder|Iterator|State
  - added wrappers for UCharsTrie, UCharsTrie.Builder|Iterator|State
  - added wrappers for GenderInfo
  - added support for implementing a subclass of Replaceable in Python
  - added support for using PythonReplaceable with Transliterator methods

Version 2.3 -> 2.3.1
--------------------
  - fixed build error with ICU 61, ICU 62

Version 2.2 -> 2.3
------------------
  - added support for also trying pkg-config for build configuration (Linux)
  - fixed compilation issue in collator.cpp when not using c++11 (and icu < 60)
  - added support for ICU 64.1
  - filled out wrappers for missing NumberFormatter methods and classes

Version 2.1 -> 2.2
------------------
  - added wrappers for AlphabeticIndex and ImmutableIndex
  - added wrapper for NumberingSystem
  - added wrapper for UGraphemeClusterBreak enum
  - added wrapper for UHangulSyllableType enum
  - added wrappers for Edits and Edits::Iterator and Edits support with CaseMap
  - added support for ICU 63.1
  - added wrappers for Locale::to|fromLanguageTag
  - added wrappers for UIndicPositionalCategory, UIndicSyllabicCategory enums
  - added wrapper for UVerticalOrientation enum

Version 2.0.6 -> 2.1
--------------------
  - added wrapper for ULineBreak enum
  - fixed crasher with pypy3 6.0

Version 2.0.5 -> 2.0.6
----------------------
  - fixed another build error with ICU < 62

Version 2.0.4 -> 2.0.5
----------------------
  - fixed build error with ICU < 62
  - added casemap.h to MANIFEST.in

Version 2.0.3 -> 2.0.4
----------------------
  - added support for ICU 62.1
  - added support for CaseMap (without Edits)

Version 2.0.2 -> 2.0.3
----------------------
  - added wrappers for Region class and URegionType enum
  - added wrappers for MeasureFormat.formatMeasure and formatMeasurePerUnit
  - fixed build errors with ICU 59.1
  - replaced occurrences of nullptr with NULL, -std=c++11 req'd w/only ICU >= 60

Version 2.0.1 -> 2.0.2
----------------------
  - fixed build error with ICU < 53
  
Version 2.0 -> 2.0.1
--------------------
  - made Measure wrapper abstract when building with ICU < 53.1
  - str(Measure) uses NumberFormatter when available
  
Version 1.9.8 -> 2.0
--------------------
  - use icu-config for configuring compiler and linker (Constantine Peresypkin)
  - added wrappers for UBidiPairedBracketType enum
  - added wrappers for UWordBreakValues enum
  - added wrappers for UJoiningGroup enum
  - added wrappers for 120+ MeasureUnit static factory methods
  - added wrapper for NoUnit class
  - added wrapper for TimeUnit class
  - added missing Measure constructor(Formattable or number, MeasureUnit)
  - added wrappers for NumberFormatter and related classes and enums, and tests
  - added wrapper for SimpleFormatter and tests
  - fixed bugs in test_LocaleData.py using undefined values (Fredrik Roubert)
  - added wrapper for UMemory and made it UObject's base
  - removed unused docs.py

Version 1.9.7 -> 1.9.8
----------------------
  - fixed bugs in "UnicodeString as sequence"; it's a sequence of 16-bit UChar
  - added support for ICU 60.1

Version 1.9.6 -> 1.9.7
----------------------
  - fixed bug in setup.py with Python 3 when ICU_VERSION obtained from env
  - added workaround for https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54249
  - added support for ICU 59.1

Version 1.9.5 -> 1.9.6
----------------------
  - turned icu into a package and moved docs.py into it
  - fixed a bunch of warnings about missing int/int32_t casts
  - added reduced version of missing in < 2.7 check_output() used in setup.py
  - added wrapper for MessageFormat::getFormatNames()
  - added check for ICU_VERSION env variable before calling icu-config
  - added wrappers for static Normalizer2 constructors that appeared in ICU 49
  - hopefully workedaround 'daylight' #define on Windows

Version 1.9.4 -> 1.9.5
----------------------
  - added icu-config --version check in setup.py to exclude libicule from libs
  - fixed bug with Python3.3+ <-> UnicodeString conversion with surrogate pairs
  - reworked Python3.3+ <-> UnicodeString with no allocations (Markus Scherer)
  - fixed bugs with 32bit Python2..Python3.2 <-> UnicodeString conversions
  - added conditionals around uses of features in newer ICUs (Keegan Parker)

Version 1.9.3 -> 1.9.4
----------------------
  - added wrappers for uloc_addLikelySubtags(), uloc_minimizeSubtags() on Locale
  - fixed bug in some script.cpp wrappers not accepting surrogate pairs
  - added wrapper for UnicodeString.countChar32() and test
  - fixed crasher due to ICUException not incref'ing members during copy
  - added support for ICU 58.1 (conditionally removed layout engine wrapper)
  - fixed bug in StringCharacterIterator's dealloc freeing random memory
  - reworked Python <-> Unicode conversions for Python 3.3+ to use new APIs

Version 1.9.2 -> 1.9.3
----------------------
  - added missing conditionals around uses of features in newer ICU versions
  - added wrappers for TimeZone::getIDForWindowsID, TimeZone::getWindowsID
  - added wrappers for DateTimePatternGenerator
  - added missing Context and BooleanAttribute wrappers on DateFormat
  - added support for ICU 57.1
  - build tested with Python 2.7.5, Python 3.5.1 and PyPy 2.2.1

Version 1.9 -> 1.9.2
--------------------
  - added MANIFEST.in to ensure nothing's missing in the 'sdist' package
  - enabled -Wwrite-strings and fixed warnings
  - added missing conditionals around uses of features in newer ICU versions

Version 1.8 -> 1.9
------------------
  - fixed utf-8 conversion error position reporting (bug 13113)
  - fixed delete/delete[] bug in common.cpp (Fredrik Roubert)
  - added support for ICU 54.1
  - added wrapper for USpoofChecker and related enums
  - added support for ICU 55.1
  - replaced UnicodeString idna methods with new uidna.h UTS #46 wrapper (55.1)
  - added wrapper for Char functions and related enums (from uchar.h)
  - added wrapper for Shape defines and shapeArabic() (from ushape.h)
  - added wrapper for RelativeDateTimeFormatter (bug 13115)
  - build tested with Python 2.7.5, Python 3.3.0 and PyPy 2.2.1

Version 1.7 -> 1.8
------------------
  - added wrapper for Locale::getRoot()
  - added tp_hash implementation for Locale type based on Locale::hashCode()
  - fixed bug 13112 (Markus Scherer)
  - added support for building with PyPy (tested on PyPy 2.2.1 / Python 2.7.3)
  - added Locale(lcid) constructor calling uloc_getLocaleForLCID()
  - added wrapper for CompactDecimalFormat and its createInstance() method

Version 1.6 -> 1.7
------------------
  - added missing #include for <unicode/uscript.h>
  - fixed issues building against ICU 4.2
  - added wrapper for Script.isRightToLeft() (bug 13081)
  - added support for ICU 53.1 (bug 13110)
  - added wrappers for other Script functions introduced in ICU 51

Version 1.5 -> 1.6
------------------
  - removed wrappers for some layoutengine.cpp internal flags (bug 13074)
  - added wrappers for ULocaleData functions (bug 13080)
  - added wrappers for uscript functions and UScriptCode enum (bug 13081)
  - generalized freebsd setup.py support (Laurence Parry)
  - added support for ICU 52.1
  - added wrapper for Locale::setKeywordValue()
  - added Locale::removeKeywordValue()
  - added support for ListFormatter
  - build tested with Python 2.7 and Python 3.3.0

Version 1.4 -> 1.5
------------------
  - added wrapper for MessageFormat::format(argumentNames, arguments, ...)
  - fixed bug in t_transliterator_filteredTransliterate passing UBool for int
  - added wrapper for DateFormat::format(Calendar)
  - added wrapper for Calendar::set(UCalendarDateFields field, value)
  - added wrappers for UnicodeString::toTitle() w/o iterator (Fredrik Roubert)
  - added support for ICU 50.1
  - improved test_Collator's testGetSortKey() (Markus Scherer)
  - added pypi classifiers to PyICU project info, including Python 3 tag
  - build tested with Python 2.7 and Python 3.3.0

Version 1.3 -> 1.4
------------------
  - fixed bug with default tzinfo set on ICUtzinfo type (bug 13038)
  - fixed bug 13040 (Martin Hosken)
  - added wrapper for Transliterator::toRules()
  - added missing wrapper for RuleBasedNumberFormat(URBNFRuleSetTag, Locale)
  - added support for ICU 49.1.1
  - implemented wrapper for new NumberFormat.parseCurrency()
  - fixed bug in CurrencyAmount.str() not calling correct getDouble() overload
  - added ScriptCode constants new in 49.0

Version 1.2 -> 1.3
------------------
  - fixed bug 13031
  - PyICU ready for Python 3.2 (tests pass 2to3'd) (Martin von Gagern)
  - added auto-conversion of test sources for Python 3 during setup
  - added support for LEFontInstance and LayoutEngine (Martin Hosken, bug 13035)
  - fixed bugs in RegexMatcher and RegexPattern not keeping their inputs
  - added support for ICU 4.8.1.1

Version 1.1 -> 1.2
------------------
  - fixed bug 13009 (Martin von Gagern)
  - fixed bug 13011 (Martin von Gagern)
  - some unit test beautification (Martin von Gagern)
  - added macros for RTTI checks (Martin von Gagern)
  - fixed bug 13012
  - fixed bug 13013 (Yuriy Pilgun)
  - added wrappers for Locale::isBogus()/setToBogus() (Jimmy Yuen Ho Wong)
  - fixed bug 13022 (Martin von Gagern)
  - added support for ICU 4.8

Version 1.0 -> 1.1
------------------
  - added support for ICU 4.6
  - switched to using RTTI if ICU >= 4.6 instead of poor man's ICU RTTI
  - fixed bug with incorrect icu.VERSION string on Windows build

Version 1.0 -> 1.0.1
--------------------
  - removed variable length array uses in regex.cpp (Chandler Carruth)
  - fixed bug 12983
  - fixed bug with BreakIterator.setText() not keeping reference to text
  - fixed incorrect conditional <windows.h> include in locale.cpp (Ralf Haring)
  - fixed incorrect spellings of PyErr_SetFromWindowsErrWithFilename (ditto)
  - fixed incorrect declaration of PythonTransliterator (Christian Heimes)

Version 0.9 -> 1.0
------------------
  - added support for UnicodeSet, UnicodeFunctor, UnicodeFilter, UnicodeMatcher
  - added support for RegexPattern and RegexMatcher
  - added support for Normalizer
  - added support for UTransPosition (Christoph Burgmer)
  - added support for UTransPosition and UnicodeFilter methods to Transliterator
  - fixed bug in UnicodeString single character assignment method
  - added support for extending Transliterator from Python (Christoph Burgmer)
  - improved support for in-place operations on UnicodeStrings
  - added support for Transliterator::registerInstance (Christoph Burgmer)
  - added support for ICU 4.4
  - added support for Normalizer2, FilteredNormalizer2 if ICU version >= 4.4
  - added support for SelectFormat if ICU version >= 4.4
  - added support for TimeUnitFormat if ICU version >= 4.2
  - added support for PluralRules and PluralFormat if ICU version >= 4.0
  - added support for DateInterval, DateIntervalFormat if ICU version >= 4.0
  - added support for CurrencyPluralInfo if ICU version >= 4.2
  - added support for UnicodeSetIterator and UnicodeSet iterates via it
  - added support for SearchIterator and StringSearch
  - added some missing Collator and RuleBasedCollator methods
  - refreshed README and CREDITS
  - fixed bugs with UnicodeString-converted text arg ownership in iterators
  - added missing conditionals for features in ICU versions >= 4.0
  - README now marked-up with reStructuredText (Christoph Burgmer)
  - PyICU main module renamed to 'icu' (with deprecation warning for old name)
  - UnicodeString objects are now hashable
  - reviewed all wrapped ICU setters for parameter ownership
  - removed symbol prefixes from wrapped typed enums symbols
  - added ResourceBundle.setAppData() implementation that memory maps file

Version 0.8 -> 0.9
------------------
  - fixed 64-bit random crasher bug in registerType()/isInstance()
  - fixed bug 11548
  - added entries for freebsd7 to setup.py (Jan Gehring)
  - added support for building on Solaris (Christian Kesselheim)
  - added missing wrapper for Collator.getSortKey()
  - added support for built-in Transliterators (bug 12870)
  - removed support for ICU internal URES_TABLE32 ResourceBundle type
  - added support for TimeZone::getDSTSavings() (Jimmy Yuen Ho Wong)
  - added support for ICU 4.2
  - refreshed README

Version 0.6 -> 0.8
------------------
  - ICUtzinfo and FloatingTZ types now written in C for faster performance
  - fixed bug 8180
  - fixed bug 9229
  - reworked FloatingTZ to optionally wrap a specific tzinfo instead of default
  - incorporated c++ patches by Fredrik Roubert
  - changed Exact unicode and string check to allow subclasses
  - replaced Makefile with setup.py for distutils-based build (Bernd Zeimetz)
  - PyICU supported with ICU 3.6 or 3.8
  - PyICU supported on 64-bit processors (bug 11394)

Version 0.5 -> 0.6
------------------
  - integrated patch to support Python 2.3 and MSVC 6
  - changed naive datetime to UDate conversion to use ICUtzinfo.default
  - fixed bug not checking return value of PyImport_ImportModule
  - PyICU now wraps ICU 3.6
  - added support for building with Python 2.5
  - added support for CharsetDetector and CharsetMatch C ICU APIs
  - added UnicodeString.encode() to access compression and conversion APIs
  - added support for IDNA APIs to UnicodeString
  - added support for MessageFormat(string) %(objs) style formatting
  - fixed bug in Formattable constructor not accepting a python unicode string
  - added support for BreakIterator::DONE
  - added support for BreakIterator::getText()
  - added support for BreakIterator::nextBoundary() to bypass iterator code

Version 0.4 -> 0.5
------------------
  - changed OS X linking to resolve all symbols at link time
  - Collator.getCollationKey() wasn't working
  - added Collator.getCollationKey(string) overload
  - using u_strFromUTF32() now to convert 4 byte unicode to 2 byte unicode
  - improved support for Python 2.3
  - PyICU no longer uses SWIG, wrappers are written by hand
  - all APIs returning UnicodeString now return 'unicode'
  - all APIs returning UnicodeString also take a UnicodeString arg to return it

Version 0.3 -> 0.4
------------------
  - PyICU now wraps ICU 3.4
  - added Calendar.getType(), changed Calendar.__repr__()
  - added Locale.createKeywords(), Locale.getKeywordValue()
  - moved Locale to locale.i and added support for ResourceBundle
  - replaced TimeZone.adoptDefault() with TimeZone.getDefault()

Version 0.2 -> 0.3
------------------
  - added support for CanonicalIterator, CollationElementIterator
  - added static formatMessage() method on MessageFormat
  - added static encoding helper methods to UnicodeString
  - reworked PyString_AsUnicodeString() to report decode errors by default
  - added support for Collator, RuleBasedCollator and CollationKey
  - added test_Collator unit tests
  - added test_MessageFormat unit tests
  - fixed various MessageFormat bugs
  - fixed bug in ICUtzinfo, now returning copy of ICU TimeZone instance
  - fixed bug in TimeZone.adoptDefault() not checking type of pointer
  - added __eq__, __ne__ and __hash__ methods to ICUtzinfo
  - MessageFormat.getFormats() now returns copies of concrete formats

Version 0.1 -> 0.2
------------------
  - added most missing UnicodeString methods
  - added support for the BreakIterator and CharacterIterator classes

Version 0.0 -> 0.1
------------------
- initial release
