Author: Ockards, M.T.
Paper Title Page
MOPV036 Porting Control System Software From Python 2 to 3 - Challenges and Lessons 217
 
  • A.F. Joubert, M.T. Ockards, S. Wai
    SARAO, Cape Town, South Africa
 
  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  
poster icon Poster MOPV036 [2.277 MB]  
DOI • reference for this paper ※ https://doi.org/10.18429/JACoW-ICALEPCS2021-MOPV036  
About • Received ※ 11 October 2021       Accepted ※ 04 February 2022       Issue date ※ 03 March 2022  
Cite • reference for this paper using ※ BibTeX, ※ LaTeX, ※ Text/Word, ※ RIS, ※ EndNote (xml)