# Contributing to Radzen.Blazor

:+1::tada: First off, thanks for taking the time to contribute! :tada::+1:

This is a set of guidelines for contributing to Radzen.Blazor.

## Asking questions
Please don't open an issue to ask a question about using Radzen.Blazor components. You can check the following resources instead:

### [Online demos](https://blazor.radzen.com)
A showcase application that demonstrates all Radzen.Blazor components. You will find various use cases that demonstrate the component features and API. The source 
of the demos is available [here](https://github.com/radzenhq/radzen-blazor/tree/master/RadzenBlazorDemos).

### [Documentation](https://blazor.radzen.com/docs/)
Technical documentation and API reference.

### [Community forum](https://forum.radzen.com)
You can ask your question here. Please use the [Radzen.Blazor Components](https://forum.radzen.com/c/blazor-components/10) category.

### Dedicated technical support

Radzen staff provides technical support with guaranteed response time to Radzen Professional and Enterprise subscribers. The pricing options are available [here](https://www.radzen.com/pricing).

## How Can I Contribute?

### Reporting bugs

We are tracking bugs as [issues](https://github.com/radzenhq/radzen-blazor/issues). 

Before creating bug reports, please check the existing issues as you might find out that you don't need to create one. When you are creating a bug report, please include as many details as possible. 
Fill out [the required template](https://github.com/radzenhq/radzen-blazor/blob/master/.github/ISSUE_TEMPLATE/bug_report.md), the information it asks for helps us resolve issues faster.

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

#### How Do I Submit A (Good) Bug Report?

After you've determined your bug hasn't been reported yet, create an issue in this repository and provide the following information by filling in [the template](https://github.com/radzenhq/radzen-blazor/blob/master/.github/ISSUE_TEMPLATE/bug_report.md).

Explain the problem and include additional details to help maintainers reproduce the problem:

* **Use a clear and descriptive title** for the issue to identify the problem.
* **Describe the exact steps which reproduce the problem** in as many details as possible. 
* **Provide specific examples to demonstrate the steps**. Include links to files or GitHub projects, or copy/pasteable snippets, which you use in those examples. If you're providing snippets in the issue, use [Markdown code blocks](https://help.github.com/articles/markdown-basics/#multiple-lines).
* **Describe the behavior you observed after following the steps** and point out what exactly is the problem with that behavior.
* **Explain which behavior you expected to see instead and why.**
* **Include screenshots and animated GIFs** which show you following the described steps and clearly demonstrate the problem. You can use [this tool](https://www.cockos.com/licecap/) to record GIFs on macOS and Windows, and [this tool](https://github.com/colinkeenan/silentcast) or [this tool](https://github.com/GNOME/byzanz) on Linux.

### Suggesting Enhancements

This section guides you through submitting an enhancement suggestion, including completely new features and minor improvements to existing functionality. 
Following these guidelines helps maintainers and the community understand your suggestion :pencil: and find related suggestions :mag_right:.

After you've determined your feature hasn't been requested yet, create an issue in this repository and provide the following information by filling in [the template](https://github.com/radzenhq/radzen-blazor/blob/master/.github/ISSUE_TEMPLATE/feature_request.md).

Explain the enhancement and include additional details:

* **Use a clear and descriptive title** for the issue to identify the suggestion.
* **Provide a step-by-step description of the suggested enhancement** in as many details as possible.
* **Provide specific examples to demonstrate the steps**. Include copy/pasteable snippets which you use in those examples, as [Markdown code blocks](https://help.github.com/articles/markdown-basics/#multiple-lines).
* **Describe the current behavior** and **explain which behavior you expected to see instead** and why.
* **Explain why this enhancement would be useful** to most Radzen.Blazor users.

### Pull Requests

If you want to contribute a new feature of fix a bug you can open a pull request. 

Make sure you follow this procedure:
* **Important!!!** if you itent to make a lot of changes in a pull request open an issue to discuss this with us first. The Radzen Blazor Components have a lot of
moving parts and making big changes should be done with extra precautions. 
* **Be sure that none of the existing tests** breaks after your changes. The test project is available [here](https://github.com/radzenhq/radzen-blazor/tree/master/Radzen.Blazor.Tests).
* **If possible add new tests that verify your fix or new feature**. 
* **Follow the existing coding style** (to be described in detail later).



