Участие в разработке CulicidaeLab
Прежде всего, благодарим вас за то, что вы решили внести свой вклад в CulicidaeLab
! Мы очень рады видеть вас здесь и ценим ваш интерес к улучшению этого проекта. Каждый вклад, от исправления небольшой опечатки до добавления крупной новой функции, очень важен.
Этот документ содержит руководство по участию в проекте. Пожалуйста, внимательно прочтите его, чтобы обеспечить гладкий и эффективный процесс совместной работы.
Кодекс поведения
Этот проект и все его участники руководствуются Кодексом поведения CulicidaeLab. Участвуя в проекте, вы обязуетесь соблюдать этот кодекс. Пожалуйста, сообщайте о неприемлемом поведении по адресу iloncka.ds@gmail.com.
Как я могу внести вклад?
Существует множество способов внести свой вклад, и мы приветствуем каждый из них:
- Сообщение об ошибках: Если вы нашли ошибку, пожалуйста, откройте «issue» (проблему) и предоставьте подробную информацию, включая шаги для ее воспроизведения.
- Предложение улучшений: У вас есть идея для новой функции или улучшения существующей? Откройте «issue», чтобы начать обсуждение.
- Написание документации: Помогите нам улучшить нашу документацию, исправляя опечатки, проясняя непонятные разделы или добавляя новые примеры.
- Отправка пулл-реквестов: Если вы готовы внести свой вклад в код, это лучший способ.
Сообщение об ошибках
Перед созданием отчета об ошибке, пожалуйста, проверьте существующие «issues», чтобы убедиться, что о проблеме еще не сообщалось. Если нет, пожалуйста, откройте новую «issue» и включите следующее:
- Четкий и описательный заголовок.
- Версия
culicidaelab
, которую вы используете. - Ваша операционная система и версия Python.
- Пошаговое описание того, как воспроизвести ошибку.
- Фрагмент кода, демонстрирующий проблему.
- Полная трассировка стека любых сообщений об ошибках.
Предложение улучшений
Мы будем рады услышать ваши идеи по улучшению CulicidaeLab
. Чтобы предложить улучшение, пожалуйста, откройте «issue» и предоставьте:
- Четкий и описательный заголовок.
- Подробное объяснение предлагаемого улучшения и почему оно будет полезным.
- (Необязательно) Примерный набросок того, как функция может быть реализована или использована в коде.
Настройка среды разработки
Готовы написать код? Вот как настроить вашу среду разработки.
-
Сделайте форк репозитория Начните с создания форка основного репозитория на GitHub.
-
Клонируйте ваш форк Клонируйте ваш форк-репозиторий на свой локальный компьютер:
-
Создайте виртуальное окружение Настоятельно рекомендуется работать в виртуальном окружении. Вы можете использовать
Активируйте окружение:uv
или встроенный в Python модульvenv
. -
Установите зависимости Установите проект в редактируемом режиме (
Эта команда устанавливает все необходимое для разработки, включая инструменты для тестирования, линтеры и генераторы документации.-e
) вместе со всеми зависимостями для разработки ([dev]
). -
Установите хуки pre-commit Мы используем
Это разовая настройка для каждого клона. Теперь при каждом выполненииpre-commit
для автоматического запуска линтеров и форматеров перед каждым коммитом. Это обеспечивает качество и согласованность кода во всем проекте.git commit
будут запускаться хуки, определенные в.pre-commit-config.yaml
.
Наш процесс разработки
Мы используем набор инструментов для поддержания качества кода. Ваша настройка pre-commit
обрабатывает все это автоматически, но полезно знать, что происходит «под капотом».
- Форматирование:
black
иruff-format
используются для детерминированного и согласованного форматирования кода. - Линтинг:
ruff
иflake8
выявляют распространенные ошибки программирования и проблемы со стилем. - Проверка типов:
mypy
выполняет статическую проверку типов для поиска ошибок, связанных с типами, до времени выполнения. - Безопасность:
bandit
сканирует код на наличие распространенных уязвимостей безопасности. - Модернизация:
pyupgrade
автоматически обновляет синтаксис до более новых версий Python.
Запуск тестов
Чтобы убедиться, что ваши изменения не привели к регрессиям, пожалуйста, запустите полный набор тестов с помощью pytest
.
Написание документации
Хорошая документация так же важна, как и хороший код. Если вы добавляете или изменяете функцию, пожалуйста, обновите документацию в каталоге docs/
соответствующим образом.
Вы можете предварительно просмотреть свои изменения локально, выполнив:
Это запустит локальный сервер, и вы сможете просмотреть сайт документации в своем браузере по адресуhttp://127.0.0.1:8000
.
Отправка пулл-реквеста
Когда вы будете готовы отправить свои изменения, пожалуйста, следуйте этим шагам:
-
Создайте новую ветку Создайте описательную ветку для ваших изменений от ветки
main
. -
Внесите свои изменения Напишите свой код, добавьте или обновите тесты и напишите документацию.
-
Закоммитьте свою работу Закоммитьте свои изменения с четким и кратким сообщением. Когда вы делаете коммит, запустятся хуки
pre-commit
. Если они не сработают, исправьте указанные проблемы и закоммитьте снова. -
Отправьте изменения в ваш форк Отправьте вашу ветку в ваш форк-репозиторий на GitHub.
-
Откройте пулл-реквест Перейдите в репозиторий
CulicidaeLab
на GitHub и откройте пулл-реквест.- Укажите четкий заголовок и подробное описание ваших изменений.
- Если ваш PR решает существующую «issue», сошлитесь на нее, включив
Closes #123
в описание.
-
Ревью кода Как только ваш PR будет отправлен, мейнтейнер его рассмотрит. Мы можем предложить некоторые изменения или улучшения. Мы сделаем все возможное, чтобы предоставить своевременную и конструктивную обратную связь.
Еще раз спасибо за ваш интерес к участию в проекте! Мы с нетерпением ждем ваших предложений.