(bcc'ed to [email protected]  If you're interested in this
discussion, please join us over at [email protected].)

Hi folks,

I need to settle on a final design for the incorporations and
versions of consolidation repositories.  I intend to implement
this in the importer now to ease the consolidation transition
job, as well as in the ON IPS development gate.

1. Proposal

   - Consolidations will produce repositories which have
     dependencies specified using pkgdep.  Dependencies between
     packages in the same consolidation will be specified at the
     current version of the consolidation.  Dependencies on system
     components from outside the consolidation will be specified on
     the version of the component installed at build time.

   - Each consolidation will produce at least one consolidation
     incorporation which ties all packages for the current build
     from that consolidation together.  A consolidation may choose
     to produce multiple incorporations if its build and test
     process produces sets of software that are known and tested
     to be truly independent.  No consolidations are believed to
     have that infrastructure today except for a few
     developer-specific pieces.

     All packages delivered to RE are expected to be governed by
     at least one incorporation delivered by the consolidation.

   - RE through the IPS gate tools will produce an "entire"
     incorporation which specifies all the consolidation
     incorporations.

   - Consolidations are expected to publish an appropriate version
     number for each IPS package every time it is published.  The
     build number should increment as soon as a build opens.

     The version number is part of the package FMRI after the @.
     For OpenSolaris specific software, it should be:
         0.5.11,5.11-0.<build #>
     e.g.
         0.5.11,5.11-0.127
     For software from other sources which maintains its own useful
     version number,
         <software version #>,5.11-0.<build #>
     e.g.
         3.2.50,5.11-0.127

   - End users do not need to care about the consolidation
     incorporations.  They're a convenience for developers, as well
     as reflection in IPS of build/test boundaries to better
     assemble a supportable surface.  Other incorporations are
     expected across more user-visible boundaries in the future.

2. ON-specific implementation

   - ON will track the build number via a file in the repository
     which the gatekeepers integrate as soon as a build opens.
     i.e. when 127 opens, they push a change to say that the build
     is 127.  (usr/src/VERSION ?)

   - Both repositories built by the ON build process (on and
     on-extra) will publish an incorporation.

   - SUNWonbld is special.  It's expected to be able to move
     independently of the rest of the system, and is tested with
     this in mind.  Thus, ON will also deliver an incorporation for
     SUNWonbld and not include SUNWonbld in the normal ON
     incorporation.  Because it needs to be able to move
     independently, it may not specify dependencies, or may specify
     them without versions.

3. Use Cases
   (From most to least common.)

  - The average OpenSolaris user shouldn't have to care about any of
    this.  When they update, the dependencies and incorporations
    should be constructed in a way that was testable and already
    tested.

  - A developer in any consolidation who wishes to track the nightly
    builds for their consolidation would set up their publishers
    to prefer a publisher which serves nightly bits for their
    consolidation and leave the opensolaris.org/dev publisher intact
    at a lower preference.  They then "pkg uninstall entire" and
    allow only consolidation incorporations to govern their
    system's package surface.

    When new versions of the other consolidations are published to
    opensolaris.org/dev, the developer will upgrade those packages
    too.  Thus, tracking a consolidation continues to allow upgrade
    of bits from other consolidations.

  - A developer who wished to track nightly of multiple
    consolidations would be able to do so with the same mechanism as
    tracking a single consolidation.

  - A cross-consolidation flag day is managed by requiring
    developers track multiple consolidations for a single build.

  - A developer may wish to install newer OpenSolaris and
    downgrade to an older development workspace.  That is handled
    by explicitly installing the older version to a new BE.  The
    developer could also specifically set the version in their
    workspace to publish the old bits at a new version (though
    this is not generally recommended).

    Direct 'downgrade' which violates version numbers is not a
    requirement.

  - A developer or early adopter who had been tracking nightly
    builds of consolidations may wish to get their machine back
    onto the normal opensolaris.org/dev release train.  They can
    not do so directly because the consolidation nightly is
    currently publishing at build 127 when opensolaris.org/dev
    is at 125 or 126 so going back to /dev is a downgrade.

    They have two choices:
    1. Fall back to a BE which did not use the consolidation
       nightlies.

    2. Delete the consolidation nightly publishers, wait for
       opensolaris.org/dev to catch up to the correct build
       number, and then "pkg image-update" and
       "pkg install entire".

_______________________________________________
pkg-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/pkg-discuss

Reply via email to