<html>
<head>
<title>WTP PMC Minutes for April 25, 2006 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 - April 25, 2006</font></b></td>

  </tr>
  </tbody></table>
<table border="0" cellpadding="2" cellspacing="5" width="100%">
  <tbody><tr> 
    <td> 
		PMC Members Attending:
		Tim Wagner [TW],
		Raghunathan Srinivasan [RS],
        Jochen Krause [JK],
		David Williams [DW],
        Naci Dai [ND],
		Arthur Ryman [AR]
        
		<P>PMC Member Regrets: none
		
		<P>Invited Guests: Neil Hauge [NH], Shaun Smith [SS], Craig Becker [CB]

        <P>Others:
        Lawrence Mandel [LM]

<!--NOT PRESENT ON THIS CALL:
-->

<h1>WTP PMC Minutes for April 25, 2006 Conference Call</h1>

<h2>Community Update [LM] </h2>
<ul>
  <li>Project Antoine update: Leah looking for additional recruits for study, but still well short
      of the 100 participants targeted. The CFP now includes an Amazon gift certificate for
      participants. The project is also requesting the posting of a permanent link on the WTP
      website.
<!--  <li>RSS feed being tested; planned to go live along with Phoenix conversion. -->
</ul>

<h2>Procedural [TW] </h2>
<ul>
  <li>No procedural issues to discuss.
</ul>

<h2>1.0.2 Status </h2>
<ul>
  <li>Release planned for COB tomorrow (5pm EDT Wednesday, April 26).
  <li>AI [TW]: Update links on website and notify EMO.
  <li>AI [DW}: Post to distribution list and newsgroup.
  <li>Discussed need for a 1.0.3 update site to enable high priority bug fixes to the 1.0.x
      code stream.
  <li>Denis Roy notified of impending release (for any download bandwidth concerns).
  <li>Will attempt to include several "all-in-one" ZIPs in time for the announcement as well
      (for the most used platforms; exact list TBD).
</ul>

<h2>Callisto / 1.5 Status </h2>
<ul>
  <li>RC1a announced; JUnit failures will be addressed in RC2.
  <li>Callisto RC1 site should be available shortly.
  <li>RC2 progressing.
  <li>No update on OOM errors.
  <li>Reuse/reship of the 3rd party Equinox plugin from the platform verified with EMO. No
      additional review is required, but we do need to log the use in the WTP IP log.
      [AI TW]
  <li>Cactus jar addition being staged.
  <li>Build patches needed to avoid hanging JUnit tests; see David for the necessary updates
      or for information on working around this issue. (May be bug in base testing framework;
      the tests themselves appear to be correct.)
</ul>

<h2>Requirements [JK] </h2>
<ul>
  <li>Reminder of requirements call tomorrow.
  <li>Request for additional EJB3 tooling support have been received; 2.0 would be the natural place
      to address this feature work.
</ul>

<h2>JSF Status [RS] </h2>
<ul>
  <li>Will refactor package names; updated names will be available next week.
  <li>Build problem detected by Naci are in the process of being fixed; will resume
      testing shortly.
</ul>

<h2>ATF Status [CB] </h2>
<ul>
  <li>org.eclipse.atf now available in CVS
  <li>website at www.eclipse.org/atf
  <li>distribution list and newsgroup both live, and interested parties have been notified
  <li>3rd party content has been removed; documentation describes how to "rebuild"
      ATF from the various external pieces.
</ul>

<h2>Dali Status [NH/SS] </h2>
<ul>
  <li>Build updated and updated map file checked in by Naci.
  <li>Working on M3 iteration.
  <li>Move request submitted.
</ul>

<h2>Action Items </h2>
<ul>
  <li>[TW] (held over) Research whether WTP can reprint the text of the Sun DTD/Schema license.
      (Question from Lawrence for Janet as part of 1.5 IP.) Still reply.
</ul>

<small>Minutes taken by Tim Wagner, April 25, 2006. Please notify me of any corrections needed.
</small>
</tr>
</tbody></table>
</html>
