How to contribute?

Contributions to the CSM project are highly welcome.

There are several ways you can get involved, whether by improving the runtime system, advancing research, or supporting related tools and documentation.

Where to Start Contributing

  • Contributing to Cirrina
    The official runtime system for CSM is available as an open-source project on GitHub .
    Contributions may include:

    • Bug fixes
    • Feature implementations
    • Performance improvements
    • Documentation enhancements
  • Research
    If you use CSM in your research or build on our publications, your contributions are valuable.
    Relevant publications can be found here.

  • Documentation and Tutorials
    Improving tutorials, examples, and reference documentation helps make CSM more accessible to new users.

Contributing to Cirrina

Cirrina is implemented in Java and Kotlin, with Kotlin as the preferred language.

Contributions are submitted via pull requests from forks of the repository.

To ensure smooth collaboration, we:

  • follow commitlint conventions to keep the changelog tidy;
  • use Prettier to format our code;
  • maintain and improve test coverage via our unit tests validated automatically by our build pipeline; and
  • let pull requests pass all status checks and undergo code review before merging.

For major changes or new features, please open a GitHub issue to align with the project roadmap.

Broader discussions related to the CSM project take place on our discussion board.

Research

We encourage researchers to share new findings, experiments, or insights that extend CSM. These contributions help the project evolve and guide future development.

If CSM is part of your research, please cite our primary publication:

Marlon Etheredge, Thomas Fahringer, Felix Erlacher, Elias Kohler, Stefan Pedratscher, Juan Aznar\-Poveda, Nishant Saurabh, and Adrien Lebre. Collaborative State Machines: A Better Programming Model for the Cloud\-Edge\-IoT Continuum. July 2025. [arXiv:2507.21685](https://arxiv.org/abs/2507.21685), [doi:10.48550/arXiv.2507.21685](https://doi.org/10.48550/arXiv.2507.21685).

Documentation and Tutorials

The CSM project documentation is maintained on this website.

Contributions, corrections, and enhancements are welcome via pull requests to its
GitHub repository .