Skip to main content
Jump to: navigation, search

Google Summer of Code 2020 Ideas

Please see our main Google Summer of Code page for participation information.

Help Wanted

Any issue listed as helpwanted is a potential GSoC project idea.

  • 552710 Add External JARs selection ignored when creating a new project
  • 552270 [Code duplication] many helper methods for processEvents in test-cases
  • 552243 Security warning for unsigned content dialog should not use an error icon
  • 551573 Reduce space waste in compare editor
  • 551043 Target editor does not resize well
  • 550898 Allow to create subfolder in the New File wizard
  • 550816 Fix process monitoring bugs in PDE
  • 550783 Replace deprecated LogService usage inorg.eclipse.e4.ui.internal.workbench.Activator
  • 550641 Cheat Sheets for Hello World application is wrong
  • 550483 Add filter icon to project explorer toolbar
  • 550154 Use TableViewer in QuickAccessContents instead of Table
  • 550099 Closing the tree in Project Explorer should scroll to the correct top level element (Project)
  • 550078 a "search for dependency and add to target-platform" quickfix
  • 549952 [evaluation] Add support for evaluating expressions with anonymous class instances.
  • 546992 Run As > Java file for non-ICompilationUnit Java file with JDK 11
  • 546857 [code mining] skip parameter names for library method with no source information
  • 544529 [content assist] Asynchronous content assist completion doesn't keep selected proposal in CompletionProposalPopup

A complete list is available here.

Other ideas

Project team member and potential mentors, add your content here. The format suggested below is just an idea. Play with the layout, but please don't mess with content provided by other projects. Please be sure to follow branding guidelines (e.g. "Eclipse Dash", not "Dash"). Putting things in alphabetical order seems like a fair thing to do. Links to content hosted elsewhere are fine, but bear in mind that this page will likely be the main point of contact for people who are not already inside your community.

Example Project idea

Description of the Example Project idea with links to more information, bugs, and other useful content.

Specific work that this could involve includes:

  • Bullet list of specific
  • objectives

Possible mentors: Somebody Mentor

Eclipse 4diac

Eclipse 4diac is an environment for programming distributed industrial process measurement and control systems according to the IEC 61499 standard.

Topic 1: Add OCL for Detecting Model Inconsistencies in 4diac Models

Eclipse provides a OCL (Object Constraint Language) infrastructure. This allows to specify generic constraints a model has to fulfill. This can be utilized in Eclipse 4diac to add checks for issues and inconsistencies in the models developed in 4diac.

Skills required: Java, eCore, OCL beneficial

Possible mentor: Alois Zoitl

Topic 2: Generation of Unit-test code out of the component specification

IEC 61499 Function Blocks form componentized units of code. In order to improve code quality on these library elements, they have to be thoroughly tested. A well-known method for this is unit testing. Frameworks like JUnit, Spock, or Fitnesse are interesting starting points for a IEC 61499 Function Block test framework. The goal of this project is to include test specification into Function Block descriptions to create portable tests and improve library code quality on an uniform basis over all compatible IEC 61499 frameworks.

Skills required: Java, EMF

Beneficial skills: JUnit, Xtend, Groovy, Spock, C/C++

Possible mentor: Martin Melik-Merkumians

Topic 3: Extend 4diac FORTE with the Production Performance Management Protocol from Eclipse Unide

The Eclipse Unide project defines the Production Performance Management Protocol (PPMP), with which production systems can report on machine status and product status. As Eclipse 4diac is used to program production equipment it would be great that we natively support the PPMP so that Eclipse 4diac users can utilize it in their applications.

Skills required: C++

Possible mentor: Alois Zoitl

Topic 4: Manage 4diac FORTEs with Eclipse hawkBit

Eclipse hawkBit provides the infrastructure to manage and update a larger number of devices. This is a feature which would be extremely helpful for managing a set of 4diac FORTE based devices. As part of this topic it should be investigated what is needed on 4diac FORTE to interact and integrate with Eclipse hawkBit and to develop a first proof of concept.

Skills required: C++

Possible mentor: Alois Zoitl

If you have any questions, feel free to ask them on to the 4diac mailing list.

Eclipse APP4MC

Eclipse APP4MC is a platform for engineering embedded multi- and many-core software systems. The platform enables the creation and management of complex tool chains including simulation and validation. As an open platform, proven in the automotive sector by Bosch and their partners, it supports interoperability and extensibility and unifies data exchange in cross-organizational projects. APP4MC is one of the results of the ITEA3 Amalthea and Amalthea4Public research projects.

What is Eclipse APP4MC?

