Skip to content

Commit 08956f9

Browse files
elsazacakurtakov
authored andcommitted
Project Plan for Eclipse SDK 4.38
1 parent 53d0364 commit 08956f9

File tree

1 file changed

+398
-0
lines changed

1 file changed

+398
-0
lines changed
Lines changed: 398 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,398 @@
1+
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
2+
<!-- Use this to test local rendering in firefox. Comment out this line once this plan is linked to portal data. -->
3+
<?xml-stylesheet type="text/xsl" href="project-plan-render.xsl"?>
4+
5+
<!-- <?xml-stylesheet type="text/xsl" href="http://www.eclipse.org/projects/project-plan.xsl"?> -->
6+
7+
<p:plan
8+
plan-format="1.0"
9+
xmlns:p="http://www.eclipse.org/project/plan" xmlns="http://www.w3.org/1999/xhtml"
10+
name="Eclipse Project">
11+
12+
<p:release projectid="eclipse" version="2025-12"/>
13+
14+
<!-- ============================================== -->
15+
16+
<p:introduction>
17+
<div>
18+
<p>
19+
Last revised October 07, 2025.
20+
21+
22+
</p>
23+
<p><i>Please send comments about this plan to the</i> <a href="mailto:[email protected]">[email protected]</a> <i>developer
24+
mailing list.</i>
25+
</p>
26+
<p>This document lays out the feature and API set for the next feature release
27+
of the Eclipse SDK after 4.37, designated release 4.38 and code-named 2025-12.
28+
</p>
29+
30+
<p>The first part of the plan deals with the important matters of release deliverables,
31+
release milestones, target operating environments, and release-to-release compatibility.
32+
These are all things that need to be clear for any release, even if no features
33+
were to change. </p>
34+
<p>Not all plan items represent the same amount of work; some may be quite large,
35+
others, quite small. Some plan items may involve work that is localized to
36+
a single component; others may involve coordinated changes to several components;
37+
other may pervade the entire SDK. Although some plan items are for work that
38+
is more pressing than others, the plan items appear in no particular order. </p>
39+
<p>With the previous release as the starting point, this is the plan for how
40+
we will enhance and improve it. Fixing bugs, improving test coverage, documentation,
41+
examples, performance tuning, usability, etc. are considered routine ongoing
42+
maintenance activities and are not included in this plan unless they would
43+
also involve a significant change to the API or feature set, or involve a significant
44+
amount of work. The intent of the plan is to account for all interesting feature
45+
work. </p>
46+
47+
</div>
48+
</p:introduction>
49+
50+
<!-- ============================================== -->
51+
52+
<p:release_deliverables>
53+
<div>
54+
55+
<p>The release deliverables have the same form as previous releases, namely: </p>
56+
<ul>
57+
<li>Source code release for all Eclipse Project deliverables, available as
58+
versions tagged &quot;R4_38&quot; in the Eclipse Project Git
59+
repositories <a href="https://github.com/eclipse-equinox/">Equinox</a>, <a href="https://github.com/eclipse-jdt/">JDT</a>,
60+
<a href="https://github.com/eclipse-pde/">PDE</a> and <a href="https://github.com/eclipse-platform/">Platform</a>.</li>
61+
<li>Eclipse SDK (runtime binary and SDK for Equinox, Platform, JDT, and PDE) (downloadable).</li>
62+
<li>Eclipse Equinox (runtime and source repositories) (downloadable).</li>
63+
<li>Eclipse Platform (runtime and source repositories) (downloadable).</li>
64+
<li>Eclipse ECJ (runtime and source for the Eclipse Compiler for Java) (downloadable).</li>
65+
<li>Eclipse PDE (Installable from repository for the Plug-in Development Environment).</li>
66+
<li>Eclipse SDK Examples (Installable from repository).</li>
67+
<li>SWT distribution (downloadable).</li>
68+
</ul>
69+
70+
71+
</div>
72+
</p:release_deliverables>
73+
74+
<!-- ============================================== -->
75+
76+
<p:release_milestones>
77+
78+
<p:preamble><p>
79+
Release milestones will be occurring at roughly 6 week intervals, and will be aligned with the
80+
<a href="https://github.com/eclipse-simrel/.github/blob/main/wiki/SimRel/2025-12.md">
81+
2025-12 Simultaneous Release</a> train.</p>
82+
</p:preamble>
83+
<p:milestone date="2025-10-04" milestone="M1"><div>4.38 M1</div></p:milestone>
84+
<p:milestone date="2025-10-25" milestone="M2"><div>4.38 M2 (only submit I-build)</div></p:milestone>
85+
<p:milestone date="2025-11-15" milestone="M3"><div>4.38 M3 - <b>Release Record Deadline</b></div></p:milestone>
86+
<!--
87+
NOTE: This is only necessary once per year. For us with the 202x-03 release.
88+
<p:milestone date="2023-11-18" milestone=""><div>IP Log Submission Deadline</div></p:milestone>
89+
-->
90+
<p:milestone date="2025-11-22" milestone="RC1"><div>4.38 RC1 - <b>API and feature freeze</b></div></p:milestone>
91+
<!--
92+
NOTE: This is only necessary once per year. For us with the 202x-03 release.
93+
<p:milestone date="2023-11-25" milestone=""><div>Review Material Submission Deadline</div></p:milestone>
94+
-->
95+
<p:milestone date="2025-11-29" milestone="RC2"><div>4.38 RC2 - <b>New and Noteworthy Material Deadline</b></div></p:milestone>
96+
<p:milestone date="2025-12-04" milestone="GA"><div>4.38 GA</div></p:milestone>
97+
98+
<p:postamble>
99+
<div>
100+
<p>Our target is to complete 4.38 in December 2025.
101+
All release deliverables will be available for download as soon as the release has been
102+
tested and validated in the target operating configurations listed below.</p>
103+
<p>PMC approval is required for API changes and additions after M3.</p>
104+
</div>
105+
</p:postamble>
106+
107+
</p:release_milestones>
108+
109+
<!-- ============================================== -->
110+
111+
<p:target_environments>
112+
113+
<div>
114+
<p>In order to remain current, each Eclipse Project release targets reasonably current
115+
operating environments.</p>
116+
<p>Most of the Eclipse SDK is &quot;pure&quot; Java code and has no direct dependence
117+
on the underlying operating system. The chief dependence is therefore on the
118+
Java Platform itself. Portions are targeted to specific classes of operating
119+
environments, requiring their source code to only reference facilities available
120+
in particular class libraries (e.g. Java 22, Java 23, etc).</p>
121+
<p>
122+
In general, the 4.38 release of the Eclipse Project is developed on Java SE 21 VMs.
123+
As such, the Eclipse SDK as a whole
124+
is targeted at all modern, desktop Java VMs. Most functionality is available for
125+
Java SE 21 level development everywhere, and extended development capabilities are made
126+
available on the VMs that support them.</p>
127+
<p>There are many different implementations of the Java Platform running atop
128+
a variety of operating systems. We focus our testing on a handful of
129+
popular combinations of operating system and Java Platform; these are our <em>reference
130+
platforms</em>. Eclipse undoubtedly runs fine in many operating environments
131+
beyond the reference platforms we test. However, since we do not systematically test
132+
them we cannot vouch for them. Problems encountered when running Eclipse on a
133+
non-reference platform that cannot be recreated on any reference platform will
134+
be given lower priority than problems with running Eclipse on a reference platform.</p>
135+
<p>Eclipse 4.38 is tested and validated on the following reference platforms
136+
(this list is updated over the course of the release cycle):</p>
137+
<style type="text/css">
138+
table.platforms {
139+
border-width: 1px;
140+
border-spacing: 0px;
141+
border-style: solid;
142+
border-collapse: separate;
143+
}
144+
table.platforms th {
145+
border-width: 1px;
146+
padding: 3px;
147+
border-style: inset;
148+
border-color: black;
149+
background-color: #B9A9FF;
150+
}
151+
table.platforms td {
152+
border-width: 1px 1px 1px 1px;
153+
padding: 3px 3px 3px 3px;
154+
border-style: inset inset inset inset;
155+
border-color: gray gray gray gray;
156+
}
157+
table.platforms tr.c0 td {
158+
background-color: #FDFDFD;
159+
}
160+
table.platforms tr.c1 td {
161+
background-color: #F4EEFF;
162+
}
163+
</style>
164+
<center>
165+
<table class="platforms">
166+
<tr>
167+
<th>Operating System</th>
168+
<th>Version</th>
169+
<th>Hardware</th>
170+
<th>JRE</th>
171+
<th>Windowing System</th>
172+
</tr>
173+
<!-- ************ WINDOWS ************** -->
174+
<tr class="c0">
175+
<td rowspan="1">Windows</td>
176+
<td rowspan="1">
177+
11<br/>
178+
</td>
179+
<td rowspan="1">x86 64-bit</td>
180+
<td rowspan="1">
181+
OpenJDK 21.0.8 (LTS)<br/>
182+
Oracle Java 21.0.8 (LTS)<br/>
183+
OpenJDK 25.0.0 (LTS)<br/>
184+
Oracle Java 25.0.0 (LTS)<br/>
185+
</td>
186+
<td rowspan="1">Win32</td>
187+
</tr>
188+
<!-- ************ RHEL ************** -->
189+
<tr class="c1">
190+
<td rowspan="2">Red Hat Enterprise Linux</td>
191+
192+
<td rowspan="2">10.0
193+
</td>
194+
<td rowspan="1">
195+
x86 64-bit<br/>
196+
aarch64<br/>
197+
</td>
198+
<td rowspan="1">
199+
OpenJDK 21.0.8 (LTS)<br/>
200+
Oracle Java 21.0.8 (LTS)<br/>
201+
OpenJDK 25.0.0 (LTS)<br/>
202+
Oracle Java 25.0.0 (LTS)<br/>
203+
</td>
204+
<td rowspan="2">GTK 3</td>
205+
</tr>
206+
<tr class="c1">
207+
<td rowspan="1">Power 64-bit LE</td>
208+
<td rowspan="1">
209+
OpenJDK 21.0.8 (LTS)<br/>
210+
OpenJDK 25.0.0 (LTS)<br/>
211+
</td>
212+
</tr>
213+
<!-- ************ SLES ************** -->
214+
<tr class="c0">
215+
<td rowspan="2">SUSE Linux Enterprise Server</td>
216+
<td rowspan="2">
217+
16
218+
</td>
219+
<td rowspan="1">x86 64-bit</td>
220+
<td rowspan="1">
221+
OpenJDK 21.0.8 (LTS)<br/>
222+
OpenJDK 25.0.0 (LTS)<br/>
223+
</td>
224+
<td rowspan="2">GTK 3</td>
225+
</tr>
226+
<tr class="c0">
227+
<td rowspan="1">Power 64-bit LE</td>
228+
<td rowspan="1">
229+
OpenJDK 21.0.8 (LTS)<br/>
230+
OpenJDK 25.0.0 (LTS)<br/>
231+
</td>
232+
</tr>
233+
234+
<!-- ************ Ubuntu ************** -->
235+
<tr class="c1">
236+
<td rowspan="1">Ubuntu Long Term Support</td>
237+
<td rowspan="1">24.04.03</td>
238+
<td rowspan="1">
239+
x86 64-bit<br/>
240+
aarch64<br/>
241+
</td>
242+
<td rowspan="1">
243+
OpenJDK 21.0.8 (LTS)<br/>
244+
OpenJDK 25.0.0 (LTS)<br/>
245+
</td>
246+
<td rowspan="1">GTK 3</td>
247+
</tr>
248+
249+
<!-- ************ Mac ************** -->
250+
<tr class="c1">
251+
<td rowspan="2">Apple macOS</td>
252+
<td rowspan="1">
253+
14<br/>
254+
15<br/>
255+
26
256+
</td>
257+
258+
<td rowspan="1">x86 64-bit</td>
259+
260+
<td rowspan="1">
261+
OpenJDK 21.0.8 (LTS)<br/>
262+
Oracle Java 21.0.8 (LTS)<br/>
263+
OpenJDK 25.0.0 (LTS)<br/>
264+
Oracle Java 25.0.0 (LTS)<br/>
265+
</td>
266+
267+
<td rowspan="2">Cocoa</td>
268+
</tr>
269+
<tr class="c0">
270+
<td rowspan="1">
271+
14<br/>
272+
15<br/>
273+
26
274+
</td>
275+
<td rowspan="1">
276+
M1 (arm64)
277+
</td>
278+
<td rowspan="1">
279+
OpenJDK 21.0.8 (LTS)<br/>
280+
OpenJDK 25.0.0 (LTS)<br/>
281+
</td>
282+
</tr>
283+
</table>
284+
</center>
285+
286+
<p>As stated above, <i>we expect that Eclipse works fine on other current
287+
Java VM and OS versions but we cannot flag these as reference platforms without
288+
significant community support for testing them.</i></p>
289+
<p>With respect to GTK 3 versions: the <i>required</i> version of GTK 3 which Eclipse SDK 4.38
290+
will run on is 3.22 or newer.
291+
</p>
292+
293+
<p>With respect to GTK 3 themes: Adwaita theme is guaranteed to work. Eclipse SDK will run with other GTK 3 themes,
294+
however we cannot flag these as reference versions without significant community support for testing and/or development
295+
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),
296+
compared to bugs which are reproducible on the target environments listed above.
297+
</p>
298+
</div>
299+
300+
<p:internationalization>
301+
<p>The Eclipse SDK is designed as the basis for internationalized products. The
302+
user interface elements provided by the Eclipse SDK components, including dialogs
303+
and error messages, are externalized. The English strings are provided as the
304+
default resource bundles.</p>
305+
<p>Latin-1, DBCS, and BiDi locales are supported by the Eclipse SDK on all reference platforms.</p>
306+
<p>The Eclipse SDK supports GB 18030 (level 1), the Chinese code page standard,
307+
on Windows, Linux and the Macintosh.</p>
308+
</p:internationalization>
309+
310+
</p:target_environments>
311+
312+
<!-- ============================================== -->
313+
314+
<p:compatibility_with_previous_releases>
315+
<div>
316+
317+
<h3>Compatibility of Release 4.38 with 4.37</h3>
318+
<p>Eclipse 4.38 will be compatible with Eclipse 4.37</p>
319+
320+
<p><strong>API Contract Compatibility:</strong> Eclipse SDK 4.38 will be upwards
321+
contract-compatible with Eclipse SDK 4.37 except in those areas noted in the
322+
<a href="https://help.eclipse.org/2025-12/topic/org.eclipse.platform.doc.isv/porting/eclipse_4_38_porting_guide.html" target="_top">
323+
<em>Eclipse 4.38 Plug-in Migration Guide</em>
324+
</a>. Programs that use affected APIs and extension points will need to be ported
325+
to Eclipse SDK 4.38 APIs. Downward contract compatibility
326+
is not supported. There is no guarantee that compliance with Eclipse SDK 4.38
327+
APIs would ensure compliance with Eclipse SDK 4.37 APIs. Refer to
328+
<a href="https://github.com/eclipse-platform/eclipse.platform/blob/master/docs/Evolving-Java-based-APIs.md">
329+
<em>Evolving Java-based APIs</em>
330+
</a> for a discussion of the kinds of API changes that maintain contract compatibility.</p>
331+
332+
<p><strong>Binary (plug-in) Compatibility:</strong> Eclipse SDK 4.38 will be upwards
333+
binary-compatible with Eclipse SDK 4.37 except in those areas noted in the
334+
<a href="https://help.eclipse.org/2025-12/topic/org.eclipse.platform.doc.isv/porting/eclipse_4_38_porting_guide.html" target="_top">
335+
<em>Eclipse 4.38 Plug-in Migration Guide</em>
336+
</a>. Downward plug-in compatibility is not supported. Plug-ins for Eclipse SDK
337+
4.38 will not be usable in Eclipse SDK 4.37. Refer to
338+
<a href="https://github.com/eclipse-platform/eclipse.platform/blob/master/docs/Evolving-Java-based-APIs.md">
339+
<em>Evolving Java-based APIs</em>
340+
</a> for a discussion of the kinds of API changes that maintain binary compatibility.</p>
341+
342+
<p><strong>Source Compatibility:</strong> Eclipse SDK 4.38 will be upwards source-compatible
343+
with Eclipse SDK 4.37 except in the areas noted in the
344+
<a href="https://help.eclipse.org/2025-03/topic/org.eclipse.platform.doc.isv/porting/eclipse_4_38_porting_guide.html" target="_top">
345+
<em>Eclipse 4.38 Plug-in Migration Guide</em>
346+
</a>. This means that source files written
347+
to use Eclipse SDK 4.38 APIs might successfully compile and run against Eclipse
348+
SDK 4.37 APIs, although this is not guaranteed. Downward source compatibility
349+
is not supported. If source files use new Eclipse SDK APIs, they will not be
350+
usable with an earlier version of the Eclipse SDK. </p>
351+
352+
<p><strong>Workspace Compatibility:</strong> Eclipse SDK 4.38 will be upwards
353+
workspace-compatible with earlier 3.x and 4.37 versions of the Eclipse SDK unless noted.
354+
This means that workspaces and projects created with Eclipse SDK 4.37, 4.36, 4.35, 4.34, 4.33...4.30, 4.25, .. 3.0 can be successfully
355+
opened by Eclipse SDK 4.38 and upgraded to a 4.38 workspace. This includes both
356+
hidden metadata, which is localized to a particular workspace, as well as metadata
357+
files found within a workspace project (e.g., the .project file ), which may
358+
propagate between workspaces via file copying or team repositories. Individual
359+
plug-ins developed for Eclipse SDK 4.38 should provide similar upwards compatibility
360+
for their hidden and visible workspace metadata created by earlier versions;
361+
4.38 plug-in developers are responsible for ensuring that their plug-ins recognize
362+
metadata from earlier versions and process it appropriately. User
363+
interface session state may be discarded when a workspace is upgraded. Downward
364+
workspace compatibility is not supported. A workspace created (or opened) by
365+
a product based on Eclipse 4.38 will be unusable with a product based on an earlier
366+
version of Eclipse. Visible metadata files created (or overwritten) by Eclipse
367+
4.38 will generally be unusable with earlier versions of Eclipse. </p>
368+
369+
<p><strong>Non-compliant usage of API's</strong>: All non-API methods and classes,
370+
and certainly everything in a package with &quot;internal&quot; in its name or
371+
x-internal in the bundle manifest entry,
372+
are considered implementation details which may vary between operating environment
373+
and are subject to change without notice. Client plug-ins that directly depend
374+
on anything other than what is specified in the Eclipse SDK API are inherently
375+
unsupportable and receive no guarantees about compatibility within a single
376+
release much less with earlier releases. Refer to
377+
<a href="https://www.eclipse.org/articles/Article-API-Use/index.html">
378+
<em>How to Use the Eclipse API</em>
379+
</a> for information about how to write compliant plug-ins. </p>
380+
381+
</div>
382+
</p:compatibility_with_previous_releases>
383+
384+
<!-- ============================================== -->
385+
386+
<!-- <p:themes_and_priorities> -->
387+
388+
<p:preamble>
389+
We no longer group the plan items into separate themes as this does not provide real value to our users.
390+
<div>
391+
</div>
392+
</p:preamble>
393+
394+
<!-- </p:themes_and_priorities> -->
395+
396+
<!-- ============================================== -->
397+
398+
</p:plan>

0 commit comments

Comments
 (0)