vknet_vk/.github/CONTRIBUTING.md
2018-08-17 21:06:42 +03:00

6.2 KiB
Raw Permalink Blame History

1. Сделайте "форк" репозитория vk, а затем клонируйте его в свою локальную среду разработки

git clone git@github.com:имя-вашего-пользователя/vk.git

2. Добавьте основной репозиторий vk как удаленный (remote) с названием "upstream"

Перейдите в директорию куда вы сделали клон на первом шаге и выполните следующую команду:

git remote add upstream git://github.com/vknet/vk.git

3. Получите последние изменения кода из основного репозитория vk

git fetch upstream

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

4. Создайте новую ветку, основанную на текущей develop ветке vk

git checkout upstream/develop
git checkout -b 999-название-вашей-ветки

5. Пишем код

Убеждаемся, что он работает :)

6. Cделайте коммит изменений

Добавляем файлы c изменениями:

# один файл
git add путь/до/вашего/файла.cs
# все измененные файлы
git add .

Если добавить в описание коммита номер тикета #XXX, тогда GitHub автоматически свяжет его с тикетом над которым вы работаете:

git commit -m "Описание коммита для тикета #42"

7. Получите последние изменения кода из upstream (добавили на втором шаге)

git pull upstream develop

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

8. Имея код без конфликтов отправьте изменения на GitHub

git push -u origin 999-название-вашей-ветки

9. Пришлите pull request в основной репозиторий vk

Перейдите в свой репозиторий на GitHub'e и нажмите "Pull Request", выберите свою ветку справа и добавьте описание вашего "Pull Request'a", чтобы GitHub автоматически связал его с тикетом добавьте в комментарий номер тикета '#999'.

10. Ожидайте рассмотрения вашего кода

Кто-то рассмотрит ваш код и может быть попросит внести изменения, если это произошло возвращайтесь к 5 шагу.

11. Удаление ветки

После того как ваш код приняли или отклонили, вы можете удалить ветку из локального репозитория и GitHub'a

git checkout develop
git branch -D 999-название-вашей-ветки
git push origin --delete 999-название-вашей-ветки

Все шаги кратко

git clone git@github.com:ваше-имя-пользователя/vk.git
git remote add upstream git://github.com/vknet/vk.git
git fetch upstream
git checkout upstream/develop
git checkout -b 999-название-вашей-ветки
 
/* пишем код */

git add путь/до/вашего/файла.cs
git commit -m "Описание коммита для тикета #42"
git pull upstream develop
git push -u origin 999-название-вашей-ветки
  1. При разработке / доработке функционала необходимо писать тесты
  2. Выберите / Заведите issue и укажите в комментарии что взяли в работу: https://github.com/vknet/vk/issues

Примечание

В *.cs файлах требуется использовать для отступов Tab

Правила разработки:

  1. Если вы ведете разработку в VS2017/2019 c использованием Resharper, либо Rider применяйте пожалуйста принятое форматирование для проекта. Правила описаны в .editorconfig и применяются Resharper/Rider при выполнении команды Code | Reformat code (Ctrl+Alt+Enter).
  2. Дробите большую задачу на маленькие. Например необходимо для категории Message добавить несколько новых методов.
  • 2.1. Реализуйте один метод.
  • 2.2. Напишите на него тесты.
  • 2.3. После проверки прохождения тестов сделайте коммит, опишите в коммите краткую суть проделанной работы: "Реализовал метод Send". Для более полного понимания прочитайте статью: https://m.habr.com/post/416887/
  • 2.4. Возьмите следующий метод для реализации и вернитесь к пункту 2.1 и так пока не выполните работу до конца.
  1. Сделайте Pull Request
  • Проверьте что все тесты проходят, в противном случае найдите причину и локализуйте ее
  • После получения ваших изменений будет проведено краткое ревью проделанной работы
  • Если есть замечания устраните их