Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / tools / telemetry / third_party / modulegraph / doc / changelog.rst
blobf6725acec0b99c87224be1af01e0177df0961d47
1 Release history
2 ===============
4 0.12.1
5 ------
7 * Issue #25: Complex python files could cause an "maximum recursion depth exceeded"
8   exception due to using stack-based recursion to walk the module AST.
11 0.12
12 ----
14 * Added 'modulegraph.modulegraph.InvalidSourceModule'. This graph node is
15   used for Python source modules that cannot be compiled (for example because
16   they contain syntax errors).
18   This is primarily useful for being able to create a graph for packages
19   that have python 2.x or python 3.x compatibility in separate modules that
20   contain code that isn't valid in the "other" python version.
22 * Added 'modulegraph.modulegraph.InvalidCompiledModule'. This graph node
23   is used for Python bytecode modules that cannot be loaded.
25 * Added 'modulegraph.modulegraph.NamespacePackage'.
27   Patch by bitbucket user htgoebel.
29 * No longer add a MissingModule node to the graph for 'collections.defaultdict'
30   when using 'from collections import defaultdict' ('collections.defaultdict'
31   is an attribute of 'collections', not a submodule).
33 * Fixed typo in ModuleGraph.getReferences()
35 * Added ModuleGraph.getReferers(tonode). This methods yields the
36   nodes that are referencing *tonode* (the reverse of getReferences)
38 * The graph will no longer contain MissingModule nodes when using 'from ... import name' to
39   import a global variable in a python module.
41   There will still be MissingModule nodes for global variables in C extentions, and
42   for 'from missing import name' when 'missing' is itself a MissingModule.
44 * Issue #18: Don't assume that a PEP 302 loader object has a ``path`` attribute. That
45   attribute is not documented and is not always present.
47 0.11.2
48 ------
52 0.11.1
53 ------
55 * Issue #145: Don't exclude the platform specific 'path' modules (like ntpath)
57 0.11
58 ----
60 This is a feature release
62 Features
63 ........
65 * Hardcode knowlegde about the compatibility aliases in the email
66   module (for python 2.5 upto 3.0).
68   This makes it possible to remove a heavy-handed recipe from py2app.
70 * Added ``modegraph.zipio.getmode`` to fetch the Unix file mode
71   for a file.
73 * Added some handy methods to ``modulegraph.modulegraph.ModuleGraph``.
75 0.10.5
76 ------
78 This is a bugfix release
80 * Don't look at the file extension to determine the file type
81   in modulegraph.find_modules.parse_mf_results, but use the
82   class of the item.
84 * Issue #13: Improved handing of bad relative imports
85   ("from .foo import bar"), these tended to raise confusing errors and
86   are now handled like any other failed import.
88 0.10.4
89 ------
91 This is a bugfix release
93 * There were no 'classifiers' in the package metadata due to a bug
94   in setup.py.
96 0.10.3
97 ------
99 This is a bugfix release
101 Bugfixes
102 ........
104 * ``modulegraph.find.modules.parse_mf_results`` failed when the main script of
105   a py2app module didn't have a file name ending in '.py'.
107 0.10.2
108 ------
110 This is a bugfix release
112 Bugfixes
113 ........
115 * Issue #12: modulegraph would sometimes find the wrong package *__init__*
116   module due to using the wrong search method. One easy way to reproduce the
117   problem was to have a toplevel module named *__init__*.
119   Reported by Kentzo.
121 0.10.1
122 ------
124 This is a bugfix release
126 Bugfixes
127 ........
129 * Issue #11: creating xrefs and dotty graphs from modulegraphs (the --xref
130   and --graph options of py2app) didn't work with python 3 due to use of
131   APIs that aren't available in that version of python.
133   Reported by Andrew Barnert.
136 0.10
137 ----
139 This is a minor feature release
141 Features
142 ........
144 * ``modulegraph.find_modules.find_needed_modules`` claimed to automaticly
145   include subpackages for the "packages" argument as well, but that code
146   didn't work at all.
148 * Issue #9: The modulegraph script is deprecated, use
149   "python -mmodulegraph" instead.
151 * Issue #10: Ensure that the result of "zipio.open" can be used
152   in a with statement (that is, ``with zipio.open(...) as fp``.
154 * No longer use "2to3" to support Python 3.
156   Because of this modulegraph now supports Python 2.6
157   and later.
159 * Slightly improved HTML output, which makes it easier
160   to manipulate the generated HTML using JavaScript.
162   Patch by anatoly techtonik.
164 * Ensure modulegraph works with changes introduced after
165   Python 3.3b1.
167 * Implement support for PEP 420 ("Implicit namespace packages")
168   in Python 3.3.
170 * ``modulegraph.util.imp_walk`` is deprecated and will be
171   removed in the next release of this package.
173 Bugfixes
174 ........
176 * The module graph was incomplete, and generated incorrect warnings
177   along the way, when a subpackage contained import statements for
178   submodules.
180   An example of this is ``sqlalchemy.util``, the ``__init__.py`` file
181   for this package contains imports of modules in that modules using
182   the classic relative import syntax (that is ``import compat`` to
183   import ``sqlalchemy.util.compat``). Until this release modulegraph
184   searched the wrong path to locate these modules (and hence failed
185   to find them).
188 0.9.2
189 -----
191 This is a bugfix release
193 Bugfixes
194 ........
196 * The 'packages' option to modulegraph.find_modules.find_modules ignored
197   the search path argument but always used the default search path.
199 * The 'imp_find_modules' function in modulegraph.util has an argument 'path',
200   this was a string in previous release and can now also be a sequence.
202 * Don't crash when a module on the 'includes' list doesn't exist, but warn
203   just like for missing 'packages' (modulegraph.find_modules.find_modules)
205 0.9.1
206 -----
208 This is a bugfix release
210 Bug fixes
211 .........
213 - Fixed the name of nodes imports in packages where the first element of
214   a dotted name can be found but the rest cannot. This used to create
215   a MissingModule node for the dotted name in the global namespace instead
216   of relative to the package.
218   That is, given a package "pkg" with submodule "sub" if the "__init__.py"
219   of "pkg" contains "import sub.nomod" we now create a MissingModule node
220   for "pkg.sub.nomod" instead of "sub.nomod".
222   This fixes an issue with including the crcmod package in application
223   bundles, first reported on the pythonmac-sig mailinglist by
224   Brendan Simon.
229 This is a minor feature release
232 Features:
234 - Documentation is now generated using `sphinx <http://pypi.python.org/pypi/sphinx>`_
235   and can be viewed at <http://packages.python.org/modulegraph>.
237   The documention is very rough at this moment and in need of reorganisation and
238   language cleanup. I've basiclly writting the current version by reading the code
239   and documenting what it does, the order in which classes and methods are document
240   is therefore not necessarily the most useful.
242 - The repository has moved to bitbucket
244 - Renamed ``modulegraph.modulegraph.AddPackagePath`` to ``addPackagePath``,
245   likewise ``ReplacePackage`` is now ``replacePackage``. The old name is still
246   available, but is deprecated and will be removed before the 1.0 release.
248 - ``modulegraph.modulegraph`` contains two node types that are unused and
249   have unclear semantics: ``FlatPackage`` and ``ArchiveModule``. These node
250   types are deprecated and will be removed before 1.0 is released.
252 - Added a simple commandline tool (``modulegraph``) that will print information
253   about the dependency graph of a script.
255 - Added a module (``zipio``) for dealing with paths that may refer to entries
256   inside zipfiles (such as source paths referring to modules in zipped eggfiles).
258   With this addition ``modulegraph.modulegraph.os_listdir`` is deprecated and
259   it will be removed before the 1.0 release.
261 Bug fixes:
263 - The ``__cmp__`` method of a Node no longer causes an exception
264   when the compared-to object is not a Node. Patch by Ivan Kozik.
266 - Issue #1: The initialiser for ``modulegraph.ModuleGraph`` caused an exception
267   when an entry on the path (``sys.path``) doesn't actually exist.
269   Fix by "skurylo", testcase by Ronald.
271 - The code no longer worked with python 2.5, this release fixes that.
273 - Due to the switch to mercurial setuptools will no longer include
274   all required files. Fixed by adding a MANIFEST.in file
276 - The method for printing a ``.dot`` representation of a ``ModuleGraph``
277   works again.
280 0.8.1
281 -----
283 This is a minor feature release
285 Features:
287 - ``from __future__ import absolute_import`` is now supported
289 - Relative imports (``from . import module``) are now supported
291 - Add support for namespace packages when those are installed
292   using option ``--single-version-externally-managed`` (part
293   of setuptools/distribute)
298 This is a minor feature release
300 Features:
302 - Initial support for Python 3.x
304 - It is now possible to run the test suite
305   using ``python setup.py test``.
307   (The actual test suite is still fairly minimal though)