What's New in the Eclipse Platform Project (EclipseCon 2020)

What's New in the Eclipse Platform Project (EclipseCon 2020)

This is a wrap up of what has happened in the Eclipse Platform Project from last year's EclipseCon (Eclipse 2019-09) till EclipseCon 2020 and also current challenges the Eclipse Platform team is working on.

The talk is complementary to other talks given at EclipseCon that focused on aspects like JDT, Java Support, Build, or Performance.

E76754f592fecf0116c53b2bc39ff135?s=128

Karsten Thoms

October 21, 2020
Tweet

Transcript

  1. What’s New in the Eclipse Platform Project Karsten Thoms https://pixabay.com/de/illustrations/wissenschaft-sun-verfinstern-1925058/

  2. This is a very very very long gag @kthoms Karsten

    • Senior Software Engineer @ Karakun • Open Source Enthusiast • Committer on some Eclipse projects • Contributor on some more
  3. This is a very very very long gag @kthoms Release

    Train 2019 2020 2021 2019-06 / 4.12 2019-12 / 4.14 2020-06 / 4.16 2020-03 / 4.15 2020-09 / 4.17 2020-12 / 4.18 2019-09 / 4.13 2019-03 / 4.11 2021-03 / 4.19
  4. This is a very very very long gag @kthoms Release

    Train 2019 2020 2021 2019-06 / 4.12 2019-12 / 4.14 2020-06 / 4.16 2020-03 / 4.15 2020-09 / 4.17 2020-12 / 4.18 2019-09 / 4.13 2019-03 / 4.11 2021-03 / 4.19 Java 15 Java 14 Java 13 Java 12
  5. This is a very very very long gag @kthoms Release

    Train 2019 2020 2021 2019-06 / 4.12 2019-12 / 4.14 2020-06 / 4.16 2020-03 / 4.15 2020-09 / 4.17 2020-12 / 4.18 2019-09 / 4.13 2019-03 / 4.11 2021-03 / 4.19 M1 M2 M3 RC1 RC2 2020-12 / 4.18
  6. Community & Adoption

  7. This is a very very very long gag @kthoms Project

    Committers New Committers • Alex Blewitt • Andrew Obuchowicz Resigned Committers • Markus Keller (Platform, Equinox, JDT, PDE) • Steffen Pingel (Equinox) • Curtis Windatt (JDT, PDE) • Sasikanth Bharadwaj (JDT) • Stefan Xenos (JDT) • Benjamin Cabe (PDE) • Sopot Cela (Platform, PDE) • Grant Gayed (Platform)
  8. This is a very very very long gag @kthoms Download

    Stats 3.1 Mio 3.2 Mio 3.3 Mio 2.5 Mio Now includes OpenJDK 11
  9. This is a very very very long gag @kthoms Social

    Activity • @EclipseJavaIDE • Initiated by Sopot Cela 02/2017 • 16k followers • 2.4k tweets • @mickaelistria - Mr. "What's your specific issue with @EclipseJavaIDE" • "1 trivial bug a week" campaign via @EclipseJavaIDE
  10. Code Cleanups

  11. This is a very very very long gag @kthoms Code

    Cleanups • Lots of cosmetic changes pouring in • Removal of dead internal code • Mostly merged for M1 • Using Eclipse CleanUp actions, jSparrow, or manual • Many cleanup actions added to JDT recently
  12. This is a very very very long gag @kthoms API

    Removals • Deprecated API gets slowly removed from the code base according to the API Removal Process [1] • Removals are documented in the Platform Porting Guide [2] [1] https://wiki.eclipse.org/Eclipse/API_Central/API_Removal_Process [2] https://help.eclipse.org/2020-09/topic/org.eclipse.platform.doc.isv/porting/removals.html?cp=2_3_0
  13. This is a very very very long gag @kthoms API

    Removals Removed APIs in the Eclipse 4.17 release: 1. Remove Input and MInputPart 2. org.eclipse.core.runtime.Platform#getJobManager() 3. JFace and JFace text Assert Planned API removals after June 2017: 1. Platform authorization API Planned API removals after June 2018: 1. org.eclipse.ui.cocoa.fullscreenWindow Planned API removals after June 2020: 1. Remove Dirtable flag from MPartDescriptor 2. Remove org.eclipse.core.runtime.IPlatformRunnable 3. Remove deprecated dialogs from org.eclipse.ui.dialogs 4. Remove deprecated method and constructor in PopupDialog Planned API removals after December 2020: 1. Remove org.eclipse.pde.core.IModelProvider Planned API removals after March 2021: 1. Remove org.eclipse.pde.ui.targetProvisioners extension point 2. org.eclipse.core.commands.util package 3. org.eclipse.ui.editors.text.EncodingActionGroup 4. org.eclipse.core.launcher#Main and WebStartMain 5. Delete 2.0 plug-in compatibility classes and related API 6. Delete Job.createSystem(ICoreRunnable) API 7. Delete unsupported methods in WorkbenchWindowConfigurer Planned API removals after June 2021: 1. Delete deprecated contents of org.eclipse.ui.commands package Planned API removals after September 2021: 1. Navigator view and related API Planned API removals after December 2021: 1. Bookmark view and related API Planned API removals after June 2022: 1. ICU4J bundle from SDK Planned API removals after September 2022: 1. Remove deprecated contents of org.eclipse.pde.ui.launcher package 2. Remove TargetPlatform::createPlatformConfiguration See http://eclip.se/h1
  14. This is a very very very long gag @kthoms API

    Removals Removed APIs in the Eclipse 4.17 release: 1. Remove Input and MInputPart 2. org.eclipse.core.runtime.Platform#getJobManager() 3. JFace and JFace text Assert Planned API removals after June 2017: 1. Platform authorization API Planned API removals after June 2018: 1. org.eclipse.ui.cocoa.fullscreenWindow Planned API removals after June 2020: 1. Remove Dirtable flag from MPartDescriptor 2. Remove org.eclipse.core.runtime.IPlatformRunnable 3. Remove deprecated dialogs from org.eclipse.ui.dialogs 4. Remove deprecated method and constructor in PopupDialog Planned API removals after December 2020: 1. Remove org.eclipse.pde.core.IModelProvider Planned API removals after March 2021: 1. Remove org.eclipse.pde.ui.targetProvisioners extension point 2. org.eclipse.core.commands.util package 3. org.eclipse.ui.editors.text.EncodingActionGroup 4. org.eclipse.core.launcher#Main and WebStartMain 5. Delete 2.0 plug-in compatibility classes and related API 6. Delete Job.createSystem(ICoreRunnable) API 7. Delete unsupported methods in WorkbenchWindowConfigurer Planned API removals after June 2021: 1. Delete deprecated contents of org.eclipse.ui.commands package Planned API removals after September 2021: 1. Navigator view and related API Planned API removals after December 2021: 1. Bookmark view and related API Planned API removals after June 2022: 1. ICU4J bundle from SDK Planned API removals after September 2022: 1. Remove deprecated contents of org.eclipse.pde.ui.launcher package 2. Remove TargetPlatform::createPlatformConfiguration See http://eclip.se/h1 Clients had to adapt (e.g. RSA)
  15. This is a very very very long gag @kthoms API

    Removals Removed APIs in the Eclipse 4.17 release: 1. Remove Input and MInputPart 2. org.eclipse.core.runtime.Platform#getJobManager() 3. JFace and JFace text Assert Planned API removals after June 2017: 1. Platform authorization API Planned API removals after June 2018: 1. org.eclipse.ui.cocoa.fullscreenWindow Planned API removals after June 2020: 1. Remove Dirtable flag from MPartDescriptor 2. Remove org.eclipse.core.runtime.IPlatformRunnable 3. Remove deprecated dialogs from org.eclipse.ui.dialogs 4. Remove deprecated method and constructor in PopupDialog Planned API removals after December 2020: 1. Remove org.eclipse.pde.core.IModelProvider Planned API removals after March 2021: 1. Remove org.eclipse.pde.ui.targetProvisioners extension point 2. org.eclipse.core.commands.util package 3. org.eclipse.ui.editors.text.EncodingActionGroup 4. org.eclipse.core.launcher#Main and WebStartMain 5. Delete 2.0 plug-in compatibility classes and related API 6. Delete Job.createSystem(ICoreRunnable) API 7. Delete unsupported methods in WorkbenchWindowConfigurer Planned API removals after June 2021: 1. Delete deprecated contents of org.eclipse.ui.commands package Planned API removals after September 2021: 1. Navigator view and related API Planned API removals after December 2021: 1. Bookmark view and related API Planned API removals after June 2022: 1. ICU4J bundle from SDK Planned API removals after September 2022: 1. Remove deprecated contents of org.eclipse.pde.ui.launcher package 2. Remove TargetPlatform::createPlatformConfiguration See http://eclip.se/h1 Already in progress
  16. BREE 11

  17. This is a very very very long gag @kthoms BREE

    11 • Starting with Eclipse 2020-09 a JRE 11 is required • Increasingly more bundles started to upgrade BREE to Java 11 • Bundling justj JREs lowers the bar for users Your Products Might not Start with Java 8 Anymore
  18. This is a very very very long gag @kthoms justj

    • Provides redistributable Java runtimes • Available as bundles on p2 repositories • Java versions: 11, 14, 15 • Flavors: full (~70MB), minimal (~35MB), base (~20MB) • For each flavour also a "stripped" version
  19. Dark Theme

  20. This is a very very very long gag @kthoms Dark

    Theme • This is the first point • And we have a second point line 2… • oh, 3rd one • more than 4 should not make sense…
  21. This is a very very very long gag @kthoms Dark

    Theme
  22. This is a very very very long gag @kthoms Dark

    Theme
  23. This is a very very very long gag @kthoms Dark

    Theme
  24. Performance

  25. This is a very very very long gag @kthoms Performance

    • Startup Performance • IResourceChangeListener whiteboard • Interactive Performance • More asynchronous operations, e.g. content assist • UI freeze analysis "Umbrella Bugs": #550209/#550136 (4.14) #553533 (4.15) #560449 (4.16) #563542 (4.17) #566485 (4.18) https://pixabay.com/de/vectors/pin-rei%C3%9Fzwecke-b%C3%BCro-rot-stift-147918/
  26. This is a very very very long gag @kthoms Performance

  27. Link Handler

  28. This is a very very very long gag @kthoms Headline

    eclipse+command://org.eclipse.ui.window.preferences? preferencePageId=org.eclipse.ui.browser.preferencePage
  29. Linux

  30. This is a very very very long gag @kthoms Linux

    Support • GTK 3.20 is now minimal requirement (Eclipse 2020-06) • Affects only EOL Linux distros (e.g. Ubuntu 16) • Next working on GTK 4 support [1] Bug#561047 [2] https://www.eclipse.org/lists/platform-dev/msg02267.html
  31. Chromium Support

  32. This is a very very very long gag @kthoms Chromium

    Support • Chromium was added as new embedded Browser • Development funded by FEEP Program new Browser (parent, SWT.CHROMIUM) org.eclipse.swt.browser.chromium -Dorg.eclipse.swt.browser.DefaultType=Chromium [1] Bug#549585
 [2] http://eclip.se/h2 [1] [2]
  33. New Apple Silicon

  34. This is a very very very long gag @kthoms New

    Apple Silicon • In June 2020 Apple announced transition of Apple hardware to its silicon • New processor technology is based on ARM • With Rosetta 2 x86_64 binaries would still run, but slower
  35. This is a very very very long gag @kthoms New

    Apple Silicon • SWT Libraries have to be compiled as Universal Binaries (Bug#565690) • Build agents with new target architecture have to be included • Eclipse Foundation is in contact with Apple & Mac provider • No OpenJDK build for aarch_64 yet Adoptopenjdk#1922 & JEP#391
  36. Challenges

  37. This is a very very very long gag @kthoms Gerrit

    Queue Ca. 350 open changes About the same as last year
  38. This is a very very very long gag @kthoms Participation

    Welcome • Review patches on Gerrit • React on bug reports • Provide patches • Testing • Attract more contributors • Spread the word! https://wiki.eclipse.org/Platform/ How_to_Contribute
  39. More New & Noteworthy

  40. This is a very very very long gag @kthoms Want

    to know more? • https://www.eclipse.org/eclipse/news/4.14/ • https://www.eclipse.org/eclipse/news/4.15/ • https://www.eclipse.org/eclipse/news/4.16/ • https://www.eclipse.org/eclipse/news/4.17/ • https://www.youtube.com/watch?v=qJ04gN5HLoU https://www.youtube.com/watch?v=OdoyCjpaQKs • https://www.youtube.com/watch?v=XoUvOTiVaDc • https://www.youtube.com/watch?v=igbIAS6vlU8 • https://www.youtube.com/watch?v=V5O52H7e8oc Kudos to Holger Voormann N&N Pages N&N Videos
  41. None