Thanks for your interest in contributing to Litmus and help improve the project! ⚡️✨
We welcome contributions of all kinds:
- Development of features, bug fixes, and improvements
- Documentation, tutorials, and examples
- Reporting bugs or suggesting features
Before contributing, please read this guide to understand how to get started, submit code, and participate in the Litmus community.
- Join our community on Slack and post in #litmus for general questions or #litmus-dev for technical discussions.
- Open a new GitHub issue describing your request, bug, or feature idea.
- Check the good-first-issues label for beginner-friendly contributions.
- One-click automated setup
Follow the Local Setup Guide to configure the environment automatically using shell scripts. - Manual setup
Follow the Local Development Guide if you prefer to set up and configure the environment yourself. - Review Development Best Practices
- For Go contributors, read Effective Go and Go Code Review Comments
You can contribute fixes and improvements by submitting a Pull Request (PR) on GitHub. Each PR will be reviewed by one or more maintainers and merged once it meets the project’s standards.
Before submitting large or high-impact PRs, we encourage you to coordinate with the project maintainers. This helps ensure your work aligns with the project’s goals and avoids unnecessary effort.
If you are unsure whether a change is considered large, reach out for guidance—either via the #litmus-dev Slack channel or by creating an issue on GitHub.
All contributions must be signed with the Developer Certificate of Origin (DCO), confirming you have the legal right to submit your work.
Signing a commit manually: To successfully sign off your contribution you just add a line to every git commit message:
Signed-off-by: Joe Smith <joe.smith@email.com>
Automatic signing:
- Set git configs:
git config --global user.name"Your Name" andgit config --global user.email"your.email@example.com" - Use
git commit -sto automatically sign commits - Optionally, create an alias:
git config --global alias.ci 'commit -s'
Note: Use your real name—no pseudonyms or anonymous commits.
For full details, see the DCO documentation.
-
Create an Issue (optional but recommended)
Describe the problem or proposed feature on GitHub issue. We would promptly respond back to your issue. -
Fork the Repository
- Fork this repository, develop and test your code changes. See the Highlighted Repositories section below to choose which area you would like to contribute to.
- Create a
feature branchfrom your forked repository and submit a pull request against this repo’s main branch.
- Develop & Test
-
Follow backend and frontend coding guidelines:
- Backend: Go Code Review Comments, Best Practices
- Frontend: Airbnb React Style Guide
-
If you are making any changes in backend, make sure you have run and tested the code locally, the reviewers might ask for relevant screenshots in the comments.
-
Include relevant tests for new code or bug fixes
-
Include screenshots for UI changes
- Push & Submit PR
- Ensure your branch is up-to-date with main
- Submit a PR against the repository’s main branch
- Review Process
- Your branch may be merged once all configured checks pass, including:
- The branch has passed tests in CI.
- A review from appropriate maintainers (see MAINTAINERS.md and GOVERNANCE.md)
- Merge occurs when all checks pass and reviews are approved
- If your PR is large or high-impact, coordinate with maintainers in #litmus-dev Slack
If you are new to Go, consider reading Effective Go and Go Code Review Comments for guidance on writing idiomatic Go code.
- Rebase to the current master branch before submitting your pull request.
- Commits are small and clear. Each commit should follow the checklist below:
- For code changes, add tests relevant to the fixed bug or new feature
- Pass the compile and tests in CI
- Commit header (first line) should convey what changed
- Commit body should include details such as why the changes are required and how the proposed changes
- DCO Signed
- Include screenshots for UI changes (if applicable)
If your PR is not getting reviewed or you need a specific person to review it, please reach out to the Litmus contributors at the Litmus slack channel
- Install mockery (https://vektra.github.io/mockery/latest/installation/)
- For existing interfaces: run
mockery - For new interfaces: update
.mockery.yamland runmockery`
You can choose from a list of sub-dependent repos to contribute to, a few highlighted repos that Litmus uses are:
| Repository | Description |
|---|---|
| Chaos-charts | Reusable chaos experiment charts |
| Chaos-workflows | Automation workflows for chaos experiments |
| Test-tools | Testing utilities and tools |
| Litmus-go | Core Go libraries for LitmusChaos |
| Litmus-website | Project website and documentation |
| Litmusctl | CLI for LitmusChaos |
| Litmus-docs | Documentation content |
| Backstage-plugin | Backstage plugin for Litmus |
- Community Meetings
- These will be hosted every 3rd Wednesday of every month at 5:30 PM GMT /6:30 PM CEST /10 PM IST
- These meetings cover community updates, new feature or release announcements, and user/adopter stories. Everyone in the community is welcome to join and participate in discussions.
- Contributor Meetings
- These will be hosted every second & last Thursday of every month at 2:30 PM GMT /3:30 PM CEST /7 PM IST
- These meetings focus on both technical and non-technical contributions to LitmusChaos. Maintainers, current contributors, and aspiring contributors are encouraged to join to discuss issues, fixes, enhancements, and future contributions.
Fill out the LitmusChaos Meetings invite form to get your Calendar invite!
- The release items are tracked in the release sheet.
- Sync Up Agenda & Meeting Notes
If you cannot attend, participate asynchronously via Slack or GitHub discussions.