JACoW logo

Journals of Accelerator Conferences Website (JACoW)

JACoW is a publisher in Geneva, Switzerland that publishes the proceedings of accelerator conferences held around the world by an international collaboration of editors.


BiBTeX citation export for MOPV036: Porting Control System Software From Python 2 to 3 - Challenges and Lessons

@inproceedings{joubert:icalepcs2021-mopv036,
  author       = {A.F. Joubert and M.T. Ockards and S. Wai},
  title        = {{Porting Control System Software From Python 2 to 3 - Challenges and Lessons}},
  booktitle    = {Proc. ICALEPCS'21},
  pages        = {217--221},
  eid          = {MOPV036},
  language     = {english},
  keywords     = {software, controls, operation, factory, MMI},
  venue        = {Shanghai, China},
  series       = {International Conference on Accelerator and Large Experimental Physics Control Systems},
  number       = {18},
  publisher    = {JACoW Publishing, Geneva, Switzerland},
  month        = {03},
  year         = {2022},
  issn         = {2226-0358},
  isbn         = {978-3-95450-221-9},
  doi          = {10.18429/JACoW-ICALEPCS2021-MOPV036},
  url          = {https://jacow.org/icalepcs2021/papers/mopv036.pdf},
  abstract     = {{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}},
}