Пожалуйста, если вы работаете над данным проектом, внимательно прочитайте и следуйте правилам описанным в данном документе.
- Составляем backlog, перемещая нужные задачи из Issues на доску в колонку
To do
- Обсуждаем, кто какие задачи берёт
- Забираем себе задачу из
To do
, перемещая из колонкиTo do
вIn progress
- Подтягиваем текущие изменения в ветке
dev
- Создаём из
dev
ветку под задачу с названием по шаблону - Работаем над задачей
- На выполненную задачу открываем
Pull Request
в веткуdev
- Этап ревью. Задачу перемещаем из
In progress
вReview in progress
- Выполняем командное ревью (остальные участники команды выполняют ревью кода)
- Ожидаем менторское ревью
- При доработке временно перемещаем задачу в
In progress
- Если задача завершена, выполняем сквош коммитов
- Закрываем
Pull Request
вливанием вdev
- Выполненную задачу переносим из
Review in progress
вDone
- Возвращаемся к пункту
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).
Договорённости по написанию кода.
- JS/TS (детально см.
.eslintrc.js
): https://github.com/airbnb/javascript, @typescript-eslint/recommended, react/recommended, react-hooks/recommended - CSS (детально см.
.stylelintrc.json
): stylelint-config-standard, stylelint-config-hudochenkov/order
Также в проекте используются:
- Prettier, необходимо интегрировать его в свой редактор,
- EditorConfig
Для SCSS:
- не использовать в коде parent selector (&)
- все пиксельные размеры конвертируются в
rem
автоматически. Если нужно оставить размер в пикселях, то надо указывать его большими буквами (PX
), и ставить// prettier-ignore
перед этой строкой
Для JS/TS:
- деструктуризация аргументов функции делается inline (в самих аргументах), если у функции 1 аргумент и если деструктурирются 3 и менее свойства. В ином случае ESLint выдаст ошибку
Для npm-скриптов
- если со скриптом возникают проблемы из-за отсуствия кавычек у некоторых выражений внутри скрипта (обычно это бывает на Windows), то нужно применять только двойные кавычки
Состав docker-образа:
- Alpine Linux
- Node 14
./dist/static
— дистрибутив web-приложения./dist/server.js
— дистрибутив сервераstart-server.js
— запуск сервера
https://devcenter.heroku.com/articles/heroku-cli
Если вы этого ещё не делали, зарегистрируйтесь/войдите:
heroku login
Вход в реестр контейнеров:
heroku container:login
Команды выполнять в корневой директории проекта
Создание docker-образа по Dockerfile
и отправка в реестр:
heroku container:push web
Выпустить релиз:
heroku container:release web