ChangeLog for logilab.common
============================

2005-09-06  --  0.12.0
    * shellutils: bug fix in mv()
    * compat:
 	- use set when available
	- added sorted and reversed
    * table: new methods and some optimizations
    * tree: added some deprecation warnings

2005-07-25  --  0.11.0
    * db: refactoring, added sqlite support, new helpers to support DBMS
      specific features
	
2005-07-07  --  0.10.1
    * configuration: added basic man page generation feature
    * ureports: unicode handling, some minor fixes
    * testlib: enhance MockConnection
    * python2.2 related fixes in configuration and astng



2005-05-04  --  0.10.0
    * astng: improve unit tests coverage
	
    * astng.astng: fix Function.format_args, new method
      Function.default_value, bug fix in Node.resolve
	
    * astng.builder: handle classmethod and staticmethod as decorator,
      handle data descriptors when building from living objects

    * ureports:
	
      - new docbook formatter
      - handle ReST like urls in the text writer
      - new build_summary utility function


	
2005-04-14  --  0.9.3
    * optik_ext: add man page generation based on optik/optparse options
      definition

    * modutils: new arguments to get_source_file to handle files without
      extensions

    * astng: fix problem with the manager and python 2.2 (optik related)


	
2005-02-16  --  0.9.2
    * textutils:
	
      - added epydoc documentation
      - new sep argument to the get_csv function
      - fix pb with normalize_* functions on windows platforms

    * fileutils:
	
      - added epydoc documentation
      - fixed bug in get_by_ext (renamed files_by_ext) with the
        exclude_dirs argument

    * configuration:

      - fixed a bug in configuration file generation on windows platforms
      - better test coverage
	
    * fixed testlib.DocTest which wasn't working anymore with recent
      versions of pyunit

    * added "context_file" argument to file_from_modpath to avoid
      possible relative import problems

    * astng: use the new context_file argument from Node.resolve()

	
	
2005-02-04  --  0.9.1
    * astng:
	
      - remove buggy print
      - fixed builder to deal with builtin methods
      - fixed raw_building.build_function with python 2.4
	
    * modutils: code cleanup, some reimplementation based on "imp",
      better handling of windows specific extensions, epydoc documentation
   
    * fileutils: new exclude_dirs argument to the get_by_ext function

    * testlib: main() support -p option to run test in a profiled mode
	
    * generated documentation for modutils in the doc/ subdirectory


	
2005-01-20  --  0.9.0
    * astng:
	
      - refactoring of some huge methods
      - fix interface resolving when __implements__ is defined in a parent
        class in another module
      - add special code in the builder to fix problem with qt
      - new source_line method on Node
      - fix sys.path during parsing to avoid some failure when trying
        to get imported names by `from module import *`, and use an astng
        building instead of exec'ing the statement
      - fix possible AttributeError with Function.type 
      - manager.astng_from_file fallback to astng_from_module if possible
	
    * textutils: fix bug in normalize_paragraph, unquote handle empty string
      correctly

    * modutils:
      - use a cache in has_module to speed up things when heavily used
      - fix file_from_modpath to handle pyxml and os.path

    * configuration: fix problem with serialization/deserialization of empty
      string


	  
2005-01-04  --  0.8.0
    * modutils: a lot of fixes/rewrite on various functions to avoid
      unnecessary imports, sys.path pollution, and other bugs (notably
      making plylint reporting wrong modules name/path)

    * astng: new "inspector" module, initially taken from pyreverse code
      (http://www.logilab.org/projects/pyreverse), miscellaneous bug fixes

    * configuration: new 'usage' parameter on the Configuration
      initializer

    * logger: unicode support

    * fileutils: get_by_ext also ignore ".svn" directories, not only "CVS"



2004-11-03  --  0.7.1
    * astng:
	
      - don't raise a syntax error on files missing a trailing \n.
      - fix utils.is_abstract (was causing an unexpected exception if a
        string exception was raised).
      - fix utils.get_implemented.
      - fix file based manager's cache problem.

    * textutils: fixed normalize_text / normalize_paragraph functions



2004-10-11  --  0.7.0
    * astng: new methods on the manager, returning astng with nodes for
      packages (ie recursive structure instead of the flat one), with
      automatic lazy loading + introduction of a dict like interface to
      manipulate those nodes and Module, Class and Function nodes.

    * logservice: module imported from the ginco project

    * configuration: added new classes Configuration and
      OptionsManager2Configuration adapter, fix bug in loading options
      from file

    * optik_ext/configuration: some new option type "multiple_choice"

    * fileutils: new ensure_mode function

    * compat: support for sum and enumerate



2004-09-23  --  0.6.0
    * db: added DBAPIAdapter

    * textutils: fix in pretty_match causing malformated messages in pylint
      added ansi colorization management

    * modutils: new functions get_module_files, has_module and file_from_modpath

    * astng: some new utility functions taken from pylint, minor changes to the
      manager API, Node.resolve doesn't support anymore "living" resolution,
      some new methods on astng nodes

    * compat: new module for a transparent compatibility layer between
      different python version (actually 2.2 vs 2.3 for now)



2004-07-08  --  0.5.2
    * astng: fix another bug in klassnode.ancestors() method...

    * db: fix mysql access

    * cli: added a space after the prompt



2004-06-04  --  0.5.1
    * astng: fix undefined var bug in klassnode.ancestors() method

    * ureports: fix attributes on title layout

    * packaging:fix the setup.py script to allow bdist_winst (well, the
      generated installer has not been tested...) with the necessary
      logilab/__init__.py file



2004-05-10  --  0.5.0
    * ureports: new Universal Reports sub-package

    * xmlrpcutils: new xmlrpc utilities module

    * astng: resolve(name) now handle (at least try) builtins

    * astng: fixed Class.as_string (empty paren when no base classes)

    * astng.builder: knows a litle about method descriptors, Functin with
      unknown arguments have argnames==None.

    * fileutils: new is_binary(filename) function

    * textutils: fixed some Windows bug

    * tree: base not doesn't have the "title" attribute anymore

    * testlib: removed the spawn function (who used that ?!), added MockSMTP,
      MockConfigParser, MockConnexion and DocTestCase (test class for
      modules embeding doctest). All mocks objects are very basic and will be
      enhanced as the need comes.

    * testlib: added a TestCase class with some additional methods then
      the regular unittest.TestCase class

    * cli: allow specifying a command prefix by a class attributes,more
      robust, print available commands on help

    * db: new "binary" function to get the binary wrapper for a given driver,
      and new "system_database" function returning the system database name
      for different DBMS.

    * configuration: better group control



2004-02-20  --  0.4.5
    * db: it's now possible to fix the modules search order. By default call
      set_isolation_level if psycopg is used



2004-02-17  --  0.4.4
    * modutils: special case for os.path in get_module_part

    * astng: handle special case where we are on a package node importing a module
      using the same name as the package, which may end in an infinite loop
      on relative imports in Node.resolve

    * fileutils: new get_by_ext function



2004-02-11  --  0.4.3
    * astng: refactoring of Class.ancestor_for_* methods (now
      depends on python 2.2 generators)

    * astng: make it more robust

    * configuration: more explicit exception when a bad option is
      provided

    * configuration: define a short version of an option using the "short"
      keyword, taking a single letter as value

    * configuration: new method global_set_option on the manager

    * testlib : allow no "suite" nor "Run" function in test modules

    * shellutils: fix bug in *mv*



2003-12-23  --  0.4.2
    * added Project class and some new methods to the ASTNGManger

    * some new functions in astng.utils

    * fixed bugs in some as_string methods

    * fixed bug in textutils.get_csv

    * fileutils.lines now take a "comments" argument, allowing to ignore
      comment lines



2003-11-24  --  0.4.1
    * added missing as_string methods on astng nodes

    * bug fixes on Node.resolve

    * minor fixes in textutils and fileutils

    * better test coverage (need more !)



2003-11-13  --  0.4.0
    * new textutils and shellutils modules

    * full astng rewrite, now based on the compiler.ast package from the
      standard library

    * added next_sbling and previous_sibling methods to Node

    * fix get_cycles



2003-10-14  --  0.3.5
    * fixed null size cache bug

    * added 'sort_by_column*' methods for tables



2003-10-08  --  0.3.4
    * fix bug in asntg, occuring with python2.3 and modules including an
      encoding declaration

    * fix bug in astutils.get_rhs_consumed_names, occuring in lists
      comprehension

    * remove debug print statement from configuration.py which caused a
      generation of incorrect configuration files.



2003-10-01  --  0.3.3
    * fix bug in modutils.modpath_from_file

    * new module corbautils



2003-09-18  --  0.3.2
    * fix bug in modutils.load_module_from_parts

    * add missing __future__ imports



2003-09-18  --  0.3.1
    * change implementation of modutils.load_module_from_name (use find_module
      and load_module instead of __import__)

    * more bug fixes in astng

    * new functions in fileutils (lines, export) and __init__ (Execute)



2003-09-12  --  0.3
    * expect "def suite" or "def Run(runner=None)" on unittest module

    * fixes in modutils

    * major fixes in astng

    * new fileutils and astutils modules

    * enhancement of the configuration module

    * new option type "named" in optik_the ext module



2003-06-18  --  0.2.2
    * astng bug fixes



2003-06-04  --  0.2.1
    * bug fixes

    * fix packaging problem



2003-06-02  --  0.2.0
    * add the interface, modutils, optik_ext and configuration modules

    * add the astng sub-package

    * miscellaneous fixes



2003-04-17  --  0.1.2
    * add the stringio module

    * minor fixes



2003-02-28  --  0.1.1
    * fix bug in tree.py

    * new file distutils_twisted



2003-02-17  --  0.1.0
    * initial revision
