Hello all,
Following the discussion about the integration of the RDF extension
(
https://github.com/OpenRefine/OpenRefine/issues/4518), I have been
thinking about how we can better support extension developers.
The first low hanging fruit is to upload our Maven artifacts to Maven
Central so that extension developers can have a simple build system. We
are already doing this for snapshot releases, we just need to add it to
the normal release process (and do it retrospectively for 3.5, maybe).
Unless anyone has a problem with this, I would do this soon.
Second, I would propose that we avoid any large-scale upgrades in the
3.x release series from now on, keeping it stable for extensions. By
large-scale upgrade I mean things like the migration to Jackson,
migration to the Wikimedia i18n plugin or jQuery updates. Those upgrades
can be done in 4.x instead. Migrations in 3.x would still be allowed to
fix serious vulnerabilities (log4shell) or address similar major issues.
For instance, we currently have a PR open which migrates to jQuery 3.6.0
(
https://github.com/OpenRefine/OpenRefine/pull/3087). This is something
that will require extensions to adapt. Although they are helped in this
process by the warnings that should be emitted when using the extension
with OpenRefine 3.5, this can still be a big piece of work, especially
without a good test suite. Therefore I propose that we do this upgrade
in 4.x only.
More generally, I am keen to think about a better extension model for
4.0. I am trying to find out good examples of extension architectures
for the web frontend, for the backend, and how the two can be tied
together so that users can install an extension once (patching the
frontend and backend at the same time). If you have any suggestions of
examples to look at, I would be very interested to know.
Cheers,
Antonin