Eclipse Hawk™ 2.0.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.

Project
Release

2.0.0

Description

This is the first release of Hawk as an Eclipse project. As such, the license has been changed to EPL2.0 with GPLv3 as secondary license.

The biggest feature in this release is the addition of "time-aware querying", based on the new Greycat temporal graph database backend, which allows for indexing the history of your models and running queries that traverse their history.

Other notable additions include the addition of a JGit-based component to index Git repositories, and the improvement of large parts of the GUI (e.g. the creation of indices, the ability to cancel running queries and the configuration of the plugins enabled by default when creating an index). There are new components for indexing UML models as well.

Internally, there have been many improvements in terms of performance, quality of logging and diagnostics, and bugfixes. Potentially conflicting background tasks in Hawk are now serialised into a common queue, avoiding many potential issues that could appear during production. Due to these internal changes, you will need to recreate and reindex your models with the latest version of Hawk.

Other minor changes:

  • Hawk is now targeting Eclipse 2020-03 or newer.
  • IFC components are GPLv3-only, and have been moved to a separate Github-based project (not affiliated with Eclipse).
  • Upgraded the dependency on Epsilon to the 2.0.0 stable release.
  • Upgraded Apache Artemis to 2.6.4.
  • Upgraded OrientDB to 2.2.30 and fixed several defects in the OrientDB backend.
  • Improved Thrift API with the ability to report server execution times and encode nested lists.
  • Hawk's EOL dialect now supports "object.eContainers" (which returns a collection with 0-1 elements: this is useful for closures).
  • Introduced a new "contextful" CEOLQueryEngine getAllOf(...) variant, which supports a variety of custom traversals appropriate for different situations.
API Certification

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

Architectural Issues

This release continues with the usual approach followed by Hawk, which is to have a thin "core" acting as glue, and have most of the specific component types implemented as plugins (e.g. backends, connectors, updaters and query engines). The only major issue is the Eclipse-based GUI, which is largely monolithic - it is intended to be broken down in future releases.

There is one feature (timeline annotation) which was developed in a separate branch of the project, but as it was developed in short time for a research paper it has been delayed for the next release.

Security Issues

We have not had any security issues identified in the project.

Non-Code Aspects

The project has now a dedicated website (http://eclipse.org/hawk), which includes user and developer documentation. The documentation is updated together with any new features added to Hawk. This website now replaces the old Github-based wiki.

Conforms To UI/UX Guidelines
Yes (document review in detail)
End of Life
  • IFC support has been removed from the Hawk core, and has been moved to an external repository, due to licensing issues.
Communities
  • The user community is growing - we have received requests for support from multiple companies, and there is interest in the research community (e.g. the MODELS conferences) in the capabilities for time-aware querying.
  • In terms of developers, we have received contributions from Horacio Hoyos, another Eclipse committer who provided a first version of the new JGit-based support for Git repositories.