JACoW is a publisher in Geneva, Switzerland that publishes the proceedings of accelerator conferences held around the world by an international collaboration of editors.
TY - CONF AU - Joubert, A.F. AU - Ockards, M.T. AU - Wai, S. ED - Furukawa, Kazuro ED - Yan, Yingbing ED - Leng, Yongbin ED - Chen, Zhichu ED - Schaa, Volker R.W. TI - Porting Control System Software From Python 2 to 3 - Challenges and Lessons J2 - Proc. of ICALEPCS2021, Shanghai, China, 14-22 October 2021 CY - Shanghai, China T2 - International Conference on Accelerator and Large Experimental Physics Control Systems T3 - 18 LA - english AB - Obsolescence is one of the challenges facing all long-term projects. It not only affects hardware platforms, but also software. Python 2.x reached official End Of Life status on 1 January 2020. In this paper we review our efforts to port to the replacement, Python 3.x. While the two versions are very similar, there are important differences which can lead to incompatibility or changes in behaviour. We discuss our motivation and strategy for porting our code base of approximately 200 k source lines of code over 20 Python packages. This includes aspects such as internal and external dependencies, legacy and proprietary software that cannot be easily ported, testing and verification, and why we selected a phased approach rather than "big bang". We also report on the challenges and lessons learnt - notably why good test coverage is so important for software maintenance. Our application is the 64-antenna MeerKAT radio telescope in South Africa - a precursor to the Square Kilometre Array PB - JACoW Publishing CP - Geneva, Switzerland SP - 217 EP - 221 KW - software KW - controls KW - operation KW - factory KW - MMI DA - 2022/03 PY - 2022 SN - 2226-0358 SN - 978-3-95450-221-9 DO - doi:10.18429/JACoW-ICALEPCS2021-MOPV036 UR - https://jacow.org/icalepcs2021/papers/mopv036.pdf ER -