Thank you for your interest in contributing to csauto, a project developed by Simvia SAS ! We welcome contributions from everyone, whether it's reporting bugs, suggesting features, improving documentation, or submitting code.
Please take a moment to review this document to understand how you can contribute effectively.
By participating in this project, you agree to abide by our Code of Conduct. Please read it to ensure a positive and inclusive environment for everyone.
- Check existing issues: Before opening a new issue, search the issue tracker to avoid duplicates.
- Open a new issue: If the bug hasn't been reported, create a new issue with a clear title and description. Include:
- Steps to reproduce the issue.
- Expected and actual behavior.
- Python version and OS.
- Relevant log output.
- Open an issue with the label
enhancement. - Describe the feature, its use case, and why it would be beneficial.
- Include examples or references if possible.
Merge requests adding support for new solvers are gladly welcome! csauto's solver-specific logic (commands, log parsing, file conventions, dashboard columns and panels) lives behind a single SolverAdapter class, so supporting a new solver means writing one adapter — no changes to the orchestration core or the frontend. Follow the step-by-step guide in docs/adding-a-solver.md, and use the built-in stub adapter and tests/unit/test_solver_boundary.py as references for the expected shape.
- Fix typos, clarify instructions, or add missing details.
- Open a pull request (PR) with your changes.
- Fork the repository and create a new branch from
main. - Follow the project's coding style (PEP 8, 4-space indentation, snake_case, explicit type hints).
- Write tests for new features or bug fixes.
- Commit your changes with a conventional commit prefix in imperative mood (e.g.,
feat: add Slurm retry logic). - Open a pull request to the
mainbranch. Include:- A clear title and description of the changes.
- Reference any related issues (e.g.,
fixes #123). - Tests executed.
- Documentation or UI impact.
Please refer to the README to setup your development environment.
After cloning, install the git hooks:
sh scripts/setup-hooks.shThis installs a pre-commit hook that automatically rebuilds frontend/dist/ when frontend source files are staged. The build requires pnpm and node_modules to be installed (cd frontend && pnpm install).
- Ensure your code passes all tests.
- Keep PRs focused and concise. Large changes should be broken into smaller PRs.
- Update the Changelog if your changes affect functionality.
- A maintainer will review your PR and may request changes.
All contributors will be acknowledged in the project's README file.
For questions or feedback, reach out to us:
Email: ulysse.bouchet@simvia.tech or florian.hermet@simvia.tech.