summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/source/whatsnew/0.8.0.rst61
1 files changed, 61 insertions, 0 deletions
diff --git a/doc/source/whatsnew/0.8.0.rst b/doc/source/whatsnew/0.8.0.rst
index b2236e44..e1acb5db 100644
--- a/doc/source/whatsnew/0.8.0.rst
+++ b/doc/source/whatsnew/0.8.0.rst
@@ -74,6 +74,67 @@ This also works for :class:`apt.Cache`::
for package in my_selected_packages:
package.mark_install() # Instance of apt.Package
+Unification of dependency handling
+----------------------------------
+In apt 0.7, there were three different return types of functions parsing
+dependencies.
+
+First of all, there were :func:`apt_pkg.ParseDepends()` and
+:func:`apt_pkg.ParseSrcDepends()` which returned a list of or groups (which
+are lists themselves) which contain tuples in the format ``(package,ver,op)``,
+whereas op is one of "<=",">=","<<",">>","=","!=".
+
+Secondly, there was Package.DependsListStr which returned a dictionary mapping
+the type of the dependency (e.g. 'Depends', 'Recommends') to a list similar to
+those of :func:`apt_pkg.ParseDepends()`. The only difference was that the
+values ">>", "<<" of op are ">", "<" instead.
+
+Thirdly, there was SourceRecords.BuildDepends, which returned a simple list
+of tuples in the format ``(package, version, op, type)``, whereas ``op`` was
+the integer representation of those ">>", "<<" actions and ``type`` an integer
+representing the type of the dependency (e.g. 'Build-Depends'). The whole
+format was almost useless from the Python perspective because the string
+representations or constants for checking the values were not exported.
+
+python-apt 0.8 puts an end to this confusion and uses one basic format, which
+is the format known from Package.DependsListStr. The format change only applies
+to the new functions and attributes, i.e. :attr:`SourceRecords.build_depends`
+will now return a dict, whereas :attr:`SourceRecords.BuildDepends` will still
+return the classic format. The functions :func:`apt_pkg.parse_depends` and
+:func:`apt_pkg.parse_src_depends` now use the same values for ``op`` as
+:attr:`Package.DependsListStr` does.
+
+Example::
+
+ >>> s = apt_pkg.SourceRecords()
+ >>> s.lookup("apt")
+ 1
+ >>> s.build_depends
+ {'Build-Depends': [[('debhelper', '5.0', '>=')],
+ [('libdb-dev', '', '')],
+ [('gettext', '0.12', '>=')],
+ [('libcurl4-gnutls-dev', '', ''),
+ ('libcurl3-gnutls-dev', '7.15.5', '>=')],
+ [('debiandoc-sgml', '', '')],
+ [('docbook-utils', '0.6.12', '>=')],
+ [('xsltproc', '', '')],
+ [('docbook-xsl', '', '')],
+ [('xmlto', '', '')]]}
+ >>> s.BuildDepends
+ [('debhelper', '5.0', 2, 0),
+ ('libdb-dev', '', 0, 0),
+ ('gettext', '0.12', 2, 0),
+ ('libcurl4-gnutls-dev', '', 16, 0),
+ ('libcurl3-gnutls-dev', '7.15.5', 2, 0),
+ ('debiandoc-sgml', '', 0, 0),
+ ('docbook-utils', '0.6.12', 2, 0),
+ ('xsltproc', '', 0, 0),
+ ('docbook-xsl', '', 0, 0),
+ ('xmlto', '', 0, 0)]
+
+
+
+
Other changes
-------------