Summary
The functional test suite currently only tests against MySQL 8.4. Orchestrator is used in production against MySQL 5.7 through 9.x, and each version has differences in replication commands, GTID behavior, and system table schemas that can cause regressions.
Proposal
- Parameterize the functional test Docker Compose to accept a
MYSQL_IMAGE variable
- Add a GitHub Actions matrix strategy to run functional tests against:
mysql:5.7, mysql:8.0, mysql:8.4, mysql:9.0, mysql:9.2, mysql:9.5, mysql:9.6
- Handle syntax differences (e.g.,
CHANGE MASTER TO vs CHANGE REPLICATION SOURCE TO) in setup scripts
- Ensure init SQL scripts are compatible across versions
Acceptance Criteria
Summary
The functional test suite currently only tests against MySQL 8.4. Orchestrator is used in production against MySQL 5.7 through 9.x, and each version has differences in replication commands, GTID behavior, and system table schemas that can cause regressions.
Proposal
MYSQL_IMAGEvariablemysql:5.7,mysql:8.0,mysql:8.4,mysql:9.0,mysql:9.2,mysql:9.5,mysql:9.6CHANGE MASTER TOvsCHANGE REPLICATION SOURCE TO) in setup scriptsAcceptance Criteria