tanya/CONTRIBUTING.md

93 lines
3.6 KiB
Markdown
Raw Normal View History

# Contributing
Tanya is a project in active development, therefore any help is appreciated. Thank you for considering contributing
to it, feel welcome.
These guidelines describe ways to get started.
2017-06-21 15:05:39 +02:00
## Ways to get involved
2017-06-21 15:05:39 +02:00
* **Reporting a problem**: [Report](https://issues.caraus.io/projects/tanya/issues) bugs and usage problems you
encounter.
2017-06-21 15:05:39 +02:00
* **Fixing issues**: [The bug tracker](https://issues.caraus.io/projects/tanya/issues) contains a list of issues you
can work on.
* **Documentation**: You can improve API documentation by correcting grammar errors, completing existing texts and
writing new ones, or providing usage examples.
* **Testing**: Test coverage is important for a library. Writing tests is not only helpful, but is also a great way
to get a feel for how tanya works.
* **Adding new features**: Tanya is a growing library. If you think some feature is missing, you can suggest
and implement this.
2017-06-21 15:05:39 +02:00
## Opening an issue
If you have found a bug, an error, have some question, or suggestion, open in issue. I'll try to answer as soon
as I can. Tanya uses an external
2017-06-21 15:05:39 +02:00
[bug tracker](https://issues.caraus.io/projects/tanya/issues). You should
[register](https://issues.caraus.io/account/register) before you can report your issue. There is also a list
of open issues that mirror the current development process and progress. If you're looking for a challenge, just
pick an issue you are interested in and start working on it. Fill free to comment on the issue to get more
information.
Some issues have a category assigned to them. Such issues belong mostly to a larger part of the library that is
2017-06-21 15:05:39 +02:00
currently in development. The category specifies then the git branch development happens on. The remaining issues
can be fixed directly in master.
In the [roadmap](https://issues.caraus.io/projects/tanya/roadmap) you can find a list of issues that are planned
to be fixed till a specific release. Version numbers refer to the versions in the
[git repository](https://github.com/caraus-ecms/tanya/releases).
## Contribution process
2017-06-21 15:05:39 +02:00
### Creating a pull request
I accept GitHub pull requests. Creating a pull request is like sending a patch with the suggested change.
2017-06-21 15:05:39 +02:00
First you have to [fork](https://guides.github.com/activities/forking/) the repository. Clone your fork locally
with `git clone` and create a new branch where you want to work, for example:
```shell
git checkout -b bugfix-x
```
Commit your changes to your fork:
```shell
git commit -m "Fix X"
2017-06-21 15:05:39 +02:00
git push -u origin bugfix-x
```
2017-06-21 15:05:39 +02:00
After that if you visit your fork on GitHub, GitHub will suggest to create pull request. Just follow the steps
described on GitHub to finish the process. See
[Using Pull Requests](https://help.github.com/articles/about-pull-requests/) for more information.
2017-06-21 15:05:39 +02:00
2017-07-19 07:58:20 +02:00
Please ensure that your fork is even with the upstream (original) repository. If not, you have to rebase your branch
on upstream/master before submitting a pull request. See https://help.github.com/articles/syncing-a-fork/ for a
2017-06-21 15:05:39 +02:00
step-by-step guide.
### Fixing a bug
2017-07-19 07:58:20 +02:00
Add an unittest that demonstrates the bug along with a short description:
```d
// Issue ###: https://issues.caraus.io/issues/###.
private unittest
{
}
```
### Adding new features
* Use Ddoc to document the feature.
2017-07-19 07:58:20 +02:00
* Add some unittests that prevent new bugs and demonstrate how the feature is supposed to work.
### Style guide
Make sure your changes follow [The D Style](https://dlang.org/dstyle.html) (including
[Additional Requirements for Phobos](https://dlang.org/dstyle.html#phobos).
2017-06-21 15:05:39 +02:00
## Questions and suggestions
* [Open an issue](https://issues.caraus.io/projects/tanya/issues)
* [Send an email](mailto:info@caraus.de)