Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Contributing Guide

Thank you for contributing to this project. This repository is designed as infrastructure for scientific instrument control. Stability, clarity, and long-term maintainability take priority over rapid feature additions.

Before submitting a pull request, please review the engineering principles below.


Engineering Philosophy(Subject to Revision)

This project prioritizes:

The migration to PyTango represents a transition toward a stable, extensible control architecture suitable for laboratory deployment.


Core Principles(Elaborated)

1. Strong Typing Across Public Interfaces

Keywords: Reliability, Maintainability, Explicitness

Rationale: Typing improves reliability and refactoring safety. Distributed systems require strict clarity at communication boundaries.


2. Modular Device Architecture

Keywords: Extensibility, Isolation, Separation of Concerns

Rationale: Modularity enables adding new detectors without modifying core logic and prevents cascading failures.


3. Simplicity Over Cleverness

Keywords: Explainability, Debuggability, Predictability

Rationale: Scientific control systems must be explainable and auditable. Maintainability outweighs compactness.


4. Explicit Communication Contracts

Keywords: Determinism, Interoperability, Stability

Rationale: Clear contracts prevent integration drift and simplify external ecosystem integration.


5. Testing Requirements

Keywords: Regression Prevention, Confidence, Automation

Rationale: Hardware-facing systems require high confidence. Tests prevent regression and enable safe refactoring.


6. Minimal Core Dependencies

Keywords: Portability, Stability, Deployment Simplicity

Rationale: Minimal dependencies reduce installation complexity and improve portability across laboratory environments.


7. Clear Error Semantics

Keywords: Transparency, Diagnostics, Observability

Rationale: Instrument downtime is costly. Errors must be clear and traceable.


8. Deterministic Logging and State Reporting

Keywords: Traceability, Reproducibility

Rationale: Scientific reproducibility requires traceable execution history.


9. Documentation Standards

Keywords: Usability, Adoption

Rationale: Most users interact through notebooks. Examples serve as executable documentation.


10. Backward Compatibility

Keywords: Stability, Upgrade Path

Rationale: Device interfaces become infrastructure. Stability protects downstream users.


Pull Request Checklist

Before submitting a PR, ensure:


Code Style Expectations


Questions or Design Changes

For architectural changes:

Major design shifts should be documented as Architecture Decision Records (ADR).