Руководство по участию в разработке
Мы приветствуем вклад в Django-RMQ. Это руководство описывает базовый локальный процесс разработки, тестирования и работы с документацией.
Если вы не уверены, подходит ли ваше изменение проекту, сначала откройте issue или draft pull request.
Настройка окружения
Проект использует uv для управления зависимостями Python. Для установки следуйте официальному руководству
в документации uv.
После клонирования репозитория установите зависимости:
uv sync --all-extras
Линтинг
Запустите Ruff локально перед открытием pull request:
uv run ruff check .
uv run ruff format --check .
Тестирование
Запустите набор тестов с pytest:
uv run pytest
Также можно использовать tox для тестирования в настроенных окружениях:
tox
Работа с документацией
Документация собирается с помощью Docusaurus.
Установите Node-зависимости из каталога docs:
cd docs
npm install
Запустите сервер документации с горячей перезагрузкой:
npm run docs:dev
Соберите и просмотрите продакшн-версию документации:
npm run docs:build
npm run docs:serve
Соглашения проекта
Весь Python-код в этом репозитории следует приведённым ниже правилам (контролируются Ruff и pyrefly в CI):
- Полная типизация — аннотируйте каждый параметр функции, возвращаемое значение и переменную. Проект нацелен на
строгий режим
pyrefly. - Без относительных импортов — всегда используйте абсолютные импорты (
from django_rmq.producer import Producer, а неfrom .producer import Producer). - Именованные параметры при вызове — передавайте аргументы по ключу где возможно (
Producer(queue='orders').publish(body='...')). uv runвместоpython— запускайте скрипты и management-команды какuv run python manage.py ...илиuv run pytest.