0.1 (5 Sep 2001) * First public release. 0.2 (19 Feb 2002) * Fix for Python 2.2: define our own set of names for the standard Python types, so that an object schema that worked with Python 2.1 will continue to work with Python 2.2 (and vice-versa). * Radically simplified how Grouch objects are pickled and unpickled; the excessively complicated design in Grouch 0.1 was broken by design and only worked in Python 2.1 because of pure blind luck. (The change in dictionary order in Python 2.2 revealed its brokenness.) * Fix for Python 2.2: use vars() instead of dir() to get an object's instance attributes. * Fixed a subtle problem in union types that masked certain type errors: eg. if a variable x is declared to be of type "Foo|Bar" (instance of Foo or instance of Bar), and x is set to a Foo instance with a type problem of its own (say, missing attribute a), Grouch turned the "x is a Foo instance with attribute a missing" into "x is not a valid Foo instance", which meant that "x is neither a Foo nor a Bar". Unfortunately, the new logic means that unions like "[int] | [string]" won't work, until I have a better understanding of what's going on here. Type systems are tricky. 0.3 (16 July 2004), svn >24702 * Handle attributes whose names start with '__'. * Support syntax for sets. 0.4 (14 September 2004), svn >25081 * Convert unittests to utests.