Jump to: navigation, search

Difference between revisions of "COSMOS RE AND BUILD WISH LIST"

(What we need)
(Reference)
 
(14 intermediate revisions by one other user not shown)
Line 3: Line 3:
  
 
<!-- CONTENT start -->
 
<!-- CONTENT start -->
== Release Engineering and Build Wish List ==
+
= Release Engineering and Build Wish List =
 +
 
 
<font color="blue">
 
<font color="blue">
 
<mdw>
 
<mdw>
Line 9: Line 10:
 
</mdw>
 
</mdw>
 
</font>
 
</font>
=== What we need ===
+
 
 +
= COSMOS needs to have a continuous and well-defined build process =
 +
== Have a functional weekly build ==
 
<ol>
 
<ol>
<li>COSMOS needs have a continuous and well-defined build process [http://bugs.eclipse.org/bugs/show_bug.cgi?id=216211 216211] -- Jimmy Mohsin<br/>
+
  <li><b><font color="green" size="+1">Done</font></b> <b>Process change</b> Until the "fire alarm" email is automated, the build team will manually email cosmos-dev@eclipse.org to notify developers when there is a compile error. Upon seeing a build break email, developers must check the build reports to fix the problem. The Build Reports, which are listed in a link next to the driver link on the download page, provide more details.</li>
<ol><li>Have a well-organized download page that is updated with a FUNCTIONAL build at least by the middle of each iteration (if not earlier).
+
  <li><b><font color="green" size="+1">Done</font></b> <b>Process change</b> Developers must check in their code more frequently; i.e., at least weekly.</li>
 +
  <li><b><font color="green" size="+1">Done</font></b> <b>Process change</b> Developers must use the build rather than relying on CVS alone. Developers must download the build regularly and check out only their plugins rather than relying on HEAD.</li>
 +
  <li>[https://bugs.eclipse.org/bugs/show_bug.cgi?id=215135 215135] Establish a process for running JUnits against a COSMOS build</li>
 +
</ol>
  
<font color="blue">
+
== The download page must have a build that has ALL the components as soon as they become available. ==
<mdw>I would advocate FUNCTIONAL build be available every week during an iteration.  It should be considered a p1 on the project if we do not have this.  I'd be willing to update the cosmos dev process as well.</mdw>
+
This should be partly addressed by the actions for <i>Have a functional weekly build</i>. A developer will notice if their component is missing.
</font>
+
<ol>
</li>
+
    <li>[https://bugs.eclipse.org/bugs/show_bug.cgi?id=216169 216169] Dependencies should be automatically be included in the build package</li>
<li>The download page must have a build that has ALL the components as soon as they become available. Even though this seems obvious, I state this explicitly since in the past, some components did not make it into the build even though they were available.</li>
+
</ol>
<li>The “new” build process will enable non-development teams, e.g. QA to pick-up a build DURING and (obviously) till the end of an iteration. This will enable the QA team NOT to have to wait till the end of an iteration for testing.  E.g. QA could initiate the unit level testing BEFORE iteration end.</li>
+
== QA Team must be able to start testing before iteration end ==
<li>With a continuous build process, we would be better positioned to address the iteration close build fire drills…. </li></ol>
+
<ol>
</li>
+
    <li><b><font color="green" size="+1">Done</font></b> <b>Process change</b> We need to have a weekly integration build. [http://wiki.eclipse.org/COSMOS_BUILD_SCHEDULE Build schedule]</li>
<li>COSMOS needs to be packaged according to adoption scenarios:<br/>
+
</ol>
  
[[Build_Packaging_for_COSMOS|Read first thoughts on how to package COSMOS drivers]]</li>
+
= COSMOS builds must be run on the eclipse server =
 +
This requirement is key to enable all committers to kick off a build.
 +
<ol>
 +
  <li>[https://bugs.eclipse.org/bugs/show_bug.cgi?id=206374 206374] The infrastructure is set up; we can start running the builds on the eclipse server at any time. We should start this sooner rather than later. The earlier in a release we make build changes the more time that we have to react to the breakages that aren't expected but always occur.</li>
 +
  <li><b><font color="green" size="+1">Done</font></b> [https://bugs.eclipse.org/bugs/show_bug.cgi?id=216499 216499] We need to document the build completely so that all committers know how to start a build manually.</li>
 +
  <li><b><font color="green" size="+1">Done</font></b> [https://bugs.eclipse.org/bugs/show_bug.cgi?id=216650 216650] We need more disk quota.</li>
 +
</ol>
  
[https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&classification=Technology&product=Cosmos&component=cosmos.build&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&keywords_type=allwords&keywords=&deadlinefrom=&deadlineto=&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0= Bugs opened for the Build component]
+
= COSMOS needs to be packaged according to adoption scenarios =
 
+
<ol>
<font color="blue">
+
  <li>Define the use cases separated by roles (so that we know who needs what).
<mdw>
+
      <ol>
This includes the creation of an update manager site for downloading the eclipse plug-ins that we provide. We would start with:
+
          <li>Need roles for the Data Collection component.</li>
* SML Tooling
+
          <li>Need roles for the Data Visualization component.</li>
* WSDM Tooling
+
          <li>[[COSMOS_Use_Cases#SML_and_SML-IF_validation_support|Read first attempt to define these roles for the Resource Modeling component.]]</li>
 
+
      </ol>
See also [[Build Packaging for COSMOS]]
+
  </li>
</mdw>
+
  <li>[http://bugs.eclipse.org/bugs/show_bug.cgi?id=216771 216771] The code must be refactored so that the build can package the code the way that we think that a consumer intends to use it.
</font>
+
      <ol>
 
+
          <li>Need to refactor the code for the Data Collection component as per its roles TBD above.</li>
<li>The build needs to detect stop-ship problems and send out notifications:</li>
+
          <li>Need to refactor the code for the Data Visualization component as per its roles TBD above.</li>
* Breaking API
+
          <li>[http://bugs.eclipse.org/bugs/show_bug.cgi?id=215357 215357] [http://bugs.eclipse.org/bugs/show_bug.cgi?id=215355 215355] Resource Modeling bugzillas for refactoring
* Legal issues:
+
          </li>
** Missing copyrights
+
      </ol>
** Out-of-date copyrights
+
  </li>
** Missing about.html files
+
  <li>[http://bugs.eclipse.org/bugs/show_bug.cgi?id=214774 214774] [http://bugs.eclipse.org/bugs/show_bug.cgi?id=209998 209998] Fix other bugzillas for refactoring</li>
<font color="blue">
+
  <li>[http://bugs.eclipse.org/bugs/show_bug.cgi?id=215610 215610] Involve the build team in helping with feature definition to enable an UpdateManager install and create an update manager site for COSMOS</li>
<mdw>
+
Like the BVT results, these should be made available via the web site as part of the daily builds.
+
</mdw>
+
</font>
+
 
+
* Dependencies not broken when new code added
+
<li> Build Verification Test (BVT) run and results posted for everyone to see</li>
+
<li>We need agreement on what exactly the RE team is responsible for. FYI TPTP used this list of responsibilities: http://dev.eclipse.org/mhonarc/lists/tptp-pmc/msg03024.html and the COSMOS May 2007 F2F had the following discussion http://wiki.eclipse.org/COSMOS_RE_PROPOSAL</li>
+
 
</ol>
 
</ol>
  
 
+
= Generate reports and notifications of problems with the build =
<font color="blue"><mdw>
+
Not sure where this fits, but we need to make sure we are running the build on the eclipse server and that we properly manage the space.  A number of times we've received e-mails about exceeding our disk space quota.
+
</mdw></font>
+
 
+
<font color="#CC33CC">
+
<Ruth>
+
<ul>
+
<li>Generate reports during build to improve quality of code:
+
  <ul>
+
      <li>Javadoc</li>
+
      <li>Internal API usages</li>
+
    </ul>
+
</li>
+
</ul>
+
</Ruth>
+
</font>
+
 
+
=== What we have today ===
+
[[COSMOS_RE_AND_BUILD|COSMOS Release Engineering and Build]]
+
 
+
=== What will it take to get what we need ===
+
 
<ol>
 
<ol>
<li>Before the build can act on this item, the following must
+
  <li>[http://bugs.eclipse.org/bugs/show_bug.cgi?id=216591 216591] Build "fire alarm" notification email</li>
happen:
+
  <li>[http://bugs.eclipse.org/bugs/show_bug.cgi?id=210263 210263] Fix the copyright reporting tool</li>
<ol>
+
  <li>[http://bugs.eclipse.org/bugs/show_bug.cgi?id=216630 216630] Detect missing about.html and other files required by legal</li>
<li>Defining the use cases separated by roles (so that we know
+
  <li>[http://bugs.eclipse.org/bugs/show_bug.cgi?id=216654 216654] Detect use of internal API owned by non-COSMOS projects</li>
who needs what).
+
  <li><b><font color="green" size="+1">Done</font></b> Post list of the defects that are fixed in a build</li>
<ol>
+
  <li><b><font color="green" size="+1">Done</font></b> <b>Process change</b> Developers must specify the bug number in the CVS comments during check-in. This number is used to generate the list of defects that are fixed in a build.</li>
<li>Need roles for the Data Collection component.</li>
+
  <li>[http://bugs.eclipse.org/bugs/show_bug.cgi?id=216655 216655] Generate Javadoc for milestone drivers</li>
<li>Need roles for the Data Visualization component.</li>
+
  <li>[http://bugs.eclipse.org/bugs/show_bug.cgi?id=216656 216656] Build Verification Test (BVT), a.k.a. JUnits, results posted next to the build download link</li>
<li>[[COSMOS_Use_Cases#SML_and_SML-IF_validation_support|Read
+
  <li>[http://bugs.eclipse.org/bugs/show_bug.cgi?id=218050 218050] Investigate running code coverage tool</li>
first attempt to define these roles for the Resource Modeling
+
component.]]</li>
+
</ol>
+
</li>
+
<li>The code must be refactored so that the build can package the
+
code the way that we think that a consumer intends to use it.
+
<ol>
+
<li>Need to refactor the code for the Data Collection component
+
as per its roles TBD above.</li>
+
<li>Need to refactor the code for the Data Visualization
+
component as per its roles TBD above.</li>
+
<li>Resource Modeling bugzillas for refactoring:
+
<ul>
+
<li>[http://bugs.eclipse.org/bugs/show_bug.cgi?id=215357 215357]</li>
+
<li>[http://bugs.eclipse.org/bugs/show_bug.cgi?id=215355 215355]</li>
+
</ul>
+
</li>
+
</ol>
+
</li>
+
<li>Fix other bugzillas for refactoring:
+
<ul>
+
<li>[http://bugs.eclipse.org/bugs/show_bug.cgi?id=214774 214774]</li>
+
<li>[http://bugs.eclipse.org/bugs/show_bug.cgi?id=209998 209998]</li>
+
</ul>
+
</li>
+
</ol>
+
</li>
+
 
+
<li>Fix existing bugzillas owned by the build team
+
<ul>
+
<li>[http://bugs.eclipse.org/bugs/show_bug.cgi?id=215273 215273]</li>
+
</ul>
+
</li>
+
<li>Involve the build team in helping with feature definition to
+
enable an UpdateManager install.</li>
+
 
</ol>
 
</ol>
  
 +
= We need agreement on the RE team's responsibilities =
 +
The COSMOS May 2007 F2F had the following discussion [http://wiki.eclipse.org/COSMOS_RE_PROPOSAL RE Responsibilities]
  
<Bill>
+
= Reference =
+
[[COSMOS_RE_AND_BUILD|COSMOS Release Engineering and Build]]
FYI: I have opened [http://bugs.eclipse.org/bugs/show_bug.cgi?id=216591 Bugzilla 216591: build "fire alarm" notification email]
+
 
+
Also, I have updated [[COSMOS_dev_process]] to require that developers specify the bug number in the CVS comments during check-ins.
+
 
+
</Bill>
+
  
 +
[https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&classification=Technology&product=Cosmos&component=cosmos.build&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&keywords_type=allwords&keywords=&deadlinefrom=&deadlineto=&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0= Bugs opened for the Build component]
  
 +
[[Build Packaging for COSMOS]]
  
 
<!-- CONTENT end -->
 
<!-- CONTENT end -->
  
 
<!-- Category -->
 
<!-- Category -->
[[Category:Eclipse Technology Project]] [[Category:COSMOS]]
+
[[Category:COSMOS]]

Latest revision as of 10:27, 25 March 2009

COSMOS > COSMOS RE AND BUILD

Release Engineering and Build Wish List

<mdw> Since we are opening up enhancement requests, we should tie these back to use cases per our development process. I think many of these, e.g. the download site, would support the idea of the CMDBf toolkit, as an example. </mdw>

COSMOS needs to have a continuous and well-defined build process

Have a functional weekly build

  1. Done Process change Until the "fire alarm" email is automated, the build team will manually email cosmos-dev@eclipse.org to notify developers when there is a compile error. Upon seeing a build break email, developers must check the build reports to fix the problem. The Build Reports, which are listed in a link next to the driver link on the download page, provide more details.
  2. Done Process change Developers must check in their code more frequently; i.e., at least weekly.
  3. Done Process change Developers must use the build rather than relying on CVS alone. Developers must download the build regularly and check out only their plugins rather than relying on HEAD.
  4. 215135 Establish a process for running JUnits against a COSMOS build

The download page must have a build that has ALL the components as soon as they become available.

This should be partly addressed by the actions for Have a functional weekly build. A developer will notice if their component is missing.

  1. 216169 Dependencies should be automatically be included in the build package

QA Team must be able to start testing before iteration end

  1. Done Process change We need to have a weekly integration build. Build schedule

COSMOS builds must be run on the eclipse server

This requirement is key to enable all committers to kick off a build.

  1. 206374 The infrastructure is set up; we can start running the builds on the eclipse server at any time. We should start this sooner rather than later. The earlier in a release we make build changes the more time that we have to react to the breakages that aren't expected but always occur.
  2. Done 216499 We need to document the build completely so that all committers know how to start a build manually.
  3. Done 216650 We need more disk quota.

COSMOS needs to be packaged according to adoption scenarios

  1. Define the use cases separated by roles (so that we know who needs what).
    1. Need roles for the Data Collection component.
    2. Need roles for the Data Visualization component.
    3. Read first attempt to define these roles for the Resource Modeling component.
  2. 216771 The code must be refactored so that the build can package the code the way that we think that a consumer intends to use it.
    1. Need to refactor the code for the Data Collection component as per its roles TBD above.
    2. Need to refactor the code for the Data Visualization component as per its roles TBD above.
    3. 215357 215355 Resource Modeling bugzillas for refactoring
  3. 214774 209998 Fix other bugzillas for refactoring
  4. 215610 Involve the build team in helping with feature definition to enable an UpdateManager install and create an update manager site for COSMOS

Generate reports and notifications of problems with the build

  1. 216591 Build "fire alarm" notification email
  2. 210263 Fix the copyright reporting tool
  3. 216630 Detect missing about.html and other files required by legal
  4. 216654 Detect use of internal API owned by non-COSMOS projects
  5. Done Post list of the defects that are fixed in a build
  6. Done Process change Developers must specify the bug number in the CVS comments during check-in. This number is used to generate the list of defects that are fixed in a build.
  7. 216655 Generate Javadoc for milestone drivers
  8. 216656 Build Verification Test (BVT), a.k.a. JUnits, results posted next to the build download link
  9. 218050 Investigate running code coverage tool

We need agreement on the RE team's responsibilities

The COSMOS May 2007 F2F had the following discussion RE Responsibilities

Reference

COSMOS Release Engineering and Build

Bugs opened for the Build component

Build Packaging for COSMOS