First off, thank you for taking your time to contribute!
This document is only a guide and describes best practices to contribute to this project, and are not meant as rules written in stone. If you have the feeling that this document needs some changes, we are always open for improvements, feel free to propose changes in an issue or in a pull request.
Before you start to open a issue or a pull request make sure you follow our CODE_OF_CONDUCT.
Start by reading through the README, as it will give you an overview of the project and explains the intention of this project and all the use cases for it.
Before opening issues or pull requests always make sure that a similar open issue or open pull request does not exist. Please fo not post to closed issues. If you encounter the same problem as in a closed issue again, please open a new issue instead.
This section will guide you through how you can submit a bug report. By following these steps you help other contribuers and the maintainers to understand your report, how they can reproduce the problem, and find related reports.
If you submit a bug report try to include as much information as possible. Follow the steps for how to submit a good bug report. The information it asks help us to resolve your issue faster.
- Check the README, to be able to find the cause of your problem yourself.
- Check the open issues, to see if the problem is already reported.
- If you encounter a problem that was reported and closed, check why it was closed and if you think it should be reopened, open a new issue instead.
- Use a clear and descriptive title.
- Describe the exact steps which reproduce the problem.
- Provide specific examples to demonstrate the steps.
- Describe the behaviour you observed after the steps.
- Describe the behaviour you expected after the steps.
- Include screenshots and gifs.
This section will guide you through how you can submit a enhencement suggestion. By following these steps you help other contribuers and the maintainers to understand why an enhencement should be introduced.
If you submit a enhencement suggestiont try to include as much information as possible. Follow the steps for how to submit a (good) enhencement suggestion. the information it asks help us to resolve your issue faster.
- Check the README, to find if an suggested enhencement is not necessary.
- Check the open issues, to see if the enhencment is already submitted.
- Use a clear and descriptive title.
- Describe a exact step by step guide for the enhencement.
- Provide specific examples to demonstrate the steps.
- Describe the behaviour after the steps.
- Include screenshots and gifs.
- Explain why a enhencement would be useful.
If you want to contribute to this project and make it better, your help is very welcome. Contributing is also a great way to learn more about social coding on Github, new technologies and and their ecosystems and how to make constructive, helpful bug reports, feature requests and the noblest of all contributions: a good, clean pull request.
- Create a personal fork of the project on Github.
- Clone the fork on your local machine. Your remote repo on Github is called origin.
- Add the original repository as a remote called upstream.
- If you created your fork a while ago be sure to pull upstream changes into your local repository.
- Create a new branch to work on! Branch from
master
. - Implement your feature or bug fix.
- Follow the code style of the project, including indentation.
- Write or adapt tests as needed.
- Add or change the documentation as needed.
- Push your branch to your fork on Github, the remote origin.
- From your fork open a pull request in the correct branch. Target the project's
master
branch. - If the maintainer requests further changes just push them to your branch. The PR will be updated automatically.
- Once the pull request is approved and merged you can pull the changes from upstream to your local repo and delete your extra branch(es).
Be sure to follow our commit guidelines.
To follow all rules as follows you can install the semantic-git-commit-cli with npm i -g semantic-git-commit-cli
and then use sgc
in your terminal and you will be guided through the commit message.
<type>: <subject>
<BLANK LINE>
<body>
The first letter of the type has to be capitalized and the type must be one of the following:
Chore
: Changes that affect the build system or external dependencies and moving filesCI
: Changes to our CI configuration files and scriptsDocs
: Documentation only changesFeat
: New featureFix
: Bug fixPerf
: Code change that improves performanceRefactor
: Code change that neither fixes a bug nor adds a featureStyle
: Changes that do not affect the meaning of the codeTest
: Adding missing tests or correcting existing tests
- Use imperative, present tense: “change” not “changed” nor “changes”
- Do not capitalize first letter
- No dot (.) at the end
- Maximum 72 characters including
<type>:
- Just as in use imperative, present tense: “change” not “changed” nor “changes”
- Includes motivation for the change and contrasts with previous behavior
This Contribution guidline is partly adapted from the contributing guide of the Atom project, the contributing guide from Marc Diethelm, and the commit message conventions of the Angular project.