Contributing guidelines

Open an issue

This is mainly done on Inria Gitlab issues, but also on GitHub issues for external users.

If you found a bug, please provide a minimal working example so we can reproduce it. Please also tell us about your software environment. Giving versions for Batsim, SimGrid and the scheduler you use is especially important.

Open a merge/pull request

This is mainly done on Inria Gitlab MRs, but also on GitHub PRs for external users.

Do not hesitate to Contact us or to Open an issue before implementing your work. This can save you some time, especially if the contribution does not match Batsim objectives.

If you plan to do several unrelated improvements, please do several merge/pull requests. Furthermore, please respect the following git usage.

  • Create a dedicated git branch for your bugfix or feature implementation.

  • Base your branch on Batsim’s up-to-date master branch.

  • Do not put unrelated commits in the branch.

  • Do not put merge commits in the branch.

Note

If you already have modifications and do not know how to make them fit this usage, please read Atlassian’s git tutorial on rebasing.

Batsim objectives

  • Reduce maintenance cost. As we lack development manpower, this is very important.

  • Keep it simple, stupid. We try to avoid very specific code in Batsim itself. Ideally, the features should be modular enough to allow a wide use case variety. For example, the Protocol should propose a set of basic operations that can be composed to achieve what you want, rather than a dedicated operation that does exactly what you want.

  • Performance should be kept in mind, even if this is not the main concern.