Skip to content

Latest commit

 

History

History
137 lines (96 loc) · 7.97 KB

File metadata and controls

137 lines (96 loc) · 7.97 KB

Contributing to Litmus

Litmus Logo

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.

Getting Started

Ask Questions or Discuss Ideas

  • Join our community on Slack and post in #litmus for general questions or #litmus-dev for technical discussions.

Report Issues or Propose Changes

Set Up Your Development Environment

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.

Developer Certificate of Origin (DCO)

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" and git config --global user.email "your.email@example.com"
  • Use git commit -s to 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.

3. Submitting a Pull Request (PR)

  1. Create an Issue (optional but recommended)
    Describe the problem or proposed feature on GitHub issue. We would promptly respond back to your issue.

  2. 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 branch from your forked repository and submit a pull request against this repo’s main branch.
  1. Develop & Test
  • Follow backend and frontend coding guidelines:

  • 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

  1. Push & Submit PR
  • Ensure your branch is up-to-date with main
  • Submit a PR against the repository’s main branch
  1. 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.

Pull Request Checklist

  • 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

Generating/Updating Mocks (chaoscenter/graphql/server)

Highlighted Repositories

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

  1. 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.
  1. 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!

If you cannot attend, participate asynchronously via Slack or GitHub discussions.