Skip to main content

Contributing to Miru

If you're here, it means this is going to be the start of something amazing! ✨ Thank you for your interest in contributing to Miru! We're happy to have you here.

How you can help

Miru, though managed by the awesome folks at Saeloun, is an open source project. This means that we're always looking for help from the community to make Miru better. Here are some ways you can help:

  • Report a bug
  • Fix a bug (even if it's just a typo)
  • Discuss on code design and quality
  • Suggest improvements to existing workflows
  • Propose an entirely new feature

You can also join our Discord channel to chat with the team and other contributors.

Setup

The Environment Setup contains all the setup information you'd require. Please follow the instructions there to get started.

Everything is GitHub

We use GitHub to plan and track our work as well as host the code itself! If you're not familiar with GitHub, we recommend you take a look at this to get started.

Reporting a bug

If you find a bug, no matter how small, please report it by opening an issue on GitHub and following the template provided. However ensure that a duplicate issue doesn't already exist. If it does, please add a comment to the existing issue instead of opening a new one.

A good bug report tends to have:

  • A short summary and/or background
  • Detailed steps that help reproduce the bug
    • Be specific!
    • Give sample code if you can.
    • Add screenshots if needed.
  • What you expected vs what actually happened
  • Notes detailing the context in which you experienced the bug, the ways you tried to fix it or any supporting information that might help us understand the bug.

Fixing a bug

If you'd like to contribute by fixing a bug, please choose an issue from the issues page and comment on it to let us know that you're working on it. This avoids multiple people working on similar issues.

If the issue you're working on requires a design or architecture change, please comment out your proposed solution on the issue page. This will help us review your solution before you start working on it. Please wait for a maintainer to approve your solution before you start working on it.

Once you've decided the issue you'll be working on, please follow the instructions below:

  1. We use git-flow branching model. The base branch is develop. Please create a new branch from develop and name it appropriately.
  2. Make your changes
  3. Add or update tests as required. Ensure that your tests cover all the cases you've added or updated.
  4. Ensure the test suite passes.
  5. Make sure is linted and formatted.
  6. Raise a pull request!

First-time contributors

There are a few things you can do to help out if you're a first-time contributor. We've tagged some issues with the good first issue label. These are issues that are easy to fix and are a good place to start.

Good first issues

Always make sure to leave a comment before you start working on an issue.

Discussing code or improving workflows

Feel free to open an issue to discuss code design and quality or suggest improvements. We're always open to making Miru better! Tag it with the discussion label.

Proposing a new feature

Miru is a work in progress. We're always looking to add new features to make it better. If you have an idea for a new feature, please open an issue and tag it with the feature label. We'll review it and let you know if we're interested in adding it.

Please do not start working on a feature without getting it approved by a maintainer first. There might be a reason why we haven't added it yet.

License

By contributing, you agree that your contributions will be licensed under the MIT License.