Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cross-project-issues-dev] Europa Build Workshop Report - RSS Feeds

As per the action items from the Europa Build Workshop in Portland earlier
this month
(http://wiki.eclipse.org/index.php/Europa_Build_Workshop_Report#Action_Items),
 I've been asked to revise the existing spec and define a more strict
vocabulary list for test and build status codes. The new schema is ready,
but I need a little more time to test the tools that create and read based
on that schema; once that's ready I'll release the whole thing here:

http://wiki.eclipse.org/index.php/Eclipse_Build_Available_RSS_Schema

Currently that page contains links to the current schema used by Eclipse,
EMF and UML2. The new schema is *mostly* compatible with the old but due to
tighter restrictions on vocabulary, some attribute values will have to
change to comply with the restrictions. In addition, I've added a few new
attributes to <build cvsbranch="" branch="" datetime=""/>, a new id
attribute to <test><result id=""/></test>, and turned the callisto
attribute on <build/> into a nested node, <coordinated
status="">...</coordinated> so that it's both restricted and extensible
(with additional comments), if needs be.
http://wiki.eclipse.org/index.php/Eclipse_Build_Available_RSS_Feeds#Support_For_Coordinated_Releases

In the meantime, for those who are interested, here's the new schema,
complete with comments about what's new. The restricted grammar
enumerations are at the end. I welcome comments, suggestions, or any other
feedback either in this mailing list or in the wiki:
http://wiki.eclipse.org/index.php/Eclipse_Build_Available_RSS_Schema.

Thanks!

--
Nick Boldt :: Software Developer, IBM Toronto Lab
Eclipse Modeling Framework :: http://eclipse.org/emf
905/413/4308 (t/l 969) :: codeslave@xxxxxxxxxx


<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"; xmlns=
"http://www.eclipse.org/2006/BuildFeed"; elementFormDefault="qualified"
targetNamespace="http://www.eclipse.org/2006/BuildFeed";>

  <xs:element name="build">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="1" minOccurs="0" ref="update"/>
        <xs:element maxOccurs="1" minOccurs="0" ref="downloads"/>
        <xs:element maxOccurs="1" minOccurs="0" ref="releasenotes"/>

        <xs:element maxOccurs="1" minOccurs="0" ref="releases"/>

        <xs:element maxOccurs="1" minOccurs="0" ref="tests"/>

        <xs:element maxOccurs="1" minOccurs="0" ref="dependencies"/>
        <xs:element maxOccurs="1" minOccurs="0" ref="coordinated"/>
      </xs:sequence>
      <!--  TODO: NEW 060923: implement build:cvsbranch, build:branch,
build:datetime -->
      <xs:attribute name="branch" type="buildBranch" use="required"/>
      <xs:attribute name="type" type="enumBuildType" use="required"/>
      <xs:attribute name="datetime" type="buildDatetime" use="required"/>
      <xs:attribute name="href" type="xs:anyURI" use="required"/>
      <xs:attribute name="cvsbranch" type="xs:token" use="optional"/>
      <xs:attribute name="jars" type="enumJarSigningStatus" use="optional"
/>
    </xs:complexType>
  </xs:element>

  <xs:element name="update" type="xs:anyURI"/>
  <xs:element name="downloads" type="xs:anyURI"/>
  <xs:element name="releasenotes" type="xs:anyURI"/>

  <xs:element name="releases">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" minOccurs="1" ref="release"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="release">
    <xs:complexType>
      <xs:simpleContent>
        <xs:extension base="xs:anyURI">
          <xs:attribute name="os" type="enumOS" use="required"/>
          <xs:attribute name="ws" type="enumWS" use="required"/>
          <xs:attribute name="arch" type="enumArch" use="optional"/>
          <xs:attribute name="type" type="enumReleaseType" use="required"/>
        </xs:extension>
      </xs:simpleContent>
    </xs:complexType>
  </xs:element>

  <xs:element name="tests">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" minOccurs="1" ref="test"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="test">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" minOccurs="1" ref="result"/>
      </xs:sequence>
      <xs:attribute name="href" type="xs:anyURI" use="optional"/>
      <xs:attribute name="type" type="enumTestType" use="required"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="result">
    <xs:complexType>
      <xs:simpleContent>
        <xs:extension base="enumTestStatus">
          <!--  TODO: NEW 060923: implement test:result:id -->
          <xs:attribute name="id" type="xs:token" use="optional"/>
          <xs:attribute name="os" type="enumOS" use="required"/>
          <xs:attribute name="ws" type="enumWS" use="required"/>
          <xs:attribute name="arch" type="enumArch" use="optional"/>
        </xs:extension>
      </xs:simpleContent>
    </xs:complexType>
  </xs:element>

  <xs:element name="dependencies">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" minOccurs="1" ref="dependency"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="dependency" type="xs:anyURI"/>

  <!--  TODO: NEW 060923: implement coordinated as an elem -->
  <!--  TODO: NEW 060923: change the way to store delay/problem info
related to coordinated releases - use anyType -->
  <xs:element name="coordinated">
    <xs:complexType>
      <xs:simpleContent>
        <xs:extension base="xs:string">
        <xs:attribute name="status" type="enumCoordinatedStatus" use=
"optional"/>
      </xs:extension>
    </xs:simpleContent>
    </xs:complexType>
  </xs:element>

  <!-- TODO: NEW 060923: implement new schema restrictions (enums) -->
  <xs:simpleType name="enumBuildType">
    <xs:restriction base="xs:token">
      <!--  TODO: NEW 060923: drop "C" suffix for "Callisto (coordinated)"
(redundant info) -->
      <xs:enumeration value="N"/>
      <xs:enumeration value="I"/>
      <xs:enumeration value="M"/>
      <xs:enumeration value="S"/>
      <xs:enumeration value="R"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="enumTestType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="junit"/>
      <xs:enumeration value="performance"/>
      <xs:enumeration value="api"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="enumJarSigningStatus">
    <xs:restriction base="xs:token">
      <xs:enumeration value=""/>
      <xs:enumeration value="NONE"/>
      <xs:enumeration value="UNSIGNED"/>
      <xs:enumeration value="SIGNREADY"/>
      <xs:enumeration value="BUILDREADY"/>
      <xs:enumeration value="SIGNED"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="enumCoordinatedStatus">
    <xs:restriction base="xs:token">
      <xs:enumeration value=""/>
      <xs:enumeration value="NONE"/>
      <xs:enumeration value="BUILDCOMPLETE"/>
      <xs:enumeration value="UMSITEREADY"/>
      <xs:enumeration value="CALLISTOSITEREADY"/>
      <xs:enumeration value="COMPLETE"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="enumTestStatus">
    <xs:restriction base="xs:token">
      <xs:enumeration value=""/>
      <xs:enumeration value="PASS"/>
      <xs:enumeration value="PENDING"/>
      <xs:enumeration value="FAIL"/>
      <xs:enumeration value="AVAILABLE"/>
      <xs:enumeration value="SKIPPED"/>
      <xs:enumeration value="UNKNOWN"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="enumOS">
    <xs:restriction base="xs:token">
      <xs:enumeration value="aix"/>
      <xs:enumeration value="hp-ux"/>
      <xs:enumeration value="linux"/>
      <xs:enumeration value="macosx"/>
      <xs:enumeration value="qnx"/>
      <xs:enumeration value="solaris8"/>
      <xs:enumeration value="wce"/>
      <xs:enumeration value="win32"/>
      <xs:enumeration value="ALL"/>
      <xs:enumeration value="OTHER"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="enumWS">
    <xs:restriction base="xs:token">
      <xs:enumeration value="carbon"/>
      <xs:enumeration value="gtk"/>
      <xs:enumeration value="motif"/>
      <xs:enumeration value="photon"/>
      <xs:enumeration value="win"/>
      <xs:enumeration value="ALL"/>
      <xs:enumeration value="OTHER"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="enumArch">
    <xs:restriction base="xs:token">
      <xs:enumeration value="arm"/>
      <xs:enumeration value="hp9000"/>
      <xs:enumeration value="ppc"/>
      <xs:enumeration value="sparc"/>
      <xs:enumeration value="x86"/>
      <xs:enumeration value="x86_64"/>
      <xs:enumeration value="ALL"/>
      <xs:enumeration value="OTHER"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="enumReleaseType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="SDK"/>
      <xs:enumeration value="runtime"/>
      <xs:enumeration value="tests"/>
      <xs:enumeration value="examples"/>
      <xs:enumeration value="OTHER"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="buildDatetime">
    <xs:restriction base="xs:token">
      <xs:pattern value="\d{8}-{0,1}\d{0,4}"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="buildBranch">
    <xs:restriction base="xs:token">
      <xs:pattern value="\d{1,2}.\d{1,2}.\d{1,2}"/>
    </xs:restriction>
  </xs:simpleType>

</xs:schema>



Back to the top