Documenting release type
   In package.xml 1.0, there was one release type.  package.xml 2.0 provides much finer
   control over the kind of release in order to provide three new release types: extension
   binary release, extension source release, and package bundle release.
  
   All of the normal release tags (phprelease, extsrcrelease, extbinrelease) may contain
   two optional sections, <installconditions> and <filelist>.  The purpose of these
   sections is to allow specification of different file install groups based on the target OS
   for installation, or other common install conditions.
  
   To be clear: in package.xml, there was 1 <release> tag.  package.xml 2.0 allows
   several adjacent release tags, each specifying a different install set.  This actually
   simplifies complex installation filesets by separating the contents listing of the tarball
   from how the installer should manipulate this listing.  Debugging installation file sets
   should be much simpler with this change.
  
   The <filelist> tag can contain only two possible tags, <install> and <ignore>.
   install has two required attributes, "name" and "as".  The install tag is used
   in the same manner as package.xml's install-as attribute for the <file>, to specify a new
   installation location for a file in the contents list.  The ignore tag is used to completely
   ignore a file.
  
   The <installconditions> tag can contain 4 tags whose format can be found in the
   <dependencies> section: <php>, <extension>, <os>, and <arch>.
   Each tag can appear exactly once except for the extension tag, which can appear limitless times.
  
   The php tag is used to specify a php version or range of versions that an install set should
   be valid with.
  
   The extension tag is used to specify extensions that must be present for an install set to
   be valid.
  
   The os tag is used to specify an OS that must be present for an install set to be valid.  Note
   that unix can be used to match all flavors, and linux can be used to match all linux-based OSes.
   Darwin should be used for Mac OS X, and * can be used to match all operating systems.
  
   The arch tag is used to specify a uname string or portion of a uname string that must match
   in order for the install set to be valid.
  
<phprelease>
    The phprelease release type is designed for PEAR-style PHP script package releases.
    It causes a few specific validation changes.  First of all,
    the <contents> tag must
    contain <file> and <dir> tags.  The only valid roles for files are role="php",
    role="data", role="doc", and role="test" plus any custom roles
    that the user has installed for use in php releases.
   
<extsrcrelease>
    The extsrcrelease release type is for PECL-style PHP extension releases that must be compiled
    in order to be useable.  It causes a few specific validation changes.  First of all,
    the <contents> tag must
    contain <file> and <dir> tags.  The only valid roles for files are role="src",
    role="data", role="doc", and role="test" plus any custom roles
    that the user has installed for use in extension source releases.
   
    In addition, the <providesextension> tag must be present in order to document the name of
    the extension this package provides must be in the package.xml as well.
   
<extbinrelease>
    The extbinrelease release type is for PECL-style PHP Extension binary releases that are pre-compiled.
    It causes a few specific validation changes.  First of all,
    the <contents> tag must
    contain <file> and <dir> tags.  The only valid roles for files are role="ext",
    role="data", role="doc", and role="test" plus any custom roles
    that the user has installed for use in extension binary releases.
   
    In addition, the <srcpackage> or <srcuri> and the <providesextension> tags
    must be present in order to document the package that provides extension source for this
    binary release, and the name of the extension this package provides must be in the package.xml as
    well.
   
<bundle>
    The bundle release type is designed to allow packaging several other package releases into a
    single bundle of packages that will all be installed at the same time.  This can be used to
    distribute a complete application as one tarball, or to distribute a library of packages in a
    single tarball.
   
    Unlike the other release types, a bundle release's
    <contents> tag must contain
    only the <bundledpackage> tag.  The contents of the bundledpackage should be release names
    like "Foo-1.2.3.tgz"
   
    In addition, the <bundle/> tag must be empty.