-
Notifications
You must be signed in to change notification settings - Fork 912
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Discuss] FTR test migration #3728
Comments
The functional test repo is responsible for release testing (include OSD and Plugins) not used for testing for development. The repo name is confusion. One approach is OSD could build its own functional test but reuse common test infrastructure and test library. |
I think ideally that is the approach here since this takes leverage of a lot of great things. Another benefit is having only super generic testing for the core repo side in that repo for release testing that we know we can't test in our repo since the availability of plugins. |
@seraphjiang yeah i think i wasnt clear about the release test. I'll update the proposal to mention that. This only changes the location of the tests that arent specific to releases. The Functional test repo will keep the test scripts specific to releases but other specific tests can be moved out. Additionally, the release process can also reuse existing test scripts from the repos using this process using a pointer that points to tests in the remote repositories. This can harden the release process beyond just the simple release scripts that we run today. See attached diagram above |
Adding more to OSD repo make it big monolith repository. opensearch project doesn't go that approach. E.g. not all plugin are in OSD repo. Oui is separate module. Build has its own repo. Recent there is new opensearch-benchmark repo focus on benchmark test. We could still add cypress test in OSD repo. In the meantime we should consider move common test module into separate test lib/infra repo so other repo could reuse. |
The problem with a common benchmark repo is that we again run into the chicken and egg problem. When we update one feature that breaks a test, we have to update the test in another place. Just to reiterate, only the test scripts specific to OSD will stay in OSD, but the rest of the test architecture will stay in place. Even if the fixtures need to be updated, they will happen in the functional test repo for now :) Also another added benefit is we automatically have the right tests in the right release branches. Right now we have to manually make sure that tests for a 1.x or 2.x branch are correctly backported to the appropriate branch on both repos. This takes away that pain too. |
Note: We are actively working on parallelizing OSD integration tests using FT repo and its tracked here opensearch-project/opensearch-build#2144. FYI...We are very very close to completion and any change to the existing setup would require some heads up for us to incorporate the finalized design. |
@bbarani Thanks for the headsup! Do you have a timeline for when that will be completed? Also i dont think that the design for the parallelization will change significantly for this. In fact this might actually make the job of moving the tests easier since the tests are already isolated. The main change here would be that we need to allow the |
Background:
The current system we are utilizing separates the tests and test infrastructure (Functiona test repository) from the main repository where our application code resides (OpenSearch Dashboards). This was done to consolidate the test architecture in a single place so that Dashboards and the other plugin repositories can share the benifits of an uptodate test library for all repositories. Unfortunately this has the unfortunate downside of the chicken and egg problem where tests and code changes canot happen at the same time since one will have to come in before the other breaking the others CI test.
Proposal
The proposal is to migrate to a new system in which the tests and code are colocated, while maintaining a separate test infrastructure. By implementing this change, we can ensure that our tests and code remain in sync and up to date, while also allowing the test infrastructure to be shared across multiple repositories.
Benefits:
Risks and Tradeoffs:
Implementation Details:
To achieve the proposed migration, the following changes are necessary:
On OSD:
On Functional test repo:
I'm open to any and all suggestions, so please let me know what you think in the comments below.
The text was updated successfully, but these errors were encountered: