|
TransitionPlan
Transition plan from ATF to Kyua.
Phase-Support IntroductionOne of the major goals of the Kyua project is to replace the Automated Testing Framework (ATF) with a more modular and robust implementation. This is a worthy goal, but a complete reimplementation of ATF involves a lot of work and, if there is no clear transition plan and if such transition does not happen incrementally, the rewrite will fail and will frustrate users. The purpose of this document is to describe how the implementation will shift from ATF to Kyua and how users should see these changes. Tentative scheduleDeveloping Kyua from the ground up is a huge engineering effort. The following table provides a list of independent targets and the tentative schedule for their readiness; the entries are sorted by the planned release date:
As mentioned, these components are independent and each will replace a small part of ATF. The components not touched by a component will continue to be redistributed and branded as ATF, so you can be confident in relying on them. When the replacement is ready for release, the code in ATF of the replaced components will not disappear overnight. You should join the kyua-discuss mailing list to keep informed about the development process of Kyua and to get information about the transition procedure when the new releases happen. Transition planThe key idea of the transition is to replace the components in ATF one at a time. All the components rewritten in Kyua should slowly vanish from the ATF codebase. Kyua and ATF will be installable side by side and Kyua will remain compatible with ATF thorough the development process of Kyua. Incompatibilities will be introduced later once the transition has happened. Trimming down atfKyua will depend on ATF until atf-c++ is replaced by kyua-c++. Until that happens, Kyua will have a quite heavy dependency (no generally-available packages, hard to install from source) that will scare users away. In order to mitigate this problem, the ATF distribution will be trimmed down as its components are rewritten under Kyua. This will reduce the size of the legacy code (simplifying portability and building in other systems) and will also help in "forcing" users to migrate to the new tools. Such removal of legacy code will not happen right away though to prevent breakage in user procedures. See the next sections for details. Lastly, when a replacement for an ATF component in Kyua is in the works, the ATF version will enter maintenance mode. This means that:
Replacing the command-line toolsThe atf-run and atf-report pipeline is the part of ATF that receives most complaints from users. These complaints are generally in the form of usability annoyances, but are also feature requests that are very hard to implement with the current design of ATF. Therefore, the rewrite in Kyua targets these at first:
Replacing the C libraryThis is what BSD developers care about, so rewriting this binding should be a high priority.
Replacing the C++ library
Replacing the shell library
End of ATFOnce atf is empty, we can consider Kyua a success. | |||||||||||||||