Skip to content

Latest commit

 

History

History
188 lines (129 loc) · 10.5 KB

File metadata and controls

188 lines (129 loc) · 10.5 KB

Contributing to Dimmer project

👍🎉 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.

Table of contents

Code of Conduct

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.

It's just a question, I don't want to read this whole thing!!!

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 packages

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

Reporting Bugs

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.

Before Submitting A Bug Report

  • 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.

How Do I Submit A (Good) Bug Report?

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:

Suggesting Enhancements

This section guides you through submitting an enhancement suggestion for Dimmer project, including completely new features and minor improvements to existing functionality.

Before Submitting An Enhancement Suggestion

How Do I Submit A (Good) Enhancement Suggestion?

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

Code Contribution

I just want to help: First code contribution

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 beginner issues.

Code contribution steps

  1. Issue created: Before starting a code contribution, please make sure there is an issue for it.
  2. Fork repository: Fork this project to your own repository.
  3. Branch within forked repository: In your forked repository create a branch, in which you will do the change, using the pattern 'feature/issue_xx'.
  4. Coding: Make sure your code change fits our standards.
  5. Local verification: This stage is intended to verify the code fits some basic thresholds. See our verification process
  6. README update: Update README.md file when required.
  7. 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.

Issue and Pull Request Labels

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.

Type of issue

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

Module

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

Severity

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

Complexity

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

Others

Label name Search in github 🔎 Description
invalid/won't fix search issues which won't be worked on