add indicative Autoremove stanzas in solutions
authorStefano Zacchiroli <zack@upsilon.cc>
Thu, 31 Mar 2011 09:49:34 +0000 (11:49 +0200)
committerStefano Zacchiroli <zack@upsilon.cc>
Thu, 31 Mar 2011 09:49:34 +0000 (11:49 +0200)
as suggested by David

EDSP version 0.3

doc/apt-solver-protocol.mdwn

index 85cd98d..4c520b0 100644 (file)
@@ -1,6 +1,6 @@
 ** TENTATIVE PROPOSAL, VERY VERY VERY DRAFT **
 
-# APT External Dependency Solver Protocol (EDSP) - version 0.2
+# APT External Dependency Solver Protocol (EDSP) - version 0.3
 
 This document describes the communication protocol between APT and
 external dependency solvers. The protocol is called APT EDSP, for "APT
@@ -112,7 +112,7 @@ and followed by a mixture of action and preference fields.
 
 The value of the **Request:** field is a string describing the EDSP
 protocol which will be used to communicate. At present, the string must
-be `EDSP 0.2`.
+be `EDSP 0.3`.
 
 a unique request identifier, such as an
 UUID. Request fields are mainly used to identify the beginning of a
@@ -216,9 +216,11 @@ user.
 
 #### Solution
 
-A solution is a list of Deb 822 stanzas. Each of them is either an
-install stanza, telling APT to install a specific package, or a remove
-stanza, telling APT to remove one.
+A solution is a list of Deb 822 stanzas. Each of them could be an
+install stanza (telling APT to install a specific package), a remove
+stanza (telling APT to remove one), or an autoremove stanza (telling APT
+about the *future* possibility of removing a package using the
+Autoremove action).
 
 An **install stanza** starts with an Install field and supports the
 following fields:
@@ -232,6 +234,14 @@ following fields:
 **Remove stanzas** are similar to install stanzas, but have **Remove**
 fields instead of Install fields.
 
+**Autoremove stanzas** are similar to install stanzas, but have
+**Autoremove** fields instead of Install fields. Autoremove stanzas
+should be output so that APT can inform the user of which packages they
+can now autoremove, as a consequence of the executed action. However,
+this protocol makes no assumption on the fact that a subsequent
+invocation of an Autoremove action will actually remove the very same
+packages indicated by Autoremove stanzas in the former solution.
+
 In terms of expressivity, install and remove stanzas can carry one
 single field each, as APT-IDs are enough to pinpoint packages to be
 installed/removed. Nonetheless, for protocol readability, it is