.. _change:

:history: 20090524T134300, brand new docs.
:history: 20090613T164000, final touches for 3.0
:history: 20090706T205000, changes for 3.0.1
:history: 20091004T170700, changes for 3.1

------------------------------------
Major change history for coverage.py
------------------------------------

These are the major changes for coverage.py.  For a more complete change history,
see the `CHANGES.txt <http://bitbucket.org/ned/coveragepy/src/tip/CHANGES.txt>`_
file.


Version 3.1, 4 October 2009
---------------------------

- Python 3.1 is now supported.

- Coverage.py has a new command line syntax with sub-commands.  This expands
  the possibilities for adding features and options in the future.  The old
  syntax is still supported.  Try "coverage help" to see the new commands.
  Thanks to Ben Finney for early help.

- Added an experimental "coverage xml" command for producing coverage reports
  in a Cobertura-compatible XML format.  Thanks, Bill Hart.

- Added the ``--timid`` option to enable a simpler slower trace function that
  works for DecoratorTools projects, including TurboGears.  Fixed `issue 12`_
  and `issue 13`_.

- HTML reports now display syntax-colored Python source.

- Added a "coverage debug" command for getting diagnostic information about the
  coverage.py installation.

.. _issue 12: http://bitbucket.org/ned/coveragepy/issue/12
.. _issue 13: http://bitbucket.org/ned/coveragepy/issue/13


Version 3.0.1, 7 July 2009
--------------------------

- Removed the recursion limit in the tracer function.  Previously, code that
  ran more than 500 frames deep would crash.

- Fixed a bizarre problem involving pyexpat, whereby lines following XML parser
  invocations could be overlooked.

- On Python 2.3, coverage.py could mis-measure code with exceptions being
  raised.  This is now fixed.

- The coverage.py code itself will now not be measured by coverage.py, and no
  coverage modules will be mentioned in the nose --with-cover plugin.

- When running source files, coverage.py now opens them in universal newline
  mode just like Python does.  This lets it run Windows files on Mac, for
  example.


Version 3.0b3, 16 May 2009
--------------------------

- Added parameters to coverage.__init__ for options that had been set on the
  coverage object itself.
  
- Added clear_exclude() and get_exclude_list() methods for programmatic
  manipulation of the exclude regexes.

- Added coverage.load() to read previously-saved data from the data file.

- When using the object api (that is, constructing a coverage() object), data
  is no longer saved automatically on process exit.  You can re-enable it with
  the auto_data=True parameter on the coverage() constructor. The module-level
  interface still uses automatic saving.


Version 3.0b2, 30 April 2009
----------------------------

HTML reporting, and continued refactoring.

- HTML reports and annotation of source files: use the new -b (browser) switch.
  Thanks to George Song for code, inspiration and guidance.

- Code in the Python standard library is not measured by default.  If you need
  to measure standard library code, use the -L command-line switch during
  execution, or the cover_pylib=True argument to the coverage() constructor.

- coverage.annotate_file is no longer available.

- Removed the undocumented cache_file argument to coverage.usecache().


Version 3.0b1, 7 March 2009
---------------------------

Major overhaul.

- Coverage is now a package rather than a module.  Functionality has been split
  into classes.

- The trace function is implemented in C for speed.  Coverage runs are now
  much faster.  Thanks to David Christian for productive micro-sprints and
  other encouragement.

- The minimum supported Python version is 2.3.
 
