<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!--  Use this to test local rendering in firefox. Comment out this line once this plan is linked to portal data. -->
<?xml-stylesheet type="text/xsl" href="project-plan-render.xsl"?>

<!-- <?xml-stylesheet type="text/xsl" href="http://www.eclipse.org/projects/project-plan.xsl"?> -->

<p:plan
  plan-format="1.0"
  xmlns:p="http://www.eclipse.org/project/plan" xmlns="http://www.w3.org/1999/xhtml"
  name="Eclipse Project">

<p:release projectid="eclipse" version="2019-12"/>

<!-- ============================================== -->

<p:introduction>
<div>
<p>
Last revised 08:10 EDT October 8, 2019.

<!--
<img src="http://www.eclipse.org/eclipse/development/new.gif" alt="(new)" border="0" height="12" width="12" />
marks interesting changes since the previous draft of 
<a href="http://www.eclipse.org/projects/project-plan.php?planurl=http://www.eclipse.org/eclipse/development/plans/eclipse_project_plan_4_14_20171216.xml">December 16, 2017</a>.
-->

</p>
<p><i>Please send comments about this plan to the</i> <a href="mailto:eclipse-dev@eclipse.org">eclipse-dev@eclipse.org</a> <i>developer
  mailing list.</i>
</p>
<p>This document lays out the feature and API set for the next feature release
  of the Eclipse SDK after 4.13, designated release 4.14 and code-named 2019-12.
</p>

<p>Plans do not materialize out of nowhere, nor are they entirely static. To
  ensure the planning process is transparent and open to the entire Eclipse community,
  we (the Eclipse Project PMC) post plans in an embryonic form and revise them
  throughout the release cycle. </p>
<p>The first part of the plan deals with the important matters of release deliverables,
  release milestones, target operating environments, and release-to-release compatibility.
  These are all things that need to be clear for any release, even if no features
  were to change. </p>
<p>The remainder of the plan consists of plan items for all of the sub-projects
  under the top level Eclipse Project. Each plan item covers a feature or API
  that is to be added to the Eclipse Project deliverables, or some aspect of
  the Eclipse Project that is to be improved. Each plan item has its own entry
  in the Eclipse bugzilla database, with a title and a concise summary (usually
  a single paragraph) that explains the work item at a suitably high enough level
  so that everyone can readily understand what the work item is without having
  to understand the nitty-gritty detail. </p>
<p>Not all plan items represent the same amount of work; some may be quite large,
  others, quite small. Some plan items may involve work that is localized to
  a single component; others may involve coordinated changes to several components;
  other may pervade the entire SDK. Although some plan items are for work that
  is more pressing than others, the plan items appear in no particular order. </p>
<p>With the previous release as the starting point, this is the plan for how
  we will enhance and improve it. Fixing bugs, improving test coverage, documentation,
  examples, performance tuning, usability, etc. are considered routine ongoing
  maintenance activities and are not included in this plan unless they would
  also involve a significant change to the API or feature set, or involve a significant
  amount of work. The intent of the plan is to account for all interesting feature
  work. </p>

</div>
</p:introduction>

<!-- ============================================== -->

<p:release_deliverables>
<div>

<p>The release deliverables have the same form as previous releases, namely: </p>
<ul>
  <li>Source code release for all Eclipse Project deliverables, available as
    versions tagged &quot;R4_14&quot; in the Eclipse Project <a href="http://git.eclipse.org">Git
    repositories</a>.</li>
  <li>Eclipse SDK (runtime binary and SDK for Equinox, Platform, JDT, and PDE) (downloadable).</li>
  <li>Eclipse Equinox (runtime and source repositories) (downloadable).</li>
  <li>Eclipse Platform (runtime and source repositories) (downloadable).</li>
  <li>Eclipse RCP (runtime and source repositories for the Rich Client Platform) (downloadable).</li>
  <li>Eclipse JDT (runtime and source repositories for the Java Development Tooling) (downloadable).</li>
  <li>Eclipse PDE (runtime and source repositories for the Plug-in Development Environment) (downloadable).</li>
  <li>Eclipse SDK Examples (downloadable).</li>
  <li>SWT distribution (downloadable).</li>
