Skip to content

Commit db6d40c

Browse files
kuduzowkuduzow
andauthored
Изменено описание README и CONTRIBUTING (#293)
* Дополнена информация для участников проекта * Изменено описание проекта. Добавлена ссылка на CONTRIBUTING.md Co-authored-by: kuduzow <admin@intocode.ru>
1 parent 2b94cc5 commit db6d40c

File tree

2 files changed

+164
-27
lines changed

2 files changed

+164
-27
lines changed

CONTRIBUTING.md

Lines changed: 130 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,136 @@
1-
## Начало работы
1+
# Участие в проекте
22

3-
_Все изменения в проекте принимаются только после успешного ci и код ревью. Каждый запрос на изменение оформляется как новый pull request._
3+
Любой желающий может внести свой вклад в развитие данного проекта.
44

5-
1. Сфоркай репозиторий, склоринуй на локалку и установи зависимости.
6-
2. Сразу поставь `upstream`: `git remote add upstream https://github.com/intocode/iqa-frontend.git`.
7-
3. Склонируй и установи [серверную часть](https://github.com/intocode/iqa-backend). Инструкцию по запуску читай в том же репозитории.
8-
4. Определи свои задачи на текущий спринт вместе с тимлидом.
9-
5. Создай новую ветку под текущую задачу. Начни писать код.
10-
6. Чекни свои изменения на предмет прохождения тестов и других проверок: `npm run check`.
11-
7. Открой новый `pull request` с изменениями и сообщи о нём в чате разработки.
5+
Помощь может заключаться не только в непосредственной разработке, но и в поиске ошибок, исправлении опечаток, предложении новых идей, которые сделают проект лучше.
6+
7+
## Как предложить свою идею или указать на найденный баг?
8+
9+
Открой раздел [Issues](https://github.com/intocode/iqa-frontend/issues). Все текущие и будущие задачи обсуждаются здесь. Если в списке открытых вопросов нет твоей идеи, то смело создавай новый Issue с предложением.
10+
11+
## Как начать выполнять задачу?
12+
13+
Открой раздел [Issues](https://github.com/intocode/iqa-frontend/issues). Выбери задачу, над которой хотел бы поработать. Внимательно ознакомься с описанием. Если остались вопросы, то задавай их в обсуждении Issue.
14+
15+
Убедись, что задача тебе полностью понятна и только после этого приступай к её реализации. Если задача связана с написанием кода, то подробности выполнения такой задачи указаны в разделе ниже.
16+
17+
## Технические требования
18+
19+
Ко всем выполняемым задачам есть определенные требования. Они довольно простые:
20+
21+
**Один Pull Request должен закрывать только одну задачу.** Нельзя включать в Pull Request никакие изменения, которые напрямую не относятся к теме пуллреквеста, даже если это просто исправление опечатки в тексте.
22+
23+
**Pull Request должен закрывать решаемую задачу полностью.** Нельзя закрывать только часть задачи, другую часть оставив на другой Pull Request. Если задача требует разбивки на более мелкие задачи, то это нужно обсудить в Issue этой задачи и в случае необходимости создать новые Issue для подзадач.
24+
25+
**Весь код должен идти с комментариями.** Разрешается не комментировать участки кода, которые можно однозначно понять в рамках своего контекста. Комментарии не должны содержать грамматические ошибки.
26+
27+
_Пример 1:_
28+
29+
```javascript
30+
useEffect(() => {
31+
dispatch(fetchUsers());
32+
}, [dispatch]);
33+
```
34+
35+
В данном случае можно недвусмысленно понять что делает этот код, поэтому его можно не комментировать.
1236

1337
---
1438

15-
Основные инструменты проекта:
39+
_Пример 2:_
40+
41+
```javascript
42+
// создаем переменную стейта, чтобы сделать поле ввода логина управляемым компонентом
43+
const [text, setText] = useState(null);
44+
```
45+
46+
В этом случае код нужно было прокомментировать, потому что переменная `text` может использоваться как угодно и нужно вносить ясность в момент её создания.
47+
48+
---
49+
50+
_Пример 3:_
51+
52+
```javascript
53+
const [loginFieldValue, setLoginFieldValue] = useState("");
54+
```
55+
56+
Данной код выполяет ту же задачу, но за счет хорошего нейминга переменных можно избежать неоднозначности, поэтому дополнительный комментарий не требуется.
57+
58+
## Как приступить к разработке
59+
60+
### Подготовка git
61+
62+
**1. Сделай fork текущего репозитория**.
63+
64+
**2. Склонируй свой fork на рабочий компьютер**:
65+
66+
```shell
67+
git clone https://github.com/твой-логин/iqa-frontend.git
68+
```
69+
70+
**3. Добавь головной сервер `upstream`**:
71+
72+
```shell
73+
git remote add upstream https://github.com/intocode/iqa-frontend.git
74+
```
75+
76+
**4. Создай новую ветку под выполняемую задачу**:
77+
78+
```shell
79+
git switch -c my-feature
80+
```
81+
82+
### Запуск тестов
83+
84+
После выполнения задачи запусти линтеры и тесты командой `npm run check`. Если какой-то тест не проходит, то внеси исправления в свой код.
85+
86+
### Выгрузка изменений
87+
88+
**Если задача будет решена и все тесты проходят** выгрузи свою работу и открыть новый Pull Request:
89+
90+
```shell
91+
git add измененный-файл.js
92+
git commit -m "Хорошее описание коммита"
93+
git push origin my-feature
94+
```
95+
96+
После этого нужно перейти в свой репозиторий на GitHub и открыть Pull Request. Подробнее об этом [в документации GitHub](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request-from-a-fork).
97+
98+
### Проверка на конфликты
99+
100+
Если выполнение задачи заняло много времени, то возможно репозиторий в это время был обновлен. Необходимо сгрузить себе изменения и замёржить их. Для этого:
101+
102+
**а) Сделай коммит своей работы:**
103+
104+
```shell
105+
git add file1.js file2.js
106+
git commit -m "Описание выполненной работы"
107+
```
108+
109+
**б) Перейди на ветку `main`:**
110+
111+
```shell
112+
git switch main
113+
```
114+
115+
**в) Подтяни изменения с головной ветки:**
116+
117+
```shell
118+
git pull upstream main
119+
```
120+
121+
**г) Перейди на рабочую ветку и сделай мёрж:**
122+
123+
```shell
124+
git switch my-feature
125+
git merge main
126+
```
127+
128+
**д) Если есть конфликты, то исправь их.** Если не знаешь как это делать, то прочитай какой-нибудь материал на эту тему. Например [этот](https://www.atlassian.com/ru/git/tutorials/using-branches/merge-conflicts), [этот](https://stackoverflow.com/questions/161813/how-do-i-resolve-merge-conflicts-in-a-git-repository) или [вот этот](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-using-the-command-line).
129+
130+
После этого можно делать `push` и открывать Pull Request.
131+
132+
## Принятие Pull Request
133+
134+
Открытый Pull Request должен пройти код ревью как минимум двух участников проекта. Однако, в некоторых случаях мы можем принять изменения не дожидаясь двух подтверждений.
16135

17-
- `create-react-app@4`
18-
- `react@17`
19-
- `@reduxjs/toolkit`
20-
- `react-router-dom@5`
21-
- `styled-components`
22-
- `storybook`
23-
- `jest@27`, `@testing-library/react`
24-
- `ESLint@7`, `prettier`
136+
Всё обсуждение пулл реквеста должно вестись на его странице в комментариях, чтобы оно было доступно всем участникам разработки.

README.md

Lines changed: 34 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,44 @@
1-
# iqa-application
1+
# iqa-frontend
22

33
[![intocode license](https://img.shields.io/github/license/intocode/iqa-frontend)](https://github.com/intocode/iqa-frontend)
44

5-
_Проект находится в разработке._
5+
Репозиторий содержит фронтенд проекта iqa-application. Backend находится в [отдельном репозитории](https://github.com/intocode/iqa-backend).
66

7-
**Запуск на локалке**
7+
## Начало работы
8+
9+
### Установка
810

911
```shell
10-
git clone https://github.com/intocode/iqa-frontend
11-
cd iqa-frontend && npm install
12+
git clone https://github.com/intocode/iqa-frontend.git
13+
cd iqa-frontend
14+
npm install
15+
```
16+
17+
### Запуск в режиме разработки
1218

19+
```shell
1320
npm start
1421
```
1522

16-
Сервер: https://github.com/intocode/iqa-backend <sup>private</sup>
17-
Dev deploy: https://iqa-stage-frontend.intocode.ru
18-
Jira: https://intocode.atlassian.net/jira/software/projects/IQ/boards/5
19-
Начало работы: [CONTRIBUTING.md](./CONTRIBUTING.md) <sup>for beginners</sup>
23+
Установка backend-части приложения не требуется. Все запросы будут направлены на доступный в сети stage-сервер.
24+
25+
**ВНИМАНИЕ!** Установка для участников разработки немного отличается от вышеуказанной. Подробнее читай в файле [CONTRIBUTING.md](./CONTRIBUTING.md).
26+
27+
## Участие в разработке
28+
29+
Любой желающий может внести свой вклад в развитие данного проекта.
30+
31+
Помощь может заключаться не только в непосредственной разработке, но и в поиске ошибок, исправлении опечаток, предложении новых идей, которые сделают проект лучше.
32+
33+
Подробности участия в проекте можно прочитать в файле [CONTRIBUTING.md](./CONTRIBUTING.md).
34+
35+
## Стек
36+
37+
- JavaScript, ES6, ES7
38+
- React 17 (FC), create-react-app, prop-types
39+
- Redux, Redux Toolkit, Redux Persist
40+
- antd, styled-components, bootstrap-grid.css
41+
- axios, dayjs, react-transition-group
42+
- Jest, ESLint, Prettier, lint-staged
43+
44+
🤘🏼 Необязательно знать все инструменты, чтобы начать работу с проектом.

0 commit comments

Comments
 (0)