WL#10799: integrate MySQL Router into MySQL Server repository
Affects: Server-8.0 — Status: Complete — Priority: Medium
Motivation ========== As part of the MySQL InnoDB Cluster the MySQL Router becomes a integral part of the MySQL Server environment. To simplify * code reuse * testing * detect incompatible changes early * ... the router should be close to the MySQL Server in source. On the other side, the integration shouldn't result in lower build times in continuous integration systems. Goals ===== Integration to "all" -------------------- 1. "make all" should include MySQL Router 2. running the test-suite via "make" should run the MySQL Router tests too Independent builds and packaging -------------------------------- 1. there must be a way to build MySQL Router without building the while MySQL Server to keep build-times in CIs low. 2. the router packages should be able to be built without building the server packages to allow independent testing in CIs.
Merge Criteria -------------- Before the router's 'master' tree can be push into the server tree it: C1 : MUST have code coverage above 80% C2 : MUST build and pass tests with MySQL Server 8.0 C3 : MUST build clean with Sun Studio C4 : MUST align the use of 3rd party dependencies with the server (protobuf, gmock, gtest, ...) C5 : MUST have zero unapproved bugs C6 : MUST got security review C7 : MUST got QA sign off C8 : MUST be `-Werror`, `ASAN`, `UBSAN`, `valgrind` clean C9 : MUST got Cmake files reviewed C10 : MUST build packages (tar, deb, rpm, msi) C11 : MUST be integrated with the windows installer. Process Requirements -------------------- P1 : MUST unify the code-style with the google coding style guide-lines. P2 : MUST have all major refactoring branches merged Non-Goals --------- N1 : packaging and distribution of the Router SHALL NOT change.
Directory Layout ================ The router source will be located in: router/ bundled 3rd party dependencies ============================== Router uses: * protobuf 3.0.0 * rapidjson These MUST be removed and the server's ext/ folder must be used instead. Dependent Work ============== Source Tree Integration Packaging
Copyright (c) 2000, 2019, Oracle Corporation and/or its affiliates. All rights reserved.