Merge pull request #1566 from ketan86/developer-guide-improvements
developer guide enhancements.
This commit is contained in:
commit
669cfa33df
|
@ -34,28 +34,84 @@ the document that explains the way `sanic` manages dependencies inside the `setu
|
|||
| extras_require['dev'] | Additional Development requirements to add contributing | pip3 install -e '.[dev]' |
|
||||
| extras_require['docs'] | Dependencies required to enable building and enhancing sanic documentation | pip3 install -e '.[docs]' |
|
||||
|
||||
## Running tests
|
||||
|
||||
To run the tests for sanic it is recommended to use tox like so:
|
||||
## Running all tests
|
||||
To run the tests for Sanic it is recommended to use tox like so:
|
||||
|
||||
```bash
|
||||
tox
|
||||
```
|
||||
|
||||
See it's that simple!
|
||||
|
||||
`tox.ini` contains different environments. Running `tox` without any arguments will
|
||||
run all unittests, perform lint and other checks.
|
||||
|
||||
## Run unittests :
|
||||
`tox` environment -> `[testenv]`
|
||||
|
||||
To execute only unittests, run `tox` with environment like so:
|
||||
|
||||
```bash
|
||||
tox -e py36 -v -- tests/test_config.py
|
||||
# or
|
||||
tox -e py37 -v -- tests/test_config.py
|
||||
```
|
||||
|
||||
## Run lint checks :
|
||||
`tox` environment -> `[testenv:lint]`
|
||||
|
||||
Permform `flake8`, `black` and `isort` checks.
|
||||
```bash
|
||||
tox -e lint
|
||||
```
|
||||
|
||||
## Run other checks :
|
||||
`tox` environment -> `[testenv:check]`
|
||||
|
||||
Perform other checks.
|
||||
```bash
|
||||
tox -e check
|
||||
```
|
||||
|
||||
# Code Style
|
||||
To maintain the code consistency, Sanic uses following tools.
|
||||
|
||||
1. [isort](https://github.com/timothycrosley/isort)
|
||||
2. [black](https://github.com/python/black)
|
||||
2. [flake8](https://github.com/PyCQA/flake8)
|
||||
|
||||
|
||||
## isort
|
||||
`isort` sorts Python imports. It divides imports into three
|
||||
categories sorted each in alphabetical order.
|
||||
1. built-in
|
||||
2. third-party
|
||||
3. project-specific
|
||||
|
||||
## black
|
||||
`black` is a Python code formatter.
|
||||
|
||||
## flake8
|
||||
`flake8` is a Python style guide that wraps following tools into one.
|
||||
1. PyFlakes
|
||||
2. pycodestyle
|
||||
3. Ned Batchelder's McCabe script
|
||||
|
||||
`isort`, `black` and `flake8` checks are performed during `tox` lint checks.
|
||||
|
||||
Refer [tox](https://tox.readthedocs.io/en/latest/index.html) documentation for more details.
|
||||
|
||||
## Pull requests!
|
||||
|
||||
So the pull request approval rules are pretty simple:
|
||||
1. All pull requests must pass unit tests.
|
||||
2. All pull requests must be reviewed and approved by at least
|
||||
one current collaborator on the project.
|
||||
one current collaborator on the project.
|
||||
3. All pull requests must pass flake8 checks.
|
||||
4. All pull requests must be consistent with the existing code.
|
||||
5. If you decide to remove/change anything from any common interface
|
||||
a deprecation message should accompany it.
|
||||
a deprecation message should accompany it.
|
||||
6. If you implement a new feature you should have at least one unit
|
||||
test to accompany it.
|
||||
test to accompany it.
|
||||
7. An example must be one of the following:
|
||||
* Example of how to use Sanic
|
||||
* Example of how to use Sanic extensions
|
||||
|
|
Loading…
Reference in New Issue
Block a user