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 MOPV049: Standardizing a Python Development Environment for Large Controls Systems

@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.}},
}