</ul>


</div>
</p:release_deliverables>

<!-- ============================================== -->

<p:release_milestones>

<p:preamble><p>      
  Release milestones will be occurring at roughly 6 week intervals, and will be aligned with the
  <a href="https://wiki.eclipse.org/Category:SimRel-2019-12">
  2019-12 Simultaneous Release</a> train.</p>
</p:preamble>
<p:milestone date="2019-10-11" milestone="M1"><div>4.14 M1</div></p:milestone>
<p:milestone date="2019-10-18" milestone=""><div>Release Record Deadline</div></p:milestone>
<p:milestone date="2019-10-18" milestone=""><div>CQ Submission Deadline</div></p:milestone>
<p:milestone date="2019-11-01" milestone="M2"><div>4.14 M2 (only submit I-build)</div></p:milestone>
<p:milestone date="2019-11-22" milestone="M3"><div>4.14 M3</div></p:milestone>
<p:milestone date="2019-11-29" milestone=""><div>IP Log Submission Deadline</div></p:milestone>
<p:milestone date="2019-11-29" milestone="RC1"><div>4.14 RC1 - <b>API and feature freeze</b></div></p:milestone>
<p:milestone date="2019-12-06" milestone=""><div>Review Material Submission Deadline</div></p:milestone>
<p:milestone date="2019-12-06" milestone=""><div>New and Noteworthy Material Deadline</div></p:milestone>
<p:milestone date="2019-12-06" milestone="RC2"><div>4.14 RC2</div></p:milestone>

<p:postamble>
<div>
<p>Our target is to complete 4.14 in December 2019.
  All release deliverables will be available for download as soon as the release has been
  tested and validated in the target operating configurations listed below.</p>
<p>PMC approval is required for API changes and additions after M3.</p>
<p>Dates for builds and test passes after M3 will be available in the 
Eclipse 4.14 Endgame Plan.
<!--
<a href="http://www.eclipse.org/eclipse/development/plans/freeze_plan_4_14.php">Eclipse 4.14 Endgame Plan</a>.
-->

</p>
</div>
</p:postamble>

</p:release_milestones>

<!-- ============================================== -->

<p:target_environments>

<div>
<p>In order to remain current, each Eclipse Project release targets reasonably current
  operating environments.</p>
<p>Most of the Eclipse SDK is &quot;pure&quot; Java code and has no direct dependence
  on the underlying operating system. The chief dependence is therefore on the
  Java Platform itself. Portions are targeted to specific classes of operating
  environments, requiring their source code to only reference facilities available
  in particular class libraries (e.g. Java 5, Java 6, etc).</p>
<p>
  In general, the 4.14 release of the Eclipse Project is developed on Java SE 8 VMs.
  As such, the Eclipse SDK as a whole
  is targeted at all modern, desktop Java VMs. Most functionality is available for
  Java SE 8 level development everywhere, and extended development capabilities are made
  available on the VMs that support them.</p>
<p>There are many different implementations of the Java Platform running atop
  a variety of operating systems. We focus our testing on a handful of
  popular combinations of operating system and Java Platform; these are our <em>reference
  platforms</em>. Eclipse undoubtedly runs fine in many operating environments
  beyond the reference platforms we test. However, since we do not systematically test
  them we cannot vouch for them. Problems encountered when running Eclipse on a
  non-reference platform that cannot be recreated on any reference platform will
  be given lower priority than problems with running Eclipse on a reference platform.</p>
<p>Eclipse 4.14 is tested and validated on the following reference platforms
  (this list is updated over the course of the release cycle):</p>
<style type="text/css">
	table.platforms {
		border-width: 1px;
		border-spacing: 0px;
		border-style: solid;
		border-collapse: separate;
	}
	table.platforms th {
		border-width: 1px;
		padding: 3px;
		border-style: inset;
		border-color: black;
		background-color: #B9A9FF;
	}
	table.platforms td {
		border-width: 1px 1px 1px 1px;
		padding: 3px 3px 3px 3px;
		border-style: inset inset inset inset;
		border-color: gray gray gray gray;
	}
	table.platforms tr.c0 td {
		background-color: #FDFDFD;
	}
	table.platforms tr.c1 td {
		background-color: #F4EEFF;
	}
