OrientDB first set of changes done
2025-01-13

As mentioned in the previous post, there was some work in progress to remove some legacy APIs and implementation from the OrientDB code, this work is key for a future major release allowing to work on a more recent, small and stable codebase.

Most of the work consisted of migrate some thousand of tests to the new APIs, and removing few tests that do not make sense with the current API, this work as been going on for last few years and resulted as well in the discovery of some compatibility and implementation issues, that have made the work harder and longer, but resulted in a quite sizeable set of issues to be resolved, these fixes have been also ported to 3.2.x actually a big part of the last 10 patch releases in 3.2.x are result of this work.

Now all this work is done and the legacy query APIs based on OCommandSQL, OAsyncQuery, OSyncQuery, OCommandScript, have been removed from the code, together with the relative implementation.

In terms of code statistics, the removing of the legacy query engine resulted in this set of changes:

291 files changed, 888 insertions(+), 37760 deletions(-)

This is quite big delete of code of the majority of it is actually "production" code, most of the test code is actually converted to the new implementation to guarantee compatibility.

Also in terms of removing of legacy APIs one implementation supported in 3.2.x was thinkerpop 2.x that then was renamed to gremlin in the version 3.x, the tinkerpop APIs has been deprecated since long time so was now time to remove it from the main repository, together with this work was the promotion of the gremlin driver to the main repository that will be supported for foreseen future.

The code statistics of removing of the thinkerpop 2.x code are:

177 files changed, 57748 deletions(-)

The main repository did see some additional code imported, but this was anyway maintained before in different repositories, so do not have much of an impact on the overall statistics

There are still some legacy APIs to be removed in the code, one over all is the historical class ODatabaseDocumentTx that has been there since 0.x, this will be for sure removed before the release of the next major.

Checking the general work on progress of the original status post what we get now is:

This is already a bit of progress, making the next major release close, as well not all of this will probably be implemented in the next major, some of these points can be shipped also in a minor, so a major can be done earlier.

There have been more work done in the last few months that is not listed here, and probably will be part of a next work in progress update, but for now this is all.