This file contains historical changes up to release 0.2.1.
For more recent changes see the release notes on GitHub.

Refcycle changelog
==================

Release 0.2.1
-------------

This is a bugfix release, fixing an issue with the readthedocs
URLs in the project's description on PyPI.

Fixes
+++++

- Fix readthedocs URLs in the package long description. (#69)


Release 0.2.0
-------------

This is a minor release, containing a few new helper methods and
bugfixes. Highlights include the ``shortest_path`` and ``shortest_cycle``
methods, improved annotations, and fixes for performance bugs that make
linear-time algorithms take quadratic time or worse.

Features
++++++++

- Support Python 3.4 through 3.6. (#65, #55)

- New ``ObjectGraph`` methods: ``shortest_cycle``, ``find_by_typename``
  and ``count_by_typename``. (#64)

- New ``shortest_path`` method. (#61)

- Reduce memory usage of the AnnotatedGraph object by adding __slots__
  to the AnnotatedEdge and AnnotatedVertex types.

- Add specific annotation for ``module`` objects.

- Add specific annotations for ``getset_descriptor`` objects.

Changes
+++++++

- Use the current line number instead of the first line number in
  the annotations for ``frame`` objects. (#50)

Fixes
+++++

- Fix quadratic-time behaviour in ``DirectedGraph.full_subgraph``. (#63)

- Fix non-linear (exponential, in extreme cases) running time in
  ``descendants`` and ``ancestors`` methods. (#62)

- Fix annotations for functions with no ``__name__`` attribute. (#59)

- In Python 2, fix annotations for bound methods with no ``im_class``
  attribute. (#56)

- Fix annotations for some peculiar ``frame`` objects whose ``f_locals`` dict
  has been replaced with a dict-like object. (The Enaml package does this.) (#51)

- Fix missing annotation for f_trace on frames.  This was causing one
  of the tests to fail when run under coverage. (#41)


Release 0.1.2
-------------

- Fix frame annotation test that failed on second and subsequent test runs.

- Rewrite README.rst and long description: update with PyPI information;
  remove outdated information; add prerequisites.

- Fix docs so that PDF build succeeds.


Release 0.1.1
-------------

- Fixed missing 'README.rst' in source distribution.


Release 0.1.0
-------------

- Added annotations for frame objects.

- Add 'IDirectedGraph.source_components' method for finding
  the strongly connected components not reachable from other
  components.

- Add annotations for basic types (strings, numbers).

- Fix buggy 'ancestors' and 'descendants' methods that didn't reliably
  explore to the given depth.

- Rename original 'export_json' (converting to a string) to 'to_json';
  'export_json' now exports to a file.

- Added ObjectGraph.export_image function; uses the Graphviz 'dot' command
  (if available) to write an image file.

- Ensure that export_json and to_dot always return Unicode.

- Fix quoting of labels with double quotes in in to_dot.

- Documentation and docstrings greatly improved.

- IDirectedGraph now inherits directly from appropriate abstract base classes
  (Container, Iterable, Sized).


Release 0.0.1
-------------

Bugfix release: fix setup.py download URL.


Release 0.0.0
-------------

First complete release.
