<?xml version="1.0" encoding="UTF-8"?>
<html>
	<body>
		<pre>
			Some of you have complained about the current process for
			updating the milestone and test plans since it involves
			checking out and building the entire Web site, which is now
			too bulky. Also, all Eclipse projects have been asked to
			clean up their sites so that the old plans are not
			cluttering up the Web pages.

			We have been holding off doing a major reorg of the Web site
			because the entire Eclipse Web site is going to be upgraded
			by the Phoenix project. However, we need to update our 1.0
			and 1.5 plans now and can't wait any longer for Phoenix.

			This note proposes a new structure, cooked up by Lawrence
			and me, that will address the build problem and simplify
			cleanup at the end of each release. Please review it and
			respond by Thursday. In the absence of any objections voiced
			at our status call on Thursday, we'll proceed with the plan.

			1. We will keep the 0.7 plans in the current structure to
			avoid broken links. These pages will be moved after Phoenix
			gives us automatic redirection capability.

			2. We will create a new directory structure for all current
			and future plans, as follows:


			/webtools/plans/"release"/"subproject"/"component"/"milestone"/

			The directory will contain only the milestone and test plans
			for that component and milestone. For example,


			/webtools/plans/1.0/wst/server/M8/milestone_plan.xml

			contains the milestone plan for M8 of the server component
			of WST in WTP 1.0.

			3. Each release will be a project and have a build script.
			You'll only have to check out the release portion of the Web
			site from CVS to update your plans. The build script will
			roll up your component plans into the master plans. For
			example, to update the plans for WTP 1.0, check out the
			project:

			/webtools/plans/1.0

			4. Tutorials will go into the community part of the Web site
			and be kept current, i.e. we will not keep tutorials for all
			milestones, just the current one. Users will be expected to
			upgrade to the latest milestone.

			5. There are some very bulky UML models with generated HTML.
			These will stay in the old directory structure. However, the
			source for the model (not the generated HTML) should be
			checked into the development CVS repository, NOT the Web
			site CVS. The HTML for the model will always be up to date,
			i.e we will not have versions of the models for each
			milestone since they are too bulky and are more like Javadoc
			than normal Web pages. If you need an old version of a
			model, get it from the dev CVS.

			6. Design docs will stay in the old directory structure and
			always reflect the current milestone, i.e. we do not have
			per milestone design docs. The source for the design docs
			should be checked in with the Java source code in the dev
			CVS.

			7. The API Javadoc will be removed from the Web site and
			packaged in the Eclipse Online Help system Web site. We will
			add a redirect to the new location.

			8. The top level Web pages will point to the current plans.
			We will also have a page for the archived and future plans.

			The above guidelines will keep the milestone-dependent parts
			of the Web site lean and easy to update.
		</pre>
	</body>
</html>