Хотите помочь с django-ulogin?
==============================

Если у вас есть желание преобщиться к чудесному миру opensource, или же приложение не устраивает вас в текущем его виде, то вы можете внести свою лепту в его улучшение.


Сообщайте об ошибках
--------------------

Если вы нашли ошибку, или считаете, что всё должно быть совсем не так, или просто хотите что-то предложить, то к вашим услугам тикет-система на Гитхабе: https://github.com/marazmiki/django-ulogin/issues.


Пишите код
----------
Есть желание поучаствовать в разработке приложения? Форкайте исходные коды https://github.com/marazmiki/django-ulogin и пишите свой. Может, он исправит какую-то ошибку, или описку в документации. А может, реализует какую-то незамеченную, но очень важную новую возможность в программе.

После того, как вы внесёте необходимые изменения в код, смело Делайте пулл-реквест, чтобы ваши изменения попали в основной репозиторий и принимайте благодарности.


Рекомендации для написания кода
-------------------------------

* Пишите код таким образом, чтобы он соответствовал `PEP-0008 <https://www.python.org/dev/peps/pep-0008/>`_. Обращайте внимание на советы по оформлению кода, которые даёт IDE (если пользуетесь). Также можно пользоваться линчевателями ``pylint`` и ``flake8``. Если у вас установлен GNU Make (обычно легко ставится или изначально присутствует на большинстве unix- и linux-систем), можете воспользоваться командой ``make flake8``, которая найдёт все ошибки: ::

    $ make flake8


* Не пренебрегайте тестами и не забывайте их запускать. В идеале, `тест должен быть написан до написания собственно кода <https://ru.wikipedia.org/wiki/%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D1%87%D0%B5%D1%80%D0%B5%D0%B7_%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5>`_. Быстрый запуск тестов на текущем окружении можно выполить таким образом: ::

    $ python setup.py test

или, если установлен GNU Make, таким: ::

    $ make test

Однако, поскольку django-ulogin является библиотекой и должна работать в различных окружениях (несколько версий Django, различные версии языка Python), необходимо так же проверить, что код будет выполняться там. Это делается с помощью утилиты `tox <http://tox.readthedocs.io/en/latest/>`_. ::

    $ tox

Создание всех окружений и прогон на них тестов занимает некоторое время (около 10-15 минут, в зависимости от мощности компьютера и качества подключения к сети). Список поддерживаемых конфигураций, на которых должно отрабатывать приложение, задаётся в файле ``tox.ini`` из корня репозитория.

* Когда Вы сделаете *PULL REQUEST*, сервис для неприрывных интеграций `Travis CI <https://travis-ci.org>`_ автоматически проверит, работает ли программа на всех заявленных окружениях. И если увидите красную полосу, исправьте, пожалуйста, ошибки.

* Ну и, конечно, не забудьте добавить себя в список авторов, который хранится в ``docs/source/authors.rst``. Желательно с указанием настоящего имени и e-mail


