Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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.

Karsten Thoms

October 21, 2020
Tweet

More Decks by Karsten Thoms

Other Decks in Programming

Transcript

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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  6. Community
    & Adoption

    View Slide

  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)

    View Slide

  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

    View Slide

  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

    View Slide

  10. Code Cleanups

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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)

    View Slide

  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

    View Slide

  16. BREE 11

    View Slide

  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

    View Slide

  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

    View Slide

  19. Dark Theme

    View Slide

  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…

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  24. Performance

    View Slide

  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/

    View Slide

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

    View Slide

  27. Link Handler

    View Slide

  28. This is a very very very long gag
    @kthoms
    Headline
    eclipse+command://org.eclipse.ui.window.preferences?
    preferencePageId=org.eclipse.ui.browser.preferencePage

    View Slide

  29. Linux

    View Slide

  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

    View Slide

  31. Chromium Support

    View Slide

  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]

    View Slide

  33. New Apple Silicon

    View Slide

  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

    View Slide

  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

    View Slide

  36. Challenges

    View Slide

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

    View Slide

  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

    View Slide

  39. More New &
    Noteworthy

    View Slide

  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

    View Slide

  41. View Slide