👍🎉 First off, thanks for taking the time to contribute! 🎉👍
The following is a set of guidelines for contributing to Dimmer project which is hosted on GitHub. These are mostly guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a pull request.
- Code of Conduct
- It's just a question, I don't want to read this whole thing!!!
- Dimmer project packages
- Reporting Bugs
- Suggesting Enhancements
- Code Contribution
- Issue and Pull Request Labels
This project and everyone participating in it is governed by the Dimmer Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to dev@cloudyrock.io.
Note: Please don't file an issue to ask a question.
We have an official FAQ page where your question may be already answered. Otherwise an email to dev@cloudyrock will be the fastest way to get tour question resolved.
Dimmer project contains 4 main areas.
- dimer-core: Base project for the basic Dimmer module and Dimmer server. Issue label is
core-module - dimmer-local: Basic Dimmer module to used locally or as a client in combination with Dimmer server. Issue label is
local-module
This section guides you through submitting a bug report for Dimmer project.
Note: If you find a Closed issue that seems like it is the same thing that you're experiencing, open a new issue and include a link to the original issue in the body of your new one.
- Check the FAQ page for a list of common questions and problems. You might find out your issue/question is clarified in this page.
- Perform a cursory search to see if the problem has already been reported. If it has and the issue is still open, add a comment to the existing issue instead of opening a new one.
Bugs are tracked as GitHub issues. Create an issue on the Dimmer repository following the issue template. Please provide as much information as you can and add the following labels to make easier to categorise issues:
- The label
bug - The module or modules involved: module labels
- Severity of the bug: severity labels
- If you feel confident to estimate how complex the fix is, please provide a complexity label: complexity labels
This section guides you through submitting an enhancement suggestion for Dimmer project, including completely new features and minor improvements to existing functionality.
- Check the FAQ page. You might find out that enhancement is already covered.
- Determine which module the enhancement should be reported in.
- Perform a cursory search to see if the problem has already been reported. If it has and the issue is still open, add a comment to the existing issue instead of opening a new one.
Enhancement suggestions are tracked as GitHub issues. Create an enhancement on the main repository and provide the required information by filling in the enhancement template.
Please add the following labels to make easier to categorise issues:
- The label
feature - The module or modules involved: module labels
- Severity of the bug: severity labels
- If you feel confident to estimate how complex the development is, please provide a complexity label: [complexity labels](#complexity
Unsure where to begin contributing to Dimmer project? You can start by looking through these beginner and intermediate issues:
- Beginner issues - issues which should only require a few lines of code, and a test or two.
- Intermediate issues - issues which should be a bit more involved than
beginnerissues.
- Issue created: Before starting a code contribution, please make sure there is an issue for it.
- Fork repository: Fork this project to your own repository.
- Branch within forked repository: In your forked repository create a branch, in which you will do the change, using the pattern 'feature/issue_xx'.
- Coding: Make sure your code change fits our standards.
- Local verification: This stage is intended to verify the code fits some basic thresholds. See our verification process
- README update: Update README.md file when required.
- Pull request: Use our pull request template to provide the required information.
Once a pull request in in place, you can expect 1-2 days for us to start the review.
Part of the review involves sonar to check the code quality. Although it's already explained in our standards, please notice:
- We use a quality profile, which is basically an small extension of the sonar way with few changes.
- Our quality gate requires at least 85% test coverage and at most 3% code duplication for new code.
This section lists the labels we use to help us track and manage issues and pull requests.
The labels are loosely grouped by their purpose, but it's not required that every issue have a label from every group or that an issue can't have more than one label from the same group. However, the more you provide, the easier and faster the issue can be fixed.
Please click on the search list the issues for the given label.
| Label name | Search in github 🔎 |
Description |
|---|---|---|
bug |
search | Bug issues |
feature |
search | Feature issues |
docs/ops |
search | Issues which just require documentation or some management work |
| Label name | Search in github 🔎 |
Description |
|---|---|---|
core-module |
search | Issues to be fixed in the core |
local-module |
search | Issues to be fixed in the local module |
server-module |
search | Issues to be fixed in the server module |
| Label name | Search in github 🔎 |
Description |
|---|---|---|
critical |
search | Blocking issues |
high |
[search][search-repo-label-high] | Very important, but non-blocking, issues |
normal |
search | Normal non-blocking issues that needs to be fixed sooner than later |
minor |
search | Low priority issues |
| Label name | Search in github 🔎 |
Description |
|---|---|---|
beginner |
search | Issues which should only require a few lines of code, and a test or two |
intermediate |
search | Issues which should be a bit more involved than beginner issues |
advanced |
search | Issues that require some deep knowledge, expertise or just time consuming |
| Label name | Search in github 🔎 |
Description |
|---|---|---|
invalid/won't fix |
search | issues which won't be worked on |