Skip to content

Latest commit

 

History

History
66 lines (44 loc) · 4.93 KB

CONTRIBUTING.md

File metadata and controls

66 lines (44 loc) · 4.93 KB

Contributing to RaspberryMatic

There are many ways to contribute to the RaspberryMatic project! We welcome and truly appreciate contribution in all forms - issues and pull requests or just modifications of documentation or user support in the corresponding support fora. And of course we love to hear about any successfull use of RaspberryMatic to be shared with the community!

When contributing to this repository, please first discuss the change you wish to make via issue, email, or any other method (e.g. support fora) before making a change.

Please note we have a code of conduct, please follow it in all your interactions with the project.

Filing bugs/issues (Bug Report Process)

Our development team heavily uses (and loves!) GitHub for all of our software management. We use GitHub issues to track all bugs and features.

If you find an issue, please do file it on the repository. The RaspberryMatic issues should be used only for issues on RaspberryMatic itself - bugs related to the general CCU firmware environment belong to the original OCCU repository of eQ3.

Please file issues using the issue template provided, filling out as many fields as possible. We love examples for addressing issues.

Occasionally we'll close issues if they appear stale or are too vague - please don't take this personally! Please feel free to re-open issues we've closed if there's something we've missed and they still need to be addressed.

Contributing Pull Requests (PR)

PR's are even better than issues. We gladly accept community pull requests. In general across the whole RaspberryMatic codebase, there are a few necessary steps before we can accept a pull request:

  • Open an issue describing the problem that you are looking to solve in your PR (if one is not already open), and your approach to solving it. This makes it easier to have a conversation around the best general approach for solving your problem, outside of the code itself.
  • Understand and accept that the code you are contributing will be licensed under the Apache 2.0 license.
  • Fork the repo you're making the fix on to your own GitHub account.
  • Code!
  • Ideally, squash your commits into a single commit with a clear message of what the PR does. If it absolutely makes sense to keep multiple commits, that's OK - or perhaps consider making two separate PR's.
  • Submit your PR, making sure it references the issue you created.
  • If your PR fixes a bug, make sure the issue includes clear steps to reproduce the bug so we can test your fix.

If you've completed all of these steps the core team will do its best to respond to the PR as soon as possible.

Communicating with the RaspberryMatic team

Beyond GitHub, we try to have a variety of different lines of communication open:

Contributor License Agreement (Apache 2.0)

You might have noticed that RaspberryMatic itself is licensed under the Apache 2.0 license. This license allows us to not only share code with the vendor of the CCU platform (eQ-3), but also allows us to distribute code as open source. As such, please understand and accept that once you contributed code to this repository it will be (re)licensed under the Apache 2.0 license exclusively. That means, any source code contributed (as long as you have the right to do so), either as part of a pull request or embedded in an issue in the issue tracker will be exclusively distributed under the Apache 2.0 license. With your contribution you are accepting this and you are signing off this agreement. So if you - for some reason - cannot accept that your source code will be (re)licensed under the Apache 2.0 license, please explictly state so or completly refrain from contributing any source code whatsoever.

Therefore, please note the following license agreement when contributing to this project and refrain from contributing if you cannot agree to these terms:

By making a contribution to this project, you certify that:

(a) The contribution was created in whole or in part by you and you
    have the right to submit it under the Apache 2.0 license; or

(b) The contribution is based upon previous work that, to the best
    of your knowledge, is covered under an appropriate open source
    license and you have the right under that license to submit that
    work with modifications, whether created in whole or in part
    by you, under the Apache 2.0 license; or

(c) The contribution was provided directly to you by some other
    person who certified (a), (b) or (c) and you have not modified
    it.

(d) You understand and agree that this project and the contribution
    are public and that a record of the contribution (including all
    personal information you submit with it) is maintained indefinitely
    and may be redistributed consistent with this project or the open
    source license(s) involved.