Skip to content

Latest commit

 

History

History
116 lines (77 loc) · 9.64 KB

CONTRIBUTING.md

File metadata and controls

116 lines (77 loc) · 9.64 KB

Пам-парам. Приветствую смотрящих

Последнее изменение: 13.03.2023

Добро пожаловать в пометку контрибьютора. Здесь изложены некоторые правила, которые помогут правильно оформить код в соответствиями с правилами проекта и выложить пулл реквест.

Язык коммуникации в проекте - Русский, но названия коммитов, пулл реквестов и т.д. должны быть на Английском

Новым контрибьюторам

Баг репорты

Создание нового баг репорта

Если вы заметили какие-либо баги или недочеты в библиотеке, для начала проверьте на наличие такого баг репорта.

Если же никто не репортил такой ошибки, можете смело создавать баг репорт здесь. Желательно описать ошибку коротко и конкретно, без лишней информации и воды

Разработчик рассмотрит ваш репорт и, возможно, исправит его (Или напишет что в нем не так :p)

Помощь в решении баг репорта

Вы настолько отважный, что готовы пофиксить баг, который кто-то зарепортил?

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

В последствии, когда будете открывать ваш пулл реквест, укажите какой баг репорт вы исправили, чтобы он закрылся автоматически.

Если не знаете, как правильно указать баг репорт для автоматического закрытия, посмотрите этот гайд

Пулл реквесты

Кто-то дошел до этого момента? Удивительно...

Рад, что вы заинтересованы этим проектом и хотите помочь в его развитии.

Для этого, выполните пару этапов, которые помогут облегчить проверку ваших изменений и их принятия.

Так как данный проект еще находится на раннем этапе своего развития, данные правила не являются пока что полными и могут быть изменены в будущем.

(Ну и еще сильно строгими они не будут :D)

Подготовка ОС

Для начала нужно определиться с операционной системой.

Поскольку данный проект был создан и разрабатывается на macOS, сначала опишу что нужно сделать тем, кто хочет разрабатывать тоже на ней:

  1. В первую очередь, необходимо установить последнюю актуальную версию Python. Сделать это можно с помощью Homebrew и пару команд:
    • Для начала установите Homebrew, если он у вас отсутствует. Информация об установке находится здесь
    • Далее введите следующую команду: brew install python
  2. Установите Poetry: brew install poetry
  3. Находясь в папке проекта, введите в Терминале: poetry shell и poetry install. Это запустит виртуальное окружение Poetry и установит необходимые зависимости.
  4. Если вы используете какие-нибудь IDE, не забудьте настроить виртуальное окружение и там

Пользователям Windows нужно пройти пару этапов:

  1. Установите последнюю актуальную версию Python
  2. Установите Poetry:
  3. Выполните пункты 3 и 4 из гайда выше для юзеров macOS

Пользователям Linux нужно пройти пару этапов:

  1. Установите последнюю актуальную версию Python (Лучше загуглить, чем писать тут как это делать под каждый дистрибутив)
  2. Установите Poetry используя официальную команду

    Если же у вас не стоит нужного алиаса под команду python, то не забудьте поменять вызов интерпретатора в конце команды

  3. Выполните пункты 3 и 4 из гайда выше для юзеров macOS

    Если возникнут какие-либо проблемы с Python или Poetry, то к сожалению, вам придется решать их самостоятельно, так как разработчик не имеет опыта разработки на Linux :c

Подготовка к отправке пулл реквеста

Вижу, вы уже сделали какие-либо правки или замутили супер-дупер фичу от которой все девочки ваши*

*Но это не точно

Чтож, вам осталось пройти пару этапов перед финальным боссом пулл реквестом:

  1. Для начала, убедитесь, что ваши новые методы или классы имеют документацию (можно даже базовую). Данный проект использует документацию типа reStructuredText, пример которой вы можете найти в интернете или в имеющихся файлах.
  2. [Не обязательно] Запустите pre-commit install для установки необходимых хуков для проверки файлов при коммите.

    Также можно запустить команду pre-commit run --all-files для запуска хуков без иницирования коммита.

  3. Проверить не сломалась ли типизация с помощью команды mypy shikithon/
  4. Проверить, что проект собирается, введя в Терминал команду: poetry build

Отправка пулл реквеста

Ура! Момент настал, вы уже почти на финише, что же нужно сделать для завершения?

  1. Залейте свои изменения в свой репозиторий, предварительно сделав форк этого репозитория

    Можно залить все в существующую ветку, однако желательно создать специальную ветку, в названии которой кратко опишите суммарное изменение

  2. Создайте пулл реквест. В качестве базовой ветки, выберите ветку develop
  3. Опишите кратко что вы поменяли/исправили/добавили, и, если хотите, распишите подробнее в секции комментария
  4. Ожидайте...
  5. Если изменения пройдут ревью, пулл реквест будет принят и слит в ветку develop.

    В противном случае, разработчик оставит свои комментарии по поводу изменений

Если вы закрываете какой-то баг репорт, гляньте пометку об этом выше в разделе "Помощь в решении баг репорта", дабы автоматически закрыть этот баг репорт

Пожелания по данному документу

Если вы считаете, что здесь можно добавить что-нибудь или исправить недочеты, форкните репозиторий и измените файл (Можно даже в веб-интерфейсе)

После этого, выполните этапы, в секции "Отправка пулл реквеста" выше