doc/publication.txt
author Edward Pilatowicz <edward.pilatowicz@oracle.com>
Mon, 16 Sep 2013 21:26:31 -0700
changeset 2945 24196b483cc6
parent 30 f06ad6cb4b3f
permissions -rw-r--r--
17461187 packagemanager displays unexpected error message
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
29
f621f1df0849 fix install target; correct imports for module renames
"Stephen Hahn <sch@sun.com>"
parents:
diff changeset
     1
f621f1df0849 fix install target; correct imports for module renames
"Stephen Hahn <sch@sun.com>"
parents:
diff changeset
     2
pkg
f621f1df0849 fix install target; correct imports for module renames
"Stephen Hahn <sch@sun.com>"
parents:
diff changeset
     3
PUBLICATION AND TRANSACTIONS
f621f1df0849 fix install target; correct imports for module renames
"Stephen Hahn <sch@sun.com>"
parents:
diff changeset
     4
f621f1df0849 fix install target; correct imports for module renames
"Stephen Hahn <sch@sun.com>"
parents:
diff changeset
     5
:vim set expandtab:
f621f1df0849 fix install target; correct imports for module renames
"Stephen Hahn <sch@sun.com>"
parents:
diff changeset
     6
f621f1df0849 fix install target; correct imports for module renames
"Stephen Hahn <sch@sun.com>"
parents:
diff changeset
     7
1.  Problem
f621f1df0849 fix install target; correct imports for module renames
"Stephen Hahn <sch@sun.com>"
parents:
diff changeset
     8
f621f1df0849 fix install target; correct imports for module renames
"Stephen Hahn <sch@sun.com>"
parents:
diff changeset
     9
    We prefer having "fat" packages, to having a plurality of speciated
f621f1df0849 fix install target; correct imports for module renames
"Stephen Hahn <sch@sun.com>"
parents:
diff changeset
    10
    nodes in our version tree.  That is, we hope to have exception
30
f06ad6cb4b3f stop using flavour terminology
Stephen Hahn <sch@sun.com>
parents: 29
diff changeset
    11
    packages have a single platform attribute.  This means that we have
29
f621f1df0849 fix install target; correct imports for module renames
"Stephen Hahn <sch@sun.com>"
parents:
diff changeset
    12
f621f1df0849 fix install target; correct imports for module renames
"Stephen Hahn <sch@sun.com>"
parents:
diff changeset
    13
    build files on platform A and B
f621f1df0849 fix install target; correct imports for module renames
"Stephen Hahn <sch@sun.com>"
parents:
diff changeset
    14
    commit fat package containing (A, B) files
f621f1df0849 fix install target; correct imports for module renames
"Stephen Hahn <sch@sun.com>"
parents:
diff changeset
    15
f621f1df0849 fix install target; correct imports for module renames
"Stephen Hahn <sch@sun.com>"
parents:
diff changeset
    16
    as the gross ordering of operations.  Taken strictly, this ordering
f621f1df0849 fix install target; correct imports for module renames
"Stephen Hahn <sch@sun.com>"
parents:
diff changeset
    17
    would be too restrictive, particularly once the set of platforms
f621f1df0849 fix install target; correct imports for module renames
"Stephen Hahn <sch@sun.com>"
parents:
diff changeset
    18
    which might participate in a package goes beyond two.
f621f1df0849 fix install target; correct imports for module renames
"Stephen Hahn <sch@sun.com>"
parents:
diff changeset
    19
f621f1df0849 fix install target; correct imports for module renames
"Stephen Hahn <sch@sun.com>"
parents:
diff changeset
    20
2.  Ways to handle multi-platform transactions
f621f1df0849 fix install target; correct imports for module renames
"Stephen Hahn <sch@sun.com>"
parents:
diff changeset
    21
f621f1df0849 fix install target; correct imports for module renames
"Stephen Hahn <sch@sun.com>"
parents:
diff changeset
    22
    Treat every transaction on v as an update to the version, v.  A
f621f1df0849 fix install target; correct imports for module renames
"Stephen Hahn <sch@sun.com>"
parents:
diff changeset
    23
    platform-specific update would include both common files and the
30
f06ad6cb4b3f stop using flavour terminology
Stephen Hahn <sch@sun.com>
parents: 29
diff changeset
    24
    platform-tagged or architecture-tagged files.  If common files
f06ad6cb4b3f stop using flavour terminology
Stephen Hahn <sch@sun.com>
parents: 29
diff changeset
    25
    differed between v:t_1 and v:t_2, then this transaction isn't
f06ad6cb4b3f stop using flavour terminology
Stephen Hahn <sch@sun.com>
parents: 29
diff changeset
    26
    valid--it's branch modifying.
29
f621f1df0849 fix install target; correct imports for module renames
"Stephen Hahn <sch@sun.com>"
parents:
diff changeset
    27
f621f1df0849 fix install target; correct imports for module renames
"Stephen Hahn <sch@sun.com>"
parents:
diff changeset
    28
    Otherwise, the v:t_2 package contains the common files and the set
f621f1df0849 fix install target; correct imports for module renames
"Stephen Hahn <sch@sun.com>"
parents:
diff changeset
    29
    of flavoured files submitted so far.
f621f1df0849 fix install target; correct imports for module renames
"Stephen Hahn <sch@sun.com>"
parents:
diff changeset
    30
f621f1df0849 fix install target; correct imports for module renames
"Stephen Hahn <sch@sun.com>"
parents:
diff changeset
    31
    (This approach evades the problem of expecting a platform-specific
f621f1df0849 fix install target; correct imports for module renames
"Stephen Hahn <sch@sun.com>"
parents:
diff changeset
    32
    update to only replace files with alternate versions.)
f621f1df0849 fix install target; correct imports for module renames
"Stephen Hahn <sch@sun.com>"
parents:
diff changeset
    33