# Contributing

You are welcome to contribute to HyperFormula's development. Your help
is much appreciated in any of the following topics:

* Making pull requests
  * Adding new functions
  * Adding new features
  * Improving the quality of the existing code
  * Improving performance
  * Improving documentation and public API
* Reporting bugs
* Suggesting improvements
* Suggesting new features

## Good first issue

Adding a new function would be a huge help for the growth of the
library and should not be too problematic for a first issue. Extending the
library of translations is also a good task to start with.
[Here](https://docs.google.com/spreadsheets/d/1UUskn4ZDDjLGSpO6kg73DOvabNoeqLbkJYyVfLyYlYw)
you can find a list of function translations.

Visit the [building](building.md) section to
get more info about the development process and check the list of commands you
can run in this project. Check the `/i18n`
folder in the project - all translations are kept there.
For the functions see the `interpreter/plugin` folder. Both of them
are a good starting point.

## How to get started

1. First, sign this
[Contributor License Agreement](https://goo.gl/forms/yuutGuN0RjsikVpM2)
to allow us to use and publish your changes.
2. Always make your changes on a separate branch. This will speed up
the merging process.
3. Always make the target of your pull request the `develop` branch,
not `master`.
4. For any change you make, add test specs to the `test` folder.
5. Please lint the code. See the section about using linter.
6. Add a comprehensive description of all the changes.

## Code of conduct

By participating in this project, you are expected to uphold our
[Code of Conduct](code-of-conduct.md).