Eclipse Graphiti 0.19.0 Release Review

Type
Release
State
Successful
End Date of the Review Period

Reviews run for a minimum of one week. The outcome of the review is decided on this date. This is the last day to make comments or ask questions about this review.

Release

0.19.0

Description

The main topics for 0.19.0 release of Graphiti is aligning with the release train.

Graphiti 0.19.0 is part of the 2022.09 Eclipse release train since M1. Eclipse will contain the Graphiti framework, examples, tools and  tests. Graphiti has joined the release train for the first time with Eclipse Indigo.

API Certification

The project leadership certifies that the APIs in this release are "Eclipse Quality".

Architectural Issues

Graphiti’s architecture is solid and basically unchanged since the basis of the framework was already productive within SAP SE for several years. There were no changes from architecture point of view in the 0.19.0 timeframe.

Some parts of the framework coding needing some rework (e.g. in the rendering area) which could not be addressed within this release and will be targeted for one of the next releases.

Graphiti will stay in the incubation mode. The reason for this is that there are too many open questions with respect to supporing e4 RCP applications and the GEF framework.

The currently used GEF 3.x rendering appears to work fine but has several shortcomings/issues with rendering, e.g. off-by-one-issues. Fixing them would mean to invest massive effort within the Graphiti framework.

GEF 4/5 appears to be a good alternative new rendering engines with much more future potential, but making Graphiti use that also requires huge effort first in investigating these alternatives and second in writing a completely new UI layer for one of the frameworks.

Unfortunatly, there is currently no capacity in the available development resources. Unless there is much more engagement in  framework development for Graphiti we can only stick to the current GEF 3.x based rendering engine and live with the limitations. The restart of development work on GEF 3.x might help in getting rid of at least some of the limitations as well.

Leaving incubation should happen only after the new rendering engine is in place or the shortcomings have been fixed otherwise, because that change will require massive API changes throughout the complete framework.

Security Issues

There are no known vulnerabilities within Graphiti.

Non-Code Aspects
  • User documentation is available as part of the Graphiti SDK/SDK+ installation from the update site
  • A large part of this documentation consists of a tutorial that introduces users step by step to the most common features of Graphiti
  • The tutorial and documentation have been updated to reflect the changes done within the framework
  • Further examples are part of the Graphiti tests and can be synced from Git
  • The project website is available at http://www.eclipse.org/graphiti
  • Graphiti can be downloaded via p2 update sites and as a zipped version of the site
  • Available features
    • Graphiti Feature (the framework)
    • Examples Feature (includes examples, doc plugin with eclipse help integration and javadoc)
    • Export Feature (diagram export to SVG)
    • Tools Feature (tools that can be used to create Graphiti-based editors)
    • SDK Feature (framework, examples, additionally includes sources to enable debugging)
    • SDK+ Feature (additionally includes optional parts, currently the SVG exporter)
  • Graphiti uses a Maven- and Jenkins-based build and test infrastructure.
  • The framework plugins are provided with dedicated test plugins checking their valid behavior
  • Unit and SWTBotTests are executed as a part of the Maven Build on the Graphiti JIPP at Eclipse Jenkins
  • https://ci.eclipse.org/graphiti/
  • Each new build is tested at least with Eclipse 2022-09.
  • Graphiti is part of the Release Train since Eclipse Indigo (M4).
Conforms To UI/UX Guidelines
Not verified
Usability Details
  • Tutorial supports the getting started process for new users
  • Good results in tool building can be achieved early
  • Short turnaround cycles support incremental development
  • Easy debugging enables fast problem solving (compared to frameworks based on code generation)
  • Test preferences allow user to enable additional means to identify and analyze issues besides debugging
End of Life

There are no deprecated or removed features within this release.

Standards
  • Execution Environment JavaSE 8
  • Supports Eclipse Platforms 2022-09 and 2021-06
  • Based on Draw2D/GEF 3.x and SWT, de-facto standards for graphics in Eclipse
  • Integrated with and based on EMF, de-facto standard for modeling in Eclipse
  • No native components, therefore there are no further requirements to the execution environment
Communities

Bugzilla

  • Bugs and enhancements are tracked using Bugzilla
  • User feedback and enhancement request received
  • Some contributions (bug fixes and enhancements) received

Communication channels

  • Newsgroup is used as communication channel
  • Detail questions, discussions and enhancement ideas start there
  • Developer mailing list

Eclipse projects using Graphiti

  • eTrice diagram editor
  • JPA Editor diagram editor
  • CDO/Dawn integrates with Graphiti
  • BPMN2 Modeler diagram editor
  • Other open source projects refering to Graphiti
  • Activity BPM Platform offers an Eclipse Designer built on Graphiti
  • The KIELER research project integrates their layouting algorithms with Graphiti
  • Spray supports a generative approach on top of Graphiti
This release is part of Eclipse IDE 2022-09