Scheduling breaking changes we have on our radar

I have been thinking about this more and I think the Maven re-modularization can be introduced without breaking anything. We can move classes to different Maven modules without changing their package name. That means basically just changing the directory structure. Arguably it's cleaner to have the Maven module be reflected in the package name, but it's not necessary as a first step. Because the main module we currently have would depend on the new modules introduced, any existing Maven project (such as an extension developed outside of our code base) that currently depends on this main artifact would still pull in the dependencies transitively.

And it would already buy us a lot: the ability to re-use testing utilities (deleting the re-implementation we have in the Wikibase extension for instance) and avoiding dependency creep between different parts of the code base. So I am planning to submit a PR against master for that.

Does this imply/bundle changes to the evaluation infrastructure which are commonly used by extensions? (Row/RecordVisitor, Operation, etc)

Yes absolutely, it includes a change of interface for operations, since the way they access and modify project data needs to change.

I think there was a grid cell renderer extension point introduced recently. Is that covered by the two items above?

I didn't think about including it because I don't see it as a breaking change (and it's released already). Or do you foresee changes to it?

Incompatible evaluation results for GREL and/or GREL functions - are we committed to bug for bug compatibility? When / how are we allowed to change results of evaluations?

That's a topic we've been battling with for a long timeā€¦ I wonder if it would make sense to version GREL (or other expression languages) independently of OpenRefine? Not sure what it would look like.
Perhaps there is a way to take inspiration from spreadsheet tools there. Does LibreOffice or Excel ever change the implementation of the functions that are available in their formula language?

Here are some more topics that I forgot:

  • Removal of column groups (which is part of my big stack of changes)
  • Changing the definition of record boundaries (which I need to bring up in a different thread)