uCommon Library NEWS -- history of visible user changes. Updated 2008-04-15.

uCommon C++ 0.4 codebase completed and ready for release with the introduction
of the GNU GPL V3.  This is a complete rewrite of UCommon as a C++ library for
threading and design patterns suitable for deeply embedded targets.

uCommon C++ 0.7 codebase now has core documentation and basic library theory in
header files.  This documentation can be generated with doxygen or by using
"make doxy".

uCommon C++ 1.0 release has been simplified, fully documented, and modified in
specific ways to simplify the migration and merge with GNU Common C++ to form
GNU Common C++ 2.0.

uCommon C++ 1.5 release begins the process of migrating GNU Common C++ into the
core GNU uCommon C++ codebase. Some GNU Common C++ classes, including tcp
streaming, xml parser, and persist, have been revised and integrated for the
1.5.0 release itself.  Other GNU Common C++ classes will be integrated as
requested and needed.  The 1.5/1.x series will actually be the last UCommon
release sets, as GNU uCommon C++ 2.0 will instead be released as GNU Common C++
2 2.0.

uCommon C++ 2.0 released under the GNU Lesser General Public License, Version 3
or later.

uCommon C++ 2.1 is considered a refactored abi release offering greater
clarity, consistency of use, and additional features that were migrated from
Common C++. The 2.1 release series may continue to introduce additional
classes.

ucommon 3.0 merges other ucommon related libraries to create a single ucommon
framework for application development.

ucommon 3.1 introduced the ucommon secure framework with support for ssl
sockets, random number generation, ciphering, and digest computation.
Further cryptographic features will be added over time.

