-
Notifications
You must be signed in to change notification settings - Fork 25.6k
Description
Forwards compatibility was added to our JDBC driver starting in version 7.7.0 (see #56223). The compatibility guarantee being that for any given version of the driver, it should support (mostly) communication for future versions of Elasticsearch of the same major version. For example, version 7.7.0 of the driver should be able to talk to Elasticearch nodes of version 7.7.1, 7.8.0, 7.8.1, 7.9.0 and so on...
Currently, there is no automated testing in place to ensure we maintain forwards compatibility. It's also not completely clear where, or how these tests should run. Currently, the build only supports backwards compatibility. That is, testing branch code against assets or artifacts from earlier versions or branches. Building or resolving artifacts to test against from future branches currently isn't supported, since, for example, the 7.x branch has no knowledge of the code in master.
We'll need to sort out a few things here, such as which direction we test in. Do we do backwards testing, where in which future branches grab the older JDBC drivers and run the tests, or forwards testing, where older branches grab the new Elasticsearch distribution and run the tests? Much of this is implementation detail, but it has some semantic impact, as with the former method, a failure in a given branch generally points to an incompatible change made in a different branch (but not necessarily). Going the latter route would require more effort, since we'd need to add support to build unreleased artifacts from future branches, which we currently don't do.
cc @matriv