Skip to content

Latest commit

 

History

History
180 lines (115 loc) · 8.23 KB

CONTRIBUTING.md

File metadata and controls

180 lines (115 loc) · 8.23 KB

Contributing

Прежде, чем начать

Пожалуйста, если вы работаете над данным проектом, внимательно прочитайте и следуйте правилам описанным в данном документе.

Рабочий процесс спринта

  1. Составляем backlog, перемещая нужные задачи из Issues на доску в колонку To do
  2. Обсуждаем, кто какие задачи берёт
  3. Забираем себе задачу из To do, перемещая из колонки To do в In progress
  4. Подтягиваем текущие изменения в ветке dev
  5. Создаём из dev ветку под задачу с названием по шаблону
  6. Работаем над задачей
  7. На выполненную задачу открываем Pull Request в ветку dev
  8. Этап ревью. Задачу перемещаем из In progress в Review in progress
    1. Выполняем командное ревью (остальные участники команды выполняют ревью кода)
    2. Ожидаем менторское ревью
    3. При доработке временно перемещаем задачу в In progress
  9. Если задача завершена, выполняем сквош коммитов
  10. Закрываем Pull Request вливанием в dev
  11. Выполненную задачу переносим из Review in progress в Done
  12. Возвращаемся к пункту 3 за следующей задачей

Идеи и проблемы

Идеи и проблемы касательно проекта заносим в Issues

Спринт

Спринт длится 2 недели.

В начале спринта необходимо иметь список задач на спринт, размещённый на доске в колонке To do, состоящий из задач Issues. Список отсортирован в порядке убывания важности (сверху самые важные).

To do содержит запланированные на спринт задачи, которые необходимо закрыть к концу спринта, закладывая в закрытие время на ревью.

Ветки

Основные ветки

main — ветка для прод-версии продукта.

dev — ветка для разработки. Ветка в которую сливаются все выполненные задачи.

Ветки под задачи

Важно! 1 задача — 1 ветка!

Под каждую задачу связанную с кодом, создаём Issue, чтобы получить уникальный порядковый номер задачи.

Используем порядковый номер задачи для именования веток под задачи.

Шаблон: task-X, где проект название проекта, а X порядковый номер задачи Issue.

Примеры:

game-1
game-2
game-71
game-144

Коммиты

Придерживаемся следующего соглашения о коммитах:

Сообщение коммита должно начинаться с оговоренных типов, например с feat, fix.

Непосредственно сообщение от типа отделяется знаком :, после двоеточия пробел.

Примеры:

git commit -m "task-1: feat: реализовать компонент Input"
git commit -m "task-9: fix: исправить отступы в мобильной версии"

Тип коммита и сообщение коммита начинаются с маленькой буквы. Сообщение коммита пишется на русском языке и должно отвечать на вопрос — Что сделать?.

Что сделать? Добавить
Что сделать? Реализовать
Что сделать? Исправить

Типы коммитов

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

fix — должен использоваться, когда коммит исправляет баг в вашем приложении.

docs — работа над документацией и файлами с описанием проекта и процессов (README.md, CONTRIBUTING.md).

Code style

Договорённости по написанию кода.

Конфиги ESLint и Stylelint

Другие инструменты

Также в проекте используются:

Другие правила

Для SCSS:

  • не использовать в коде parent selector (&)
  • все пиксельные размеры конвертируются в rem автоматически. Если нужно оставить размер в пикселях, то надо указывать его большими буквами (PX), и ставить // prettier-ignore перед этой строкой

Для JS/TS:

  • деструктуризация аргументов функции делается inline (в самих аргументах), если у функции 1 аргумент и если деструктурирются 3 и менее свойства. В ином случае ESLint выдаст ошибку

Для npm-скриптов

  • если со скриптом возникают проблемы из-за отсуствия кавычек у некоторых выражений внутри скрипта (обычно это бывает на Windows), то нужно применять только двойные кавычки

Доставка

Docker

Состав docker-образа:

  • Alpine Linux
  • Node 14
  • ./dist/static — дистрибутив web-приложения
  • ./dist/server.js — дистрибутив сервера
  • start-server.js — запуск сервера

Доставка на Heroku

Установка Heroku

https://devcenter.heroku.com/articles/heroku-cli

Реестр контейнеров

Если вы этого ещё не делали, зарегистрируйтесь/войдите:

heroku login

Вход в реестр контейнеров:

heroku container:login

Отправка

Команды выполнять в корневой директории проекта

Создание docker-образа по Dockerfile и отправка в реестр:

heroku container:push web

Выпустить релиз:

heroku container:release web