JACoW is a publisher in Geneva, Switzerland that publishes the proceedings of accelerator conferences held around the world by an international collaboration of editors.
@inproceedings{clark:icalepcs2021-mopv049, author = {S.L. Clark and P.S. Dyer and S. Nemesure}, title = {{Standardizing a Python Development Environment for Large Controls Systems}}, booktitle = {Proc. ICALEPCS'21}, pages = {277--280}, eid = {MOPV049}, language = {english}, keywords = {controls, network, GUI, software, interface}, 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-MOPV049}, url = {https://jacow.org/icalepcs2021/papers/mopv049.pdf}, abstract = {{Python provides broad design freedom to programmers and a low barrier of entry for new software developers. These aspects have proven that unless standardized, a Python codebase will tend to diverge from a common style and architecture, becoming unmaintainable across the scope of a large controls system. Mitigating these effects requires a set of tools, standards, and procedures developed to assert boundaries on certain aspects of Python development – namely project organization, version management, and deployment procedures. Common tools like Git, GitLab, and virtual environments form a basis for development, with in-house utilities presenting their capabilities in a clear, developer-focused way. This paper describes the necessary constraints needed for development and deployment of large-scale Python applications, the function of the tools which comprise the development environment, and how these tools are leveraged to create simple and effective procedures to guide development.}}, }