82f7f847ba
Signed-off-by: Harsha Narayana <harsha2k4@gmail.com>
89 lines
3.8 KiB
ReStructuredText
89 lines
3.8 KiB
ReStructuredText
Contributing
|
||
============
|
||
|
||
Thank you for your interest! Sanic is always looking for contributors.
|
||
If you don’t feel comfortable contributing code, adding docstrings to
|
||
the source files is very appreciated.
|
||
|
||
Installation
|
||
------------
|
||
|
||
To develop on sanic (and mainly to just run the tests) it is highly
|
||
recommend to install from sources.
|
||
|
||
So assume you have already cloned the repo and are in the working
|
||
directory with a virtual environment already set up, then run:
|
||
|
||
.. code:: bash
|
||
|
||
pip3 install -e . '[.dev]'
|
||
|
||
Dependency Changes
|
||
------------------
|
||
|
||
``Sanic`` doesn't use ``requirements*.txt`` files to manage any kind of dependencies related to it in order to simplify the
|
||
effort required in managing the dependencies. Please make sure you have read and understood the following section of
|
||
the document that explains the way ``sanic`` manages dependencies inside the ``setup.py`` file.
|
||
|
||
+------------------------+-----------------------------------------------+----------------------------+
|
||
| Dependency Type | Usage | Installation |
|
||
+========================+===============================================+============================+
|
||
| requirements | Bare minimum dependencies required for sanic | pip3 install -e . |
|
||
| | to function | |
|
||
+------------------------+-----------------------------------------------+----------------------------+
|
||
| tests_require / | Dependencies required to run the Unit Tests | pip3 install -e '[.test]' |
|
||
| extras_require['test'] | for ``sanic`` | |
|
||
+------------------------+-----------------------------------------------+----------------------------+
|
||
| extras_require['dev'] | Additional Development requirements to add | pip3 install -e '[.dev]' |
|
||
| | contributing | |
|
||
+------------------------+-----------------------------------------------+----------------------------+
|
||
| extras_require['docs'] | Dependencies required to enable building and |pip3 install -e '[.docs]' |
|
||
| | enhancing sanic documentation | |
|
||
+------------------------+-----------------------------------------------+----------------------------+
|
||
|
||
Running tests
|
||
-------------
|
||
|
||
To run the tests for sanic it is recommended to use tox like so:
|
||
|
||
.. code:: bash
|
||
|
||
tox
|
||
|
||
See it’s that simple!
|
||
|
||
Pull requests!
|
||
--------------
|
||
|
||
So the pull request approval rules are pretty simple:
|
||
|
||
* All pull requests must pass unit tests
|
||
* All pull requests must be reviewed and approved by at least one current collaborator on the project
|
||
* All pull requests must pass flake8 checks
|
||
* If you decide to remove/change anything from any common interface a deprecation message should accompany it.
|
||
* If you implement a new feature you should have at least one unit test to accompany it.
|
||
|
||
Documentation
|
||
-------------
|
||
|
||
Sanic’s documentation is built using `sphinx`_. Guides are written in
|
||
Markdown and can be found in the ``docs`` folder, while the module
|
||
reference is automatically generated using ``sphinx-apidoc``.
|
||
|
||
To generate the documentation from scratch:
|
||
|
||
.. code:: bash
|
||
|
||
sphinx-apidoc -fo docs/_api/ sanic
|
||
sphinx-build -b html docs docs/_build
|
||
|
||
The HTML documentation will be created in the ``docs/_build`` folder.
|
||
|
||
.. warning::
|
||
One of the main goals of Sanic is speed. Code that lowers the
|
||
performance of Sanic without significant gains in usability, security,
|
||
or features may not be merged. Please don’t let this intimidate you! If
|
||
you have any concerns about an idea, open an issue for discussion and
|
||
help.
|
||
|
||
.. _sphinx: http://www.sphinx-doc.org/en/1.5.1/ |