Skip to content

Commit 977bcd2

Browse files
committed
альфа версия правил.
1 parent 36b9932 commit 977bcd2

File tree

1 file changed

+173
-0
lines changed

1 file changed

+173
-0
lines changed

.github/CONTRIBUTING.md

Lines changed: 173 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,173 @@
1+
# Коллективное участие в проекте
2+
3+
> постоянно наполняемый FAQ для "контрибьюторов"
4+
5+
## Прежде чем создавать задачи (issues) `GitHub`
6+
7+
* старайтесь ознакомиться с документацией по проекту с помощью поиска
8+
* старайтесь ознакомиться с уже имеющимися задачами с помощью поиска, включая закрытые задачи
9+
* ознакомьтесь с каталогом features для понимания уже существующего и стабильного функционала
10+
* будьте в курсе изменений по проекту
11+
* нажмите `watch` и `star`, чтобы получать оповещения об изменениях
12+
13+
### Старайтесь создавать задачи в формате `BDD`
14+
15+
* Формат описания, если вы нашли "недочёт" (bug)
16+
17+
```gherkin
18+
Дано <имею версию проекта>
19+
И <версию операционной системы>
20+
И <версию 1С предприятия>
21+
И <параметры совместимости конфигурации>
22+
```
23+
24+
* Формат описания, если хочется добавить новый функционал (enhancement)
25+
26+
```gherkin
27+
Функционал: <Краткое описание>
28+
Как <роль кому нужен функционал>
29+
Чтобы <цель того кому нужен данный функционал>
30+
```
31+
32+
## Как добавить функционал к проекту
33+
34+
мы используем [Example mapping](https://cucumber.io/blog/2015/12/08/example-mapping-introduction), поэтому:
35+
36+
* всё, что не имеет feature-файла - это просто вопрос или "вброс"
37+
* если существует feature-файл только с заголовком - это предварительное требование
38+
* если в feature-файле есть Сценарии - это требование с правилами реализации
39+
* есть в Сценарии есть шаги - это требование с правилами и примерами
40+
41+
Соответственно, помимо задач, можно использовать концепцию
42+
43+
* git-flow - коллективная разработка с помощью github
44+
* pull-request - для черновиков функционала используется каталог ```.\features\Drafts```
45+
46+
### Процесс коллективной разработки
47+
48+
в соответствии с принципами Agile и Open Source мы используем
49+
50+
* итеративный подход к разработке
51+
* первоначально мы решаем недочёты, а уже затем дорабатываем функционал
52+
* приоретизация и порядок доработки остаются на усмотрение команды SilverBulleters, LLC
53+
54+
однако это можно изменить 3-мя способами:
55+
56+
### Pull-request
57+
58+
#### Первичная настройка
59+
60+
если вы разработчик
61+
62+
* Установите `oscript`, `git` и проверьте, что данные находятся в переменной `PATH`,
63+
* т.е. `git, oscript, opm` вызываются без указания полного пути в коммандной строке.
64+
65+
* сделайте `fork` репозитория
66+
* склонируйте репозитарий себе на машину ```git clone https://github.com/*ТУТИМЯВАШЕГОПОЛЬЗОВАТЕЛЯ*/gitsync.git ```
67+
* переходим в склонированный каталог через `cd add` и выполняем несколько магических комманд
68+
```
69+
git remote add upstream https://github.com/oscript-library/gitsync.git
70+
git fetch upstream
71+
git checkout -b develop upstream/develop
72+
git pull upstream develop
73+
```
74+
* Далее нужно установить необходимые зависимости:
75+
* в консоли от имени администратора перейти в папку `gitsync` и запустить `opm install`.
76+
* Результатом будет установленные пакеты, необходимые для работы скриптов.
77+
* Этот шаг необходимо сделать всего 1 раз.
78+
79+
> ВНИМАНИЕ: команды `opm` необходимо выполнять в обычном виндовом `cmd\far` , но не в bash-консоли, т.к. не сможет найти команду `opm`
80+
81+
#### Штатная разработка/доработка
82+
83+
##### Выбор задачи и предварительная подготовка
84+
85+
* реализуйте функционал или возьмите в работу какую-то задачу
86+
* обратите внимание - некоторые задачи могут иметь награду [DONATIONS.md](/DONATIONS.md)
87+
88+
* На основании ветки develop создаем новую ветку с номером задачи или кратким описанием
89+
* Например, `feature/issue-9999`
90+
```
91+
git checkout -b feature/issue-9999
92+
```
93+
94+
> Напоминаем, что все шаги git можно выполнять как из консоли git, так и из графического клиента для git (SourceTree, GitExtensions и т.п.)
95+
96+
##### Изменения в плагинах/фичах/шагах/тестах
97+
98+
* в каталоге `add\features` добавьте новый `feature-файл`, если необходимо
99+
* в каталоге ./src реализуйте требуемый функционал
100+
* или прогоните тесты `opm run test`
101+
102+
* **При готовности зафиксировать изменения**
103+
104+
* В гите проверить необходимые изменения в исходниках и зафиксировать только их.
105+
106+
Команды для программного добавления необходимых файлов в git
107+
108+
* Смотрим, какие файлы изменились - `git status`
109+
110+
```
111+
Изменения, которые не в индексе для коммита:
112+
(используйте «git add <файл>…», чтобы добавить файл в индекс)
113+
(используйте «git checkout -- <файл>…», чтобы отменить изменения
114+
в рабочем каталоге)
115+
116+
изменено: src/cmd/ПараметрыПриложения.os
117+
118+
нет изменений добавленных для коммита
119+
(используйте «git add» и/или «git commit -a»)
120+
```
121+
122+
##### Отправка изменений
123+
124+
* Добавляем необходимые файлы в индекс
125+
* `git add src/cmd/ПараметрыПриложения.os `
126+
* Фиксируем изменения с комментарием `git commit -m "Наш комментарий!"`
127+
128+
* Отправляем все изменения своей ветки на github ```git push origin feature/issue-9999```
129+
* Далее формируем `pull-request` в [интерфейсе github](https://github.com/oscript-library/gitsync/pulls)
130+
131+
### Участие в архитектурных обсуждениях
132+
133+
если вы методолог или архитектор
134+
135+
* сделайте свой первый `pull-request`, в том числе в документацию
136+
* создайте обсуждение https://github.com/oscript-library/gitsync/issues с описанием противоречия
137+
* участвуйте, обосновывайте, приводите примеры
138+
* используйте ТРИЗ для построения непротиворечивых решений
139+
140+
### Enterprise-поддержка
141+
142+
если вы бизнесмен или менеджер
143+
144+
* обратитесь по адресу `[email protected]`
145+
* заключите контракт на Enterprise-поддержку с гарантией по SLA и c контролем NPS
146+
* публикуйте любые запросы на доработку и консультацию - они будут выполнены или по ним будет выдан ответ в первом приоритете
147+
* на данный момент за последние год мы поддерживаем следующие медианы:
148+
* время реакции - 24 минуты,
149+
* время решения - 23 часа
150+
151+
# BSD v3 License
152+
153+
Наша лицензия поощряет коллективное участие в разработке всего стэка продуктов `Vanessa Stack`, однако не поощряет использование брендов (с) `SilverBulleters`, `vanessa-stack`, `vanessa-gitsync`, и остальных для развития своих неофициальных имплементаций.
154+
155+
Поэтому:
156+
157+
* используйте, дорабатывайте через концепцию `fork` и `pull-request` официальный продукт `oscript-library/gitsync`
158+
* если вы хотите создать свой продукт на основе `oscript-library/gitsync`, это разрешено и не противоречит лицензии `BSD v3`
159+
* однако, если вы хотите использовать для рекламирования и продвижения своего продукта бренды ``"SilverBulleters"``, ``"Vanessa Gitsync"`` или ``"Vanessa"``, вам необходимо получить у нас разрешение на это, написав на адрес `[email protected]` или создать `Issue` на `GitHub`
160+
161+
Поэтому интернет-маркетологов просим быть осторожней при использовании символики `Vanessa` и `SilverBulleters`
162+
163+
# CLA - лицензия на коллективное участие
164+
165+
Мы придерживаемся https://cla.github.com/agreement
166+
что означает - Ваш вклад не нарушает никаких наших прав и не накладывает на нас никаких ограничений и обязательств.
167+
168+
# Если ничего не понятно
169+
170+
* используйте [форум XDD](https://xdd.silverbulleters.org) для того, чтобы задать вопрос
171+
* запишитесь на практические занятия по правильной разработке 1С
172+
173+
```(c) SilverBulleter, LLC - последнее обновление: 14.01.2019```

0 commit comments

Comments
 (0)