<html>
<head>
<title>WTP PMC Minutes for September 6, 2005 Conference Call</title>
</head>

<body alink="#ff0000" bgcolor="#ffffff" link="#0000ee" text="#000000" vlink="#551a8b">
<table border="0" cellpadding="2" cellspacing="5" width="100%">
  <tbody><tr> 
    <td colspan="2" align="left" bgcolor="#0080c0" valign="top"><b>
    <font color="#ffffff" face="Arial,Helvetica">PMC Conference Call - September 6, 2005</font></b></td>

  </tr>
  </tbody></table>
<table border="0" cellpadding="2" cellspacing="5" width="100%">
  <tbody><tr> 
    <td> 
		Attending:
		Tim Wagner [TW],
		Naci Dai [ND],
		Raghunathan Srinivasan [RS]
		David Williams [DW],
		Lawrence Mandel [LM],
		Arthur Ryman [AR],
		Jochen Krause [JK]

<!--PMC MEMBERS NOT PRESENT ON THIS CALL:
		Christophe Ney [CN],
-->

<h1>WTP PMC Minutes for September 6, 2005 Conference Call</h1>

<h2>Community Update [LM] </h2>
<ul>
  <li>EclipseWorld - many WTP presentations from both inside and outside the WTP dev community, all talks well attended and
      received
  <li>Website content still in flux; component leads are working on project plans
  <li>Arthur suggested factoring the website content so that component leads can update the relevant portion quickly
  <li>Phoenix not ready yet; we will try to be early adopters when they're ready
  <li>DW suggested making "audience organization" (users, extenders, devs) more obvious
  <li>EclipseCon program committee has set aside two technical and one tutorial slots per top-level project; projects
      still need to go through the proposal process (and can submit additional talks, of course)
</ul>

<h2>Procedural matters</h2>
<ul>
  <li>No procedural matters to report.
</ul>

<h2>0.7.1 (Maintenance Stream) Status </h2>
<ul>
  <li>Using Thursday status/component lead meeting for triage; PMC members are invited to attend that.
  <li>Arthur researching SOAP schema IP issues; may need to re-vet in 0.7.1 with Foundation legal.
</ul>

<h2>1.0 and 1.5 Planning </h2>
<ul>
  <li>WTP joining the 1.5 release train; will need to join train ASAP to improve likelihood of final ship.
  <li>We are using many internal APIs from the platform; any drift caused by this reliance on platform internals
      could be mitigated in either the 1.0 line or the (not yet created) 1.5 line. Split point will be late October/early
      November (roughly the M9 milestone).
  <li>We need to create the 1.5 line at least in time to handle new feature work that cannot go into the 1.0 codebase.
  <li>Once we move to 1.5 (and join the Zebra train), we will need to migrate to a 6 week release cycle in order to
      synchronize. (DW: suggesting our M9 timeframe).
  <li>1.0 will remain on its existing (8 week milestones) schedule.
  <li>For 1.5, we would need to begin synchronizing with platform I-builds (not an immediate requirement).
  <li>Chuck will be presenting a proposal soon on project-related APIs.
</ul>

<h2>Requirements Update [JK] </h2>
<ul>
  <li>Open requirements call will be held this Thursday. Oracle, BEA, and others are planning to participate;
      IBM has conflict with internal planning meetings. Will attempt to solicit feedback on 1.5 plan and any
      additional requirements.
</ul>

<h2>Architecture Update [DW] </h2>
<ul>
  <li>Weekly call will resume this week.
  <li>Feature split up will proceed as proposed (little feedback received so far). Will start with the low-hanging fruit;
      some of the more difficult divisions may extend beyond 1.0 release.
  <li>Feature split up will be important to build / releng restructuring as well. Might be able to use Buckminster's tools
      to view the dependency arcs.
</ul>

<h2>JSF Update [RS] </h2>
<ul>
  <li>Legal process moving forward within Oracle (committer agreement, etc.)
</ul>

<h2>Action Items</h2>
<ul>
  <li>[RS] Will investigate EclipseCon presentation topics.
  <li>[TW] Get platform dates and drive process of setting 2006 WTP milestone dates.
  <li>[JK] Follow up with SAS and SAP w.r.t. requirements call (Th).
</ul>

<small>Minutes taken by Tim Wagner, September 6, 2005</small>
</tr>
</tbody></table>
</html>
