Skip to content

Commit

Permalink
Improve contribution guidelines
Browse files Browse the repository at this point in the history
  • Loading branch information
timofurrer committed Oct 25, 2019
1 parent c3a98e5 commit 22f4141
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 25 deletions.
64 changes: 41 additions & 23 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,46 +1,64 @@
# Contributing

Thank you for helping radish to get a better piece of software.
Thank you for helping radish to get a better and better! :tada:

## Support

If you have any questions regarding the usage of radish as a BDD tool please use [StackOverflow](https://stackoverflow.com).
If you have any questions regarding the usage of radish please use
[a GitHub Issue](https://github.com/radish-bdd/radish/issues/new?assignees=&labels=question&template=question.md&title=).

## Reporting Issues / Proposing Features
## Reporting Bugs / Proposing Features

Before you submit an Issue or proposing a Feature check the existing Issues in order to avoid duplicates. <br>
Please make sure you provide enough information to work on your submitted Issue or proposed Feature:
Before you submit a Bug or propose a Feature check the existing Issues in order to avoid duplicates. <br>
Please make sure you provide enough information to work on your submitted Bug or proposed Feature:

* Which version of radish are you using?
* Which version of python are you using?
* Which version of Python are you using?
* On which platform are you running radish?

Make sure to use the GitHub Template when reporting an issue.
Make sure to use the GitHub Template when reporting an Issue.

It's best if you can provide a small-ish standalone example of the Bug you discovered
or the Feature you have in mind.

## Pull Requests

We are very happy to receive Pull Requests considering:

* Style Guide. Follow the rules of [PEP8](http://legacy.python.org/dev/peps/pep-0008/), but you may ignore *too-long-lines* and similar warnings. There is a *pylintrc* file for more information.
* Tests. If our change affects python code inside the source code directory, please make sure your code is covered by an automated test case.
* Style Guide. Follow the rules of [PEP8](http://legacy.python.org/dev/peps/pep-0008/) and make sure `tox -e lint` passes on your changes.
* Tests. Make sure your code is covered by an automated test case. Make sure all tests pass.

### Testing
## Development

To test the radish source code against all supported python versions you should use *tox*:
radish uses the *extra* requirements feature of `setuptools` to specify all
the dependencies needed to develop radish.
A set of extra requirements can be installed with the following `pip` syntax:

```bash
cd ~/work/radish
pip install tox
tox
pip install -e '.[<extras>]'
```

However, if you want to test your code on certain circumstances you can create a *virtualenv*:
whereas `<extras>` can be one of:

```
cd ~/work/radish
virtualenv env
source env/bin/activate
pip install -e '.[dev]'
pytest
radish -b tests/integration/radish tests/integration/features
```
* `tests`: all dependencies required to run the radish unit and integration tests
* `docs`: all dependencies required to build the radish documentation
* `dev`: all dependencies required to develop radish. This group includes the `tests` and `docs` dependencies. [recommended]

### tox: linting, testing, docs & more

radish uses [`tox`](https://tox.readthedocs.io/en/latest/) to automate development tasks,
like linting, testing, building the docs and creating the changelog.

The radish tox setup provides the following automated tasks:

* `lint`: formats and lints the code base using [`black`](https://black.readthedocs.io/en/stable/) and [`flake8`](https://flake8.readthedocs.io/en/stable/).
* `manifest`: checks if the `MANIFEST.in` content is consistent with the repository content.
* `py<ver>`: runs unit tests with the Python Version from `<ver>`.
* `integration`: runs integration tests.
* `coverage-report`: generates a coverage report. Make sure that you've run some tests before.
* `docs`: builds the sphinx documentation.
* `news`: generates the ChangeLog from the newsfragments in `changelog/`. Use `towncrier --draft` directly to generate a ChangeLog draft.

Before commiting your changes, it's a good practice to run `tox`.
So that it'll run all the preconfigured tasks.
If they all pass - you are good to go for a Pull Request! :tada:
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
name: Feature Request
about: Suggest an idea for a new feature or enhancement for radish
title: ''
labels: ''
labels: 'feature request'
assignees: ''

---
Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/question.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
name: Ask a Question
about: Ask a Question about radish (Usage, Development, ...)
title: ''
labels: ''
labels: 'question'
assignees: ''

---
Expand Down

0 comments on commit 22f4141

Please sign in to comment.