diff --git a/DEVELOPER_GUIDE.md b/DEVELOPER_GUIDE.md index 0ce29d811..1f7fc3271 100644 --- a/DEVELOPER_GUIDE.md +++ b/DEVELOPER_GUIDE.md @@ -11,6 +11,8 @@ - [Run Single-node Cluster Locally](#run-single-node-cluster-locally) - [Run Multi-node Cluster Locally](#run-multi-node-cluster-locally) - [Debugging](#debugging) + - [Backwards Compatibility Testing](#backwards-compatibility-testing) + - [Adding new tests](#adding-new-tests) - [Supported configurations](#supported-configurations) - [Submitting Changes](#submitting-changes) @@ -184,6 +186,25 @@ Additionally, it is possible to attach one debugger to the cluster JVM and anoth ./gradlew :integTest -Dtest.debug=1 -Dcluster.debug=1 ``` +## Backwards Compatibility Testing + +The purpose of Backwards Compatibility Testing and different types of BWC tests are explained [here](https://github.com/opensearch-project/opensearch-plugins/blob/main/TESTING.md#backwards-compatibility-testing) + +Use these commands to run BWC tests for k-NN: +1. Rolling upgrade tests: `./gradlew :qa:rolling-upgrade:testRollingUpgrade` +2. Full restart upgrade tests: `./gradlew :qa:restart-upgrade:testAgainstNewCluster` +3. `./gradlew :qa:bwcTestSuite` is used to run all the above bwc tests together. + +Use this command to run BWC tests for a given Backwards Compatibility Version: +``` +./gradlew :qa:bwcTestSuite -Dbwc.version=2.9.0 +``` +Here, we are testing BWC Tests with BWC version of plugin as 2.9.0. + +### Adding new tests + +Before adding any new tests to Backward Compatibility Tests, we should be aware that the tests in BWC are not independent. While creating an index, a test cannot use the same index name if it is already used in other tests. + ### Supported configurations By default, neural-search plugin supports `lucene` k-NN engine for local runs. Below is the sample request for creating of new index using this engine: