Вклад

Если вы хотите внести свой вклад в Каналы, то читайте дальше - мы поощряем как большие, так и маленькие вклады, как от начинающих, так и от опытных разработчиков.

Над чем я могу работать?

Мы ищем помощь в следующих областях:

  • Написание документации и учебников

  • Исправление ошибок и тестирование

  • Полировка функций и периодическая разработка новых функций

  • Тематические исследования и письменные работы

Вы можете найти, над чем мы хотим поработать, в списке проблем на GitHub для каждого из подпроектов Channels:

  • Channels issues, за интеграцию Django и общие усилия по проекту

  • Daphne issues, для завершения HTTP и Websocket

  • asgiref issues, для базовой библиотеки ASGI/бэкенда памяти

  • channels_redis issues, для бэкенда канала Redis

Вопросы распределены по категориям по уровню сложности:

  • exp/beginner: Простые вопросы, подходящие для начинающего автора.

  • exp/intermediate: Умеренные проблемы, для решения которых требуется умение и день-два.

  • exp/advanced: Сложные вопросы, требующие специальных знаний и потенциально недель работы.

Они также классифицируются по типам:

  • documentation: Проблемы с документацией. Выберите их, если вы хотите помочь нам в написании документации.

  • bug: Ошибка в существующем коде. Обычно проще для новичков, так как есть определенная вещь, которую нужно исправить.

  • enhancement: Новая функция для кода; может быть немного более открытой.

Вам следует отфильтровать список проблем по уровню опыта и типу работы, которую вы хотели бы выполнять, а затем, если вы хотите взять что-то на себя, оставьте комментарий и назначьте себя на это. Если вам нужен совет о том, как взяться за ошибку, оставьте комментарий с вопросом об этом или зайдите на IRC-канал #django-channels на Freenode, и мы будем рады помочь.

Проблемы также являются лишь предполагаемым списком - любое предложение помощи приветствуется, если оно соответствует целям проекта, но вам следует создать проблему для того, что вы хотите сделать, и сначала обсудить ее, если она относительно большая (но если вы просто нашли небольшую ошибку и хотите ее исправить, то вполне можно сразу отправить нам запрос на исправление).

Я начинающий вкладчик/разработчик - могу ли я помочь?

Конечно! Проблемы, помеченные exp/beginner, являются идеальным местом для начала работы, так как они обычно небольшие и четко сформулированные. Если вам нужна помощь в решении одной из них, зайдите на IRC-канал #django-channels на Freenode или свяжитесь с Эндрю напрямую по адресу andrew@aeracode.org.

Как начать и запустить тесты?

Сначала необходимо клонировать git-репозиторий в локальный каталог:

git clone https://github.com/django/channels.git channels

Далее, вы можете создать виртуальную среду для запуска тестов и разработки; для этого можно использовать virtualenvwrapper, pipenv или просто virtualenv.

Затем, cd в каталог channels и установите его редактируемым в вашу среду:

cd channels/
python -m pip install -e .[tests]

Обратите внимание на раздел [tests]; это говорит pip, что вы хотите установить tests extra, который принесет тестовые зависимости, такие как pytest-django.

Затем можно запускать тесты:

pytest

Также в корне хранилища находится файл tox.ini. Примеры команд:

$ tox -l
py36-dj11
py36-dj21
py36-dj22
py37-dj11
py37-dj21
py37-dj22

# run the test with Python 3.7, on Django 2.2 and Django master branch
$ tox -e py37-dj22 && tox -e py37-djmaster

Обратите внимание, что tox также может передавать аргументы в pytest. При использовании pdb с pytest, передавайте опцию -s в pytest как таковую:

tox -e py37-dj22 -- -s

Можете ли вы заплатить мне за мое время?

К сожалению, средства Mozilla, которыми мы располагали ранее, исчерпаны, поэтому мы больше не можем оплачивать взносы. Спасибо всем, кто принял участие!

Как сделать освобождение?

Если у вас есть доступ к фиксации, освобождение включает в себя следующие шаги:

  • Создайте новую запись в файле CHANGELOG.txt и кратко опишите изменения

  • Создайте новую страницу релиза в документации под docs/releases и добавьте туда журнал изменений с дополнительной информацией, где это необходимо.

  • Добавьте ссылку на примечания к новому выпуску в docs/releases/index.rst.

  • Установите новую версию в __init__.py.

  • Соберите все это в один коммит и пометьте его номером новой версии. Разместите коммит и метку, и Travis автоматически соберет и выпустит новую версию в PyPI, если все тесты пройдут.

Процесс выпуска для channels-redis и daphne похож, но в них нет двух шагов в docs/.

Вернуться на верх