Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fade out Eclipse Platform support? #799

Open
spoenemann opened this issue Mar 9, 2022 · 15 comments
Open

Fade out Eclipse Platform support? #799

spoenemann opened this issue Mar 9, 2022 · 15 comments
Labels
discussion Further discussion required before implementation.

Comments

@spoenemann
Copy link
Member

Today I tried to set up the development environment for ELK on my new laptop. I started the installation via Oomph, but it did not work due to some inconsistency with Xtext versions. So I started cloning the repository myself, importing the projects into Eclipse and setting everything up, a very tedious process as you can imagine. This led me back to a thought that I've already had for some time:

Shall we fade out support for the Eclipse Platform?

I know it's a radical change with many ramifications. If we do it, of course there would be a period where we would still publish bugfix versions of the Eclipse plugins. But the ultimate goal would be to get to a core library that is built with plain Java + Gradle or Maven, with any IDE you like (Eclipse, IntelliJ, VS Code, etc.) Additional tools could still be built based on the core library.

To get an impression of what I'm talking about, please have a look at this proof of concept:
https://github.com/spoenemann/elk-core

To build it, simply clone it and run ./gradlew build. Use Buildship if you want to import it into Eclipse. A project setup like this would make it considerably easier for anyone to contribute to the project.

What do you think?

@spoenemann spoenemann added the discussion Further discussion required before implementation. label Mar 9, 2022
@spoenemann spoenemann changed the title Fade out Eclipse support? Fade out Eclipse Platform support? Mar 9, 2022
@uruuru
Copy link
Contributor

uruuru commented Mar 9, 2022

No major objections from my side. The last time I worked on ELK, I struggled with setting up the environment as well.

A project setup like this would make it considerably easier for anyone to contribute to the project.

I would even go further: it may be the only way to get people to contribute at all.

Some remarks though:

  • I felt working on and debugging an algorithm wasn't really possible without the visual support of the eclipse-based views.
  • There are several further algorithms and packages that I would expect to easily work without the eclipse platform than contained in your current example.
  • How would you solve the definition of layout options, i.e. core.meta?

@spoenemann
Copy link
Member Author

I would even go further: it may be the only way to get people to contribute at all.

I agree.

I felt working on and debugging an algorithm wasn't really possible without the visual support of the eclipse-based views.

We can keep some Eclipse-based tooling for testing and debugging. But those tools would be separate from the core modules and will not be published anywhere. And we can add other tooling that is independent from Eclipse, for example a command-line tool that reads an input graph and generates a png image. In many cases, that's already sufficient to debug certain issues.

There are several further algorithms and packages that I would expect to easily work without the eclipse platform than contained in your current example.

Yes, that was just an arbitrary selection as proof of concept.

How would you solve the definition of layout options, i.e. core.meta?

Option 1: Just use the Java API (what is currently generated by the metadata language).

Option 2: Define a JSON / YAML syntax for that content.

@spoenemann spoenemann pinned this issue Mar 10, 2022
@soerendomroes
Copy link
Contributor

I currently only use this ELK Setup together with the Keith Stream in our semantic setup to install everything we have into one Eclipse.

Option 1: Just use the Java API (what is currently generated by the metadata language).
Option 2: Define a JSON / YAML syntax for that content.

I support both options. Just yesterday I tried to install ELK into a development Eclipse for Lingua Franca and it was very annoying since the ELK SDK would not install.

I will talk to the group about it but I guess it would be the right decision to do this. I am currently working on the 0.8.0 release and plan to upgrade xtext and possibly java in 0.9.0, maybe it would be the right time to do this together with the 0.9.0 release (which is hopefully this year).

@soerendomroes
Copy link
Contributor

The group supports this idea. For which IDEs do we want to support debugging views/stuff? Eclipse, IntelliJ, VS Code?

@spoenemann
Copy link
Member Author

IDE-based tooling should probably stay in Eclipse Platform to avoid reimplementing stuff. But it would be great to add platform-independent (CLI-based) tooling that you can use anywhere.

A big question remains: How long shall we maintain the Eclipse plug-ins, e.g. for GMF integration? Who is still using the Eclipse extension points of ELK?

I have used ELK only through Maven dependencies in the last five years or so.

@soerendomroes
Copy link
Contributor

The extension points will be removed with the upcoming release #760

I guess the Eclipse-based views/preference pages/layout plugin creation wizard will still be provided via extension points. Also someone seems to want to use the graphiz.dot layouter, which specifies some extension points but I guess they are not in use. I know of no one that uses the layout connectors but I guess we will only see if we remove them.

We currently use core.service, which has Eclipse dependencies, to run two layout runs after each other for true interactive layout. If I remember correctly I proposed to remove the dependencies in #762 but I somehow never actually did it. Currently, I am unsure why not?

@pcdavid
Copy link

pcdavid commented Mar 11, 2022

Who is still using the Eclipse extension points of ELK?

Sirius does. For example here. I'm not that familiar with Sirius's ELK integration (@lredor is the expert on that part), so it's not clear to me what the changes proposed here would mean for our integration.
We also have org.eclipse.sirius.diagram.elk.ElkDiagramLayoutConnector which was based on org.eclipse.elk.conn.gmf.GmfDiagramLayoutConnector. I don't know if it is self-contained or if it would break if Eclipse/GMF-specific parts of ELK were removed.

@spoenemann
Copy link
Member Author

Are you using the UI provided by ELK, e.g. the Layout toolbar button and the Layout view?

@soerendomroes
Copy link
Contributor

@spoenemann I do occasionally.

@lredor
Copy link
Contributor

lredor commented Mar 14, 2022

Are you using the UI provided by ELK, e.g. the Layout toolbar button and the Layout view?

@spoenemann In Sirius, we use the Layout view but it is not used directly by the end-user. It is used to facilitate the customization of a Layout and to see the result of the layout options in the context of ELK without the Sirius "adaptations".
It allows, for example, to detect if the problem is on the ELK side (configuration problem, bug in ELK, ...) or on the Sirius side (in the ELK-Sirius bridge).

@lindhuber
Copy link
Contributor

Who is still using the Eclipse extension points of ELK?

The 4diac IDE uses the extension points and the layout connectors (but without any UI elements provided by ELK).
We've started using the connectors and extension points as a way of future-proofing, so removing them now would certainly have some disadvantages for us.

@spoenemann
Copy link
Member Author

A possible way forward could be to extract everything Eclipse related into a separate repository built with Tycho, and to build the core repository with plain Maven or Gradle. But this would require volunteers to maintain the Eclipse plug-ins and build. Is anyone interested in doing that?

@soerendomroes
Copy link
Contributor

We are one of the primary users of these plugins and could put them in the Kieler organization but currently, I don't have that much time. But I could find this time in July or August.

@soerendomroes
Copy link
Contributor

Maybe it is a better idea to just split the repository in the eclipse organization. This would have the advantage that ELK is not dependent on your infrastructure and that the location of the update site must not change.

@spoenemann
Copy link
Member Author

Yes, the code should stay at the Eclipse Foundation. You can request a new GitHub repository at the Help Desk:
https://gitlab.eclipse.org/eclipsefdn/helpdesk

I might be able to help with setting up the core repository. Questions we need to clarify first:

@uruuru uruuru unpinned this issue Sep 9, 2022
@uruuru uruuru pinned this issue Sep 9, 2022
@soerendomroes soerendomroes added this to the Release 0.10.0 milestone Dec 5, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
discussion Further discussion required before implementation.
Projects
None yet
Development

No branches or pull requests

6 participants