[packagekit] packagekit: Branch 'master'

Richard Hughes hughsient at kemper.freedesktop.org
Thu Sep 13 16:32:08 PDT 2007


 docs/introduction.xml |   63 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 63 insertions(+)

New commits:
diff-tree b84897f3aeb938ac72e1c9764359744286a1a881 (from d99cb7c5ecd4cbaeb2981fc0ef806184d8ef23e9)
Author: Richard Hughes <richard at hughsie.com>
Date:   Thu Sep 13 22:44:43 2007 +0100

    add some documentation about transaction_id. we don't use this yet, but will real soon

diff --git a/docs/introduction.xml b/docs/introduction.xml
index 7b721aa..20052ac 100644
--- a/docs/introduction.xml
+++ b/docs/introduction.xml
@@ -16,9 +16,13 @@
         <para>
           Checking for updates and installing in the background.
         </para>
+      </listitem>
+      <listitem>
         <para>
           Automatically installing new or add-on software.
         </para>
+      </listitem>
+      <listitem>
         <para>
           Monitoring the state of the system.
         </para>
@@ -465,6 +469,65 @@
         This can be done for any job type.
       </para>
     </sect2>
+
+    <sect2 id="introduction-ideas-transactionid">
+      <title>Transaction ID</title>
+      <para>
+        A <literal>transaction_id</literal> is a unique identifier that
+        identifies the present or past transaction.
+        A transaction is made up of one or more sub-transactions.
+        A transaction has one <literal>role</literal> for the entire lifetime,
+        but the transaction can different values of <literal>status</literal>
+        as the transaction is processed.
+      </para>
+      <para>
+        For example, if the user "Installed OpenOffice" and the backend has to:
+      </para>
+      <itemizedlist>
+        <listitem>
+          <para>
+            update libxml as a dependancy
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            install java as dependancy
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            install openoffice-bin
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            install openoffice-clipart
+          </para>
+        </listitem>
+      </itemizedlist>
+      <para>
+        This is one single transaction with the role <literal>install</literal>,
+        with 4 different sub-transactions.
+        This allows the user to rollback transactions with selected backends,
+        rather than select sub-transactions which may need complex complict
+        resolution.
+      </para>
+      <para>
+        The <literal>transaction_id</literal> must be of the format
+        <literal>job;identifier;data</literal> where the daemon controls
+        all parameters.
+        <literal>job</literal> is a monotonically updating number and is
+        retained over reboots.
+        <literal>identifier</literal> is random data used by the daemon to
+        ensure jobs started in parallel cannot race, and also to make a
+        malicious client program harder to write.
+        <literal>data</literal> can be used for refcounting in the backend or
+        for any other purpose.
+        It is designed to make the life of a backend writer a little bit easier.
+        An example <literal>transaction_id</literal> would be
+        <literal>45;dafeca;checkpoint32</literal>
+      </para>
+    </sect2>
   </sect1>
 
   <sect1 id="api-method-reference">



More information about the PackageKit mailing list