Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "Google Summer of Code 2023 Ideas"
(→Topic 1: Improve JKube user experience) |
(Merge edit by Alfonso.delavega.unican.es) |
||
Line 97: | Line 97: | ||
'''Rating''' medium | '''Rating''' medium | ||
+ | |||
+ | === Eclipse Epsilon Kernel for Jupyter Notebooks === | ||
+ | |||
+ | '''Description''' | ||
+ | [https://www.eclipse.org/epsilon/ Eclipse Epsilon] is a family of Java-based scripting languages for automating common model-based software engineering tasks, such as code generation, model-to-model transformation and model validation. This project would consist in the implementation of a kernel to allow executing these languages in a [https://jupyter.org/ Jupyter] Notebook. Eclipse Epsilon already provides several features that might help during this project: (1) Epsilon programs can be executed from Java code or vía Ant, Maven or Gradle; (2) textual syntaxes for models and metamodels (Flexmi and Eclipse Emfatic respectively) that fit well in the cell-based workflow of Jupyter Notebooks; (3) a [https://www.eclipse.org/epsilon/playground/ browser-based playground] for fiddling with Epsilon’s languages; and (4) examples of how to work with Epsilon in different [https://www.eclipse.org/epsilon/doc/articles/#development-environments development environments]. | ||
+ | |||
+ | '''Expected outcomes''' | ||
+ | A baseline could be implementing a Jupyter kernel that allows executing [https://www.eclipse.org/epsilon/doc/eol/ EOL (Epsilon Object Language)] snippets contained in notebook cells. The kernel should be able to maintain the state of the environment, which will be updated with each notebook cell execution. From there, other model-based tasks could be added incrementally, such as editing models and metamodels, supporting other Eclipse Epsilon languages, and visualising models, among others. | ||
+ | |||
+ | '''Skills required/preferred''' | ||
+ | Object-Oriented Programming skills required, preferably Java. Knowledge in how to use Jupyter Notebooks is preferred but not required. | ||
+ | |||
+ | '''Project size''' | ||
+ | 175/350 hours (scope can be adjusted e.g. by determining which of the Epsilon languages/tools is supported) | ||
+ | |||
+ | '''Possible mentors:''' | ||
+ | [mailto:alfonso.delavega@unican.es Alfonso de la Vega], [mailto:dimitris.kolovos@york.ac.uk Dimitris Kolovos] | ||
+ | |||
+ | '''Rating''' | ||
+ | Medium/Hard |
Revision as of 16:29, 3 February 2023
Please see our main Google Summer of Code page for participation information.
This year, projects should take ~175 hours or ~350 hours for GSoC contributors to complete.
Each project on the Ideas list should include:
- a project title/description
- more detailed description of the project (2-5 sentences)
- expected outcomes
- skills required/preferred
- possible mentors
- expected size of project (175 or 350 hour).
- And if possible, an easy, medium or hard rating of each project.
Contents
Project ideas
Example Project idea
Description of the Example Project idea with links to more information, bugs, and other useful content. This could include a list of specific objectives
Expected outcomes list of the results expected to be achieved after completing of the project.
Skills required/preferred list of skill set required to be able to complete the project in the proposed time.
Project size 175/350 hours
Possible mentors: Somebody Mentor
Rating Easy, medium or hard rating of each project.
Eclipse 4diac™ (Domain-specific modelling environment)
Topic 1: Testing software developed in a graphical DSL
Description The Eclipse 4diac project provides an open source infrastructure for distributed Industrial Process Measurement and Control Systems (IPMCS) based on the IEC 61499 standard. This project will add infrastructure for domain experts to test software components (so-called Function Blocks) based on behavior models. Currently, the tool environment has limited tool support for (semi-)automated testing of Function Blocks. A framework for the test execution and a basic user interface are available, partly developed by earlier GSoC projects.
Expected outcomes: A user interface for generating tests for FB Networks and executing them must be available (including documentation). It should be furthermore possible to record such scenarios, which can be later used as test cases.
Skills required/preferred: Programming skills required, preferably one or more of the following technologies: Java, SWT, Eclipse, RCP
Project size: 175 or 350 hours (scope can be adjusted, e.g., by including a graphical user interface)
Possible mentors: Bianca Wiesmayr
Rating: Medium
Topic 2: Refactoring graphical software automatically
Description The Eclipse 4diac project provides an open source infrastructure for distributed Industrial Process Measurement and Control Systems (IPMCS) based on the IEC 61499 standard. This project will add automatic refactoring operations to improve the software developed in the graphical modeling language.
Expected outcomes: A concept for fixing problems in the software has to be developed and implemented. The results should be presented to the user.
Skills required/preferred: Programming skills required, preferably one or more of the following technologies: Java, Eclipse, RCP
Project size: 175 or 350 hours (scope can be adjusted, e.g., by including a graphical user interface)
Possible mentors: Bianca Wiesmayr
Rating: Medium
Eclipse Vert.x client for Apache Pinot
Description Vert.x is a toolkit to build reactive applications on the Java virtual machine. It provides asynchronous and non-blocking clients for different types of databases. Apache Pinot is a realtime distributed datastore for analytics workloads. The project consists in creating a Vert.x client for Pinot, based on the Apache Pinot Java Client.
Expected outcomes At the end of the project, we should be able to execute Pinot queries using Vert.x supported APIs (Future, RxJava, or SmallRye Mutiny). The client transport shall be implemented with the Vert.x Web Client. It is expected that the student creates a sample application and a blog post to present it.
Skills required/preferred Students should have a good understanding of the Java programming language and be able to learn and experiment with the Apache Pinot Java Client.
Project size 175/350 hours (scope can be adjusted to reflect the desired length)
Possible mentors: Thomas Segismont
Rating Medium/Hard
Eclipse JKube™
Topic 1: Improve JKube user experience
Description Eclipse JKube™ is a collection of plugins and libraries that are used for building container images using Docker, JIB or S2I build strategies. Eclipse JKube generates and deploys Kubernetes/OpenShift manifests at compile time too.
This project focuses on providing compile-time plugins and libraries for the Java ecosystem for:
- Building container images
- Creating Kubernetes and OpenShift resource descriptors
- Deploying resources descriptors
The goal of this proposal is to improve the user experience of JKube for a better adoption. Basically to work on the issues with the label ‘UX’ https://github.com/eclipse/jkube/labels/UX . Students could also propose issues that would help JKube to be well/better adopted.
Expected outcomes are of course contributions in terms of code. But it could also involve the website or the documentation or videos.
Skills required/preferred.
- Basic knowledge of Kubernetes
- Good knowledge of Java
Project size 350
Possible mentors: Sun Tan (CET/CEST)
Rating medium
Eclipse Epsilon Kernel for Jupyter Notebooks
Description Eclipse Epsilon is a family of Java-based scripting languages for automating common model-based software engineering tasks, such as code generation, model-to-model transformation and model validation. This project would consist in the implementation of a kernel to allow executing these languages in a Jupyter Notebook. Eclipse Epsilon already provides several features that might help during this project: (1) Epsilon programs can be executed from Java code or vía Ant, Maven or Gradle; (2) textual syntaxes for models and metamodels (Flexmi and Eclipse Emfatic respectively) that fit well in the cell-based workflow of Jupyter Notebooks; (3) a browser-based playground for fiddling with Epsilon’s languages; and (4) examples of how to work with Epsilon in different development environments.
Expected outcomes A baseline could be implementing a Jupyter kernel that allows executing EOL (Epsilon Object Language) snippets contained in notebook cells. The kernel should be able to maintain the state of the environment, which will be updated with each notebook cell execution. From there, other model-based tasks could be added incrementally, such as editing models and metamodels, supporting other Eclipse Epsilon languages, and visualising models, among others.
Skills required/preferred Object-Oriented Programming skills required, preferably Java. Knowledge in how to use Jupyter Notebooks is preferred but not required.
Project size 175/350 hours (scope can be adjusted e.g. by determining which of the Epsilon languages/tools is supported)
Possible mentors: Alfonso de la Vega, Dimitris Kolovos
Rating Medium/Hard