[
https://issues.apache.org/jira/browse/IGNITE-25044?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Iurii Gerzhedovich updated IGNITE-25044:
----------------------------------------
Description:
We need to create a test framework to test the compatibility of node
configuration between old versions of AI3 and the current one.
Prepare a set of valid configurations for every version and try to run a node
with the configurations. This seems like hard and time-consuming work. Instead,
we can create configuration "snapshots" for each version of AI3 and validate
those snapshots regarding the current one.
What should include such a snapshot:
* Full names of properties.
* Types of properties.
* Declarative validation if it present (see
org.apache.ignite.configuration.validation package).
During the test, we need to make a smart comparison between the old snapshot
(prepared and saved in the project) and the current one (generated on the fly),
taking into account removed and renamed properties.
I order to guarantee that we will have a configuration snapshot for every new
version of AI3 need to create a test that compares the current snapshot version
with the configuration generated on the fly. In case this test fails, a
developer should update the snapshot for the current unreleased version.
Obviously, these tests will be failing right now. We will have to disable them
and fix all the incompatibilities. This must be done before Apache Ignite 3.1
release.
was:
We need a couple of tests:
* Get a valid node configuration for Apache Ignite 3.0, try to run current
version of code on it.
* Same process, but instead of running a node on an old configuration, we
instead initialize the cluster with "obsolete" script. This scenario is not
really fail, but emulating Ignite version upgrade is problematic without having
a proper compatibility framework.
The "old" configurations should be retrieved from the real 3.0 installation, by
calling corresponding REST/CLI commands.
We should make sure that:
* Every named list configuration is populated with some values.
* Every instance of polymorphic configurations is tested. This is actually not
possible to achieve withing a single configuration file, which means that we
will have multiple tests for each scenario (probably a parameterized test).
Obviously, these tests will be failing right now. We will have to disable them
and fix all the incompatibilities. This must be done before Apache Ignite 3.1
release.
> Test configuration compatibility with Apache Ignite 3.0
> -------------------------------------------------------
>
> Key: IGNITE-25044
> URL: https://issues.apache.org/jira/browse/IGNITE-25044
> Project: Ignite
> Issue Type: Improvement
> Reporter: Ivan Bessonov
> Priority: Major
> Labels: ignite-3
>
> We need to create a test framework to test the compatibility of node
> configuration between old versions of AI3 and the current one.
> Prepare a set of valid configurations for every version and try to run a node
> with the configurations. This seems like hard and time-consuming work.
> Instead, we can create configuration "snapshots" for each version of AI3 and
> validate those snapshots regarding the current one.
> What should include such a snapshot:
> * Full names of properties.
> * Types of properties.
> * Declarative validation if it present (see
> org.apache.ignite.configuration.validation package).
> During the test, we need to make a smart comparison between the old snapshot
> (prepared and saved in the project) and the current one (generated on the
> fly), taking into account removed and renamed properties.
> I order to guarantee that we will have a configuration snapshot for every new
> version of AI3 need to create a test that compares the current snapshot
> version with the configuration generated on the fly. In case this test fails,
> a developer should update the snapshot for the current unreleased version.
> Obviously, these tests will be failing right now. We will have to disable
> them and fix all the incompatibilities. This must be done before Apache
> Ignite 3.1 release.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)