changelog.rst 8.5 KB

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