</style>
<center>
	<table class="platforms">
		<tr>
			<th>Operating System</th>
			<th>Version</th>
			<th>Hardware</th>
			<th>JRE</th>
			<th>Windowing System</th>
		</tr>
		<!-- ************ WINDOWS ************** -->
		<tr class="c0">
			<td rowspan="1">Windows</td>
			<td rowspan="1">7<br/>
			10
			</td>
			<td rowspan="1">x86 64-bit</td>
			<td rowspan="1">
				OpenJDK 8u222 (LTS)<br/>
				OpenJDK 11.0.4 (LTS)<br/>
				OpenJDK 12.0.2<br/>
				Oracle Java 8u221<br/>
				Oracle Java 11.0.4 (LTS)<br/>
				Oracle Java 12.0.2<br/>
				IBM Java 8 8.0.5
			</td>
			<td rowspan="1">Win32</td>
		</tr>
		<!-- ************ RHEL ************** -->
		<tr class="c1">
			<td rowspan="2">Red Hat Enterprise Linux</td>

			<td rowspan="2">7.5<br/>
			8
			</td>
			<td rowspan="1">x86 64-bit</td>
			<td rowspan="1">
				OpenJDK 8u222 (LTS)<br/>
				OpenJDK 11.0.4 (LTS)<br/>
				OpenJDK 12.0.2<br/>
				Oracle Java 8u221<br/>
				Oracle Java 11.0.4 (LTS)<br/>
				Oracle Java 12.0.2<br/>
				IBM Java 8 8.0.5
			</td>
			<td rowspan="2">GTK 3</td>
		</tr>
		<tr class="c1">
			<td rowspan="1">Power 64-bit LE</td>
			<td rowspan="1">
				IBM Java 8 8.0.5
			</td>
		</tr>
		<!-- ************ SLES ************** -->
		<tr class="c0">
			<td rowspan="2">SUSE Linux Enterprise Server</td>
			<td rowspan="2">
				12 SP4<br/>
				15
			</td>
			<td rowspan="1">x86 64-bit</td>
			<td rowspan="1">
				Oracle Java 8u221<br/>
				Oracle Java 11.0.4 (LTS)<br/>
				Oracle Java 12.0.2<br/>
				IBM Java 8 8.0.5
			</td>
			<td rowspan="2">GTK 3</td>
		</tr>
		<tr class="c0">
			<td rowspan="1">Power 64-bit LE</td>
			<td rowspan="1">
				IBM Java 8 8.0.5
			</td>
		</tr>

		<!-- ************ Ubuntu ************** -->
		<tr class="c1">
			<td rowspan="1">Ubuntu Long Term Support</td>
		    <td rowspan="1">18.04</td>
			<td rowspan="1">x86 64-bit</td>
			<td rowspan="1">
				Oracle Java 8u221<br/>
				Oracle Java 11.0.4 (LTS)<br/>
				Oracle Java 12.0.2<br/>
				IBM Java 8 8.0.5
			</td>
			<td rowspan="1">GTK 3</td>
		</tr>
		
		<!-- ************ Mac ************** -->
		<tr class="c0">
			<td rowspan="1">Apple Mac OS X</td>
			<td rowspan="2">
				10.13<br/>
				10.14
			</td>
			<td rowspan="1">x86 64-bit</td>
			<td rowspan="1">
				OpenJDK 8u222 (LTS)<br/>
				OpenJDK 11.0.4 (LTS)<br/>
				OpenJDK 12.0.2<br/>
				Oracle Java 8u221<br/>
				Oracle Java 11.0.4 (LTS)<br/>
				Oracle Java 12.0.2
			</td>
			<td rowspan="1">Cocoa</td>
		</tr>
	</table>
 </center>

