mirror of
https://github.com/jazzband/django-axes.git
synced 2026-03-16 22:30:23 +00:00
72 lines
2.3 KiB
ReStructuredText
72 lines
2.3 KiB
ReStructuredText
.. image:: https://jazzband.co/static/img/jazzband.svg
|
||
:target: https://jazzband.co/
|
||
:alt: Jazzband
|
||
|
||
This is a `Jazzband <https://jazzband.co>`_ project. By contributing you agree to abide by the `Contributor Code of Conduct <https://jazzband.co/about/conduct>`_ and follow the `guidelines <https://jazzband.co/about/guidelines>`_.
|
||
|
||
|
||
Contributions
|
||
=============
|
||
|
||
All contributions are welcome!
|
||
|
||
It is best to separate proposed changes and PRs into small, distinct patches
|
||
by type so that they can be merged faster into upstream and released quicker.
|
||
|
||
One way to organize contributions would be to separate PRs for e.g.
|
||
|
||
* bugfixes,
|
||
* new features,
|
||
* code and design improvements,
|
||
* documentation improvements, or
|
||
* tooling and CI improvements.
|
||
|
||
Merging contributions requires passing the checks configured
|
||
with the CI. This includes running tests and linters successfully
|
||
on the currently officially supported Python and Django versions.
|
||
|
||
|
||
Development
|
||
===========
|
||
|
||
You can contribute to this project forking it from GitHub and sending pull requests.
|
||
|
||
First `fork <https://help.github.com/en/articles/fork-a-repo>`_ the
|
||
`repository <https://github.com/jazzband/django-axes>`_ and then clone it::
|
||
|
||
$ git clone git@github.com:<you>/django-axes.git
|
||
|
||
Initialize a virtual environment for development purposes::
|
||
|
||
$ mkdir -p ~/.virtualenvs
|
||
$ python3 -m venv ~/.virtualenvs/django-axes
|
||
$ source ~/.virtualenvs/django-axes/bin/activate
|
||
|
||
Then install the necessary requirements::
|
||
|
||
$ cd django-axes
|
||
$ pip install -r requirements.txt
|
||
|
||
Unit tests are located in the ``axes/tests`` folder and can be easily run with the pytest tool::
|
||
|
||
$ pytest
|
||
|
||
Prospector runs a number of source code style, safety, and complexity checks::
|
||
|
||
$ prospector
|
||
|
||
Mypy runs static typing checks to verify the source code type annotations and correctness::
|
||
|
||
$ mypy .
|
||
|
||
Before committing, you can run all the above tests against all supported Python and Django versions with tox::
|
||
|
||
$ tox
|
||
|
||
Tox runs the same test set that is run by GitHub Actions, and your code should be good to go if it passes.
|
||
|
||
If you wish to limit the testing to specific environment(s), you can parametrize the tox run::
|
||
|
||
$ tox -e py39-django32
|
||
|
||
After you have pushed your changes, open a pull request on GitHub for getting your code upstreamed.
|