Contributing to MudPi

I welcome contributions to MudPi. If you see a bug you can fix or want to add some new features please submit a pull request! MudPi is open source so that others can learn from the project and help it grow. Always feel free to ask questions.

Contributing Guide

To maintain a clean code base and allow easier developments MudPi has a few guidelines for contributions for everyones benefit. I ask that you please read through the available documentation and adhere to the guides within reason.

MudPi is currently maintained by a solo developer so please never take it personally if your contribution is not accepted or it takes me some time to respond. My scope is limited and I have to prioritize being a Dad.

Below are some guidelines for keeping MudPi contributions consistent and well documented.

Submitting a New Feature

If you are submitting a new feature use the pull request template found here. Check that there are no other feature requests already pending for the same additions. You should be sure to document any all of your features in a markdown format.

Be sure to read the developer documentation about the extension system, interfaces and components to familiarize yourself with the inner workings of MudPi. It is also suggested you have read through all the core concepts as well.

Describe How You Tested Your Work

Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce on our own. Also list any relevant details for your test configuration including needed components.

You should also include the following information about your tests:

  • Python version:
  • Hardware:
  • Toolchain:
  • OS:
  • Components and Connections (i.e. Sensor Y on D10)
  • Complete Configurations

Documentation

Please provide thorough documentation of your changes and features in a markdown format. You can find a example of the documentation here. If you are adding a new extension you may attach this as a separate file. It is important that you document your features well so that someone with no information can familiarize themselves and even help collaborate! An important aspect of MudPi is having a complete set of documentation with examples in order to teach new users.

Examples

If you are providing new features and adding new configurations consider providing complete examples. In the MudPi core repository is an examples folder you can find various example configurations for reference. It can be very useful for a user to have an example to work from. When adding a new extension or configuration is is suggested to include example configuration in both the documentation and this examples directory.

Submitting a Bug Fix

If you are submitting a bux fix use the pull request template found here. Check that there are no other bug fixes already pending for the same issues. You should be sure to document any of your changes and be sure to note any breaking changes.