<p>As stated above, <i>we expect that Eclipse works fine on other current
  Java VM and OS versions but we cannot flag these as reference platforms without
  significant community support for testing them.</i></p>
<p>With respect to GTK 3 versions: the <i>guaranteed</i> version of GTK 3 which Eclipse SDK 4.14
will run on is 3.20 or newer. Eclipse SDK 4.14 will run on older GTK 3 versions no older than
3.10.0, however we cannot flag these as reference versions without significant community support for testing and/or development of fixes. Bugs only reproducible on GTK 3 versions older than 3.20 will
be given a lower priority (or may not be fixed at all), compared to bugs which are reproducible
on the target environments listed above.
</p>

<p>With respect to GTK 3 themes: Adwaita theme is guaranteed to work. Eclipse SDK will run with other GTK 3 themes,
however we cannot flag these as reference versions without significant community support for testing and/or development
of fixes. Bugs that are reproducible only with themes other than Adwaita will be given a lower priority (or may not be fixed at all),
compared to bugs which are reproducible on the target environments listed above.
</p>
</div>

<p:internationalization>
<p>The Eclipse SDK is designed as the basis for internationalized products. The
  user interface elements provided by the Eclipse SDK components, including dialogs
  and error messages, are externalized. The English strings are provided as the
  default resource bundles.</p>
<p>Latin-1, DBCS, and BiDi locales are supported by the Eclipse SDK on all reference platforms.</p>
<p>The Eclipse SDK supports GB 18030 (level 1), the Chinese code page standard,
  on Windows, Linux and the Macintosh.</p>
</p:internationalization>

</p:target_environments>
 
<!-- ============================================== -->

<p:compatibility_with_previous_releases>
<div>

<h3>Compatibility of Release 4.14 with 4.13</h3>
<p>Eclipse 4.14 will be compatible with Eclipse 4.13 (and all earlier 3.x versions).</p>

<p><strong>API Contract Compatibility:</strong> Eclipse SDK 4.14 will be upwards
  contract-compatible with Eclipse SDK 4.13 except in those areas noted in the
  <a href="http://www.eclipse.org/eclipse/development/porting/eclipse_4_14_porting_guide.html" target="_top">
    <em>Eclipse 4.14 Plug-in Migration Guide</em>
  </a>. Programs that use affected APIs and extension points will need to be ported
  to Eclipse SDK 4.14 APIs. Downward contract compatibility
  is not supported. There is no guarantee that compliance with Eclipse SDK 4.14
  APIs would ensure compliance with Eclipse SDK 4.13 APIs. Refer to
  <a href="http://wiki.eclipse.org/index.php/Evolving_Java-based_APIs">
    <em>Evolving Java-based APIs</em>
  </a> for a discussion of the kinds of API changes that maintain contract compatibility.</p>
  
<p><strong>Binary (plug-in) Compatibility:</strong> Eclipse SDK 4.14 will be upwards
  binary-compatible with Eclipse SDK 4.13 except in those areas noted in the
  <a href="http://www.eclipse.org/eclipse/development/porting/eclipse_4_14_porting_guide.html" target="_top">
    <em>Eclipse 4.14 Plug-in Migration Guide</em>
  </a>. Downward plug-in compatibility is not supported. Plug-ins for Eclipse SDK
  4.14 will not be usable in Eclipse SDK 4.13. Refer to
  <a href="http://wiki.eclipse.org/index.php/Evolving_Java-based_APIs">
    <em>Evolving Java-based APIs</em>
  </a> for a discussion of the kinds of API changes that maintain binary compatibility.</p>
  
<p><strong>Source Compatibility:</strong> Eclipse SDK 4.14 will be upwards source-compatible
  with Eclipse SDK 4.13 except in the areas noted in the
  <a href="http://www.eclipse.org/eclipse/development/porting/eclipse_4_14_porting_guide.html" target="_top">
    <em>Eclipse 4.14 Plug-in Migration Guide</em>
  </a>. This means that source files written
  to use Eclipse SDK 4.13 APIs might successfully compile and run against Eclipse
  SDK 4.14 APIs, although this is not guaranteed. Downward source compatibility
  is not supported. If source files use new Eclipse SDK APIs, they will not be
  usable with an earlier version of the Eclipse SDK. </p>
  
<p><strong>Workspace Compatibility:</strong> Eclipse SDK 4.14 will be upwards
  workspace-compatible with earlier 3.x and 4.x versions of the Eclipse SDK unless noted.
  This means that workspaces and projects created with Eclipse SDK 4.13, 4.3, .. 3.0 can be successfully
  opened by Eclipse SDK 4.14 and upgraded to a 4.14 workspace. This includes both
  hidden metadata, which is localized to a particular workspace, as well as metadata
  files found within a workspace project (e.g., the .project file), which may
  propagate between workspaces via file copying or team repositories. Individual
  plug-ins developed for Eclipse SDK 4.14 should provide similar upwards compatibility
  for their hidden and visible workspace metadata created by earlier versions;
  4.14 plug-in developers are responsible for ensuring that their plug-ins recognize
  metadata from earlier versions and process it appropriately. User
  interface session state may be discarded when a workspace is upgraded. Downward
  workspace compatibility is not supported. A workspace created (or opened) by
  a product based on Eclipse 4.14 will be unusable with a product based on an earlier
  version of Eclipse. Visible metadata files created (or overwritten) by Eclipse
  4.14 will generally be unusable with earlier versions of Eclipse. </p>
  
<p><strong>Non-compliant usage of API's</strong>: All non-API methods and classes,
  and certainly everything in a package with &quot;internal&quot; in its name or
  x-internal in the bundle manifest entry,
  are considered implementation details which may vary between operating environment
  and are subject to change without notice. Client plug-ins that directly depend
  on anything other than what is specified in the Eclipse SDK API are inherently
  unsupportable and receive no guarantees about compatibility within a single
  release much less with earlier releases. Refer to
  <a href="http://www.eclipse.org/articles/Article-API-Use/index.html">
    <em>How to Use the Eclipse API</em>
  </a> for information about how to write compliant plug-ins. </p>

</div>
</p:compatibility_with_previous_releases>
  
<!-- ============================================== -->

<p:themes_and_priorities>

<p:preamble>
We no longer group the plan items into separate themes as this is does not provide real value to our users.
<div>
<p>Each plan item listed in the sub-project plans covers a feature or API that is
  to be added to the Eclipse Project deliverables, or some aspect of the Eclipse Project that is
  to be improved. Each plan item has its own entry in the Eclipse bugzilla database, with a title
  and a concise summary (usually a single paragraph) that explains the work item at a suitably
  high enough level so that everyone can readily understand what the work item entails.</p>
<p> Although there are three mature projects under the top-level Eclipse Project, there
  is a significant amount of commonality and shared effort between them. In general,
  many plan items involve coordinated changes to multiple components, and thus
  attempting to separate the items into sections based on sub-project leads to
  artificial distinctions between them (e.g., Platform UI vs. JDT UI, Platform
  Debug vs. JDT Debug, etc.). As such, this plan covers the work of all mature sub-projects
  under the top level Eclipse Project.</p>
<p>Not all plan items represent the same amount of work; some may be quite
  large, others, quite small. Although some plan items are for work that is 
  more pressing than others, the plan items appear in no particular order.
  See the corresponding bugzilla items for up-to-date status information on
  ongoing work and planned delivery milestones.</p>
</div>
</p:preamble>

<p:theme name="Sub-Project Plans">
<p:description>
<p>
<!--
<img src="http://www.eclipse.org/eclipse/development/new.gif" alt="(new)" border="0" height="12" width="12" />
-->
<ul>
<li><a href="http://eclip.se/g3">Equinox</a></li>
<li><a href="http://eclip.se/g4">Platform</a></li>
<li><a href="http://eclip.se/g5">JDT</a></li>
<li><a href="http://eclip.se/g6">PDE</a></li>
</ul></p>
</p:description>

</p:theme>

</p:themes_and_priorities>
    
<!-- ============================================== -->

</p:plan>