Click here to get a quick overview of how Eclipse APP4MC and Capra can help you manage timing, scheduling and traceability in a multi-core environment.

Topics and how to apply

If you are interested in one of the topics, please...

  • Download and extract APP4MC
  • Open the Tools-Examples (File -> New -> Example -> APP4MC Tools Examples -> Java Example)
  • Modify the file so it will output some information about the model, e.g. the number and name of tasks
  • Create a GitHub account (in case you don't yet have one) and upload your results
  • Contact us via the APP4MC mailing list. Don't forget to attach the Link to your GitHub repository.

If you have any questions, feel free to ask them on to the APP4MC mailing list.

Topic 1: Simulating APP4MC Models

Eclipse APP4MC integrates the Amalthea System Model that allows, among others, describing the structure of software. In order to verify the timing behaviour of the described systems, your task lies in supporting the visual assessment by e.g. simulating the system (e.g. executed runnables and tasks) and generating the resp. BTF trace.

(Skills required: Java, understanding BTF beneficial)

Possible mentor: Lukas Krawczyk

Topic 2: Response Time Analysis+

Response time analysis was tackled to some extent in a GSoC project 2019 Code can be found here. Many open topics can still be addressed in new work such as cache-related preemption delays (CRPD), limited-preemptive scheduling or G-EDF / LLF scheduling. Also, model checking or compositional analysis could be used as an alternative to current analytical approaches. The priority assignment problem is also a problem that, right now, is not yet covered in any AMALTHEA-based open-source implementation. Your possible mentor has lots of literature references - so please get in touch :-)

(Skills required: Java)

Possible mentor: Robert Höttger

Eclipse ChemClipse

ChemClipse is a software used in chromatography, spectrometry and spectroscopy. Among others, it supports to read mzXML files.

The source code is located here and can easily be cloned:
If you are interested in one of the topics you have to apply on the mailing list.

Topic: Extend support for mzXML, mzML

Reading mzXML data works already. An export option shall be added. It's the same for other known XML formats like mzML.

Skills required: Java, XML processing

Possible Mentor: Philip Wenig

Eclipse SWTChart

SWTChart is a powerful library to create charts and display data using SWT. It can be easily used in Java desktop applications. Only a few lines of code are necessary to create interactive and feature rich charts:

public class MyChart extends MassSpectrumChart {
	public MyChart(Composite parent) {
		super(parent, SWT.NONE);
	private void initialize() {
		IChartSettings chartSettings = getChartSettings();
		List<IBarSeriesData> barSeriesDataList = new ArrayList<IBarSeriesData>();
		IBarSeriesData barSeriesData = new BarSeriesData(SeriesConverter.getSeriesXY(SeriesConverter.BAR_SERIES_1));

The source code is located here and can easily be cloned:
If you are interested in one of the topics you have to apply on the mailing list.

Topic: Extending the export options

Many export options are contained already, e.g. to export to bitmaps as well as to scripts. The R script option is really helpful, especially when preparing scientific charts for publication, but it needs improvements. As the data is stored in a generic way, many different export options can be implemented. The following improvements are needed:

  • Improving/optimizing *.svg export for Inkscape
  • Extend the R-script export
  • Improve the *.png and *.jpg options using the display
  • Create bitmaps natively (no restriction regarding resolution and size of the display)

Skills required: Java, SWT

Possible Mentor: Philip Wenig

Eclipse Che

For any questions/comments/interests, we have a dedicated Mattermost channel:

Topic 1: Co Editing

Last year, Rijul started to write a VSCode extension to enable Atom Teletype Co-editing feature in VSCode and Eclipse Che 7. We made great progress but we still have work to do to achieve a full featured Co-editing experience.

  • Done: Joining a teletype portal
  • TODO: Enable the editor sync
  • TODO: Deal with users and authentication
  • TODO: Show cursors of each participants
  • TODO: Run a Teletype server in Che as a sidecar container
  • Explore different alternatives: write a Theia browser extension to achieve that rather than a VSCode extension.

This is a complete rewrite of what had been done previously in Che6 and GWT editor

Possible mentors: Sun Tan or ping me in mattermost

Eclipse Vert.x

For any questions, check out the Gitter channel or the Vert.x Mailing list.

Service Proxy refactoring & Protobuf support

This project consists in refactoring the code generation logic inside vertx-service-proxy module and implement the Protobuf encoding for event bus services.

For more informations please visit our wiki page about it: GSoC project proposal: Service Proxy refactoring & protobuf support

The project will be an opportunity for you to learn how to do code generation in Java and how to interact with Protobuf.

Skills required: Java

Possible Mentor: Francesco Guardiani & Paulo Lopes

Back to the top