|
| 1 | +# Коллективное участие в проекте |
| 2 | + |
| 3 | +> постоянно наполняемый FAQ для "контрибьюторов" |
| 4 | +
|
| 5 | +## Прежде чем создавать задачи `GitHub` |
| 6 | + |
| 7 | +* старайтесь ознакомиться с документацией по проекту с помощью поиска |
| 8 | +* старайтесь ознакомиться с уже имеющимися задачами с помощью поиска, включая закрытые задачи |
| 9 | +* ознакомьтесь с каталогом features для понимания уже существующего и стабильного функционала |
| 10 | +* будьте в курсе изменений по проекту |
| 11 | + * нажмите watch и star чтобы получать оповещения об изменениях |
| 12 | + |
| 13 | +### Старайтесь создавать задачи в формате `BDD` |
| 14 | + |
| 15 | +* если вы нашли "недочёт" (bug) |
| 16 | + |
| 17 | +``` |
| 18 | +Дано <имею версию проекта> |
| 19 | + И <версию операционной системы> |
| 20 | + И <версию 1С предприятия> |
| 21 | + И <параметры совместимости конфигурации> |
| 22 | +``` |
| 23 | + |
| 24 | +* если хочется добавить новый функционал (enhancement) |
| 25 | + |
| 26 | +``` |
| 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 | +* Установите oscript, git и проверьте что данные находятся в переменной PATH, т.е. git, oscript, opm вызываются без указания полного пути в коммандной строке. |
| 61 | +* Дополнительно должен быть установлен пакет vanessa-runner, делать это надо в коммандной строке от имени администратора `opm install vanessa-runner`. |
| 62 | + |
| 63 | +* сделайте `fork` репозитория |
| 64 | +* склонируйте репозитарий себе на машину ```git clone https://github.com/*ТУТИМЯВАШЕГОПОЛЬЗОВАТЕЛЯ*/vanessa-behavior2.git ``` |
| 65 | +* переходим в склонированный каталог `cd vanessa-behavior2` и выполняем несколько магических комманд |
| 66 | +``` |
| 67 | +git remote add upstream https://github.com/silverbulleters/vanessa-behavior2.git |
| 68 | +git fetch upstream |
| 69 | +git checkout -b develop upstream/develop |
| 70 | +git pull upstream develop |
| 71 | +``` |
| 72 | +* Если до этого не установили необходимые зависимости, необходимо в консоли от имени администратора перейти в папку `vanessa-behavior2` и запустить `opm install`. Результатом будет установленные пакеты необходимые для работы скриптов. Этот шаг необходимо сделать всего 1 раз. |
| 73 | + |
| 74 | +* На основании ветки develop создаем новую ветку с номером задачи или кратким описанием |
| 75 | +``` |
| 76 | +git checkout -b feature/issue-9999 |
| 77 | +``` |
| 78 | +* Для привычной разработки, необходимо инициализировать базовую базу данных для разработки и из исходников собрать epf файлы: |
| 79 | +``` |
| 80 | +cd vanessa-behavior2 |
| 81 | +opm run init |
| 82 | +``` |
| 83 | +> ВНИМАНИЕ: команды `opm` необходимо выполнять в обычном виндовом cmd\far , но не в bash консоли, т.к. не сможет найти команду `opm` |
| 84 | +
|
| 85 | +* в случаи, если база уже была успешно проинициализирована, тогда можно просто запустить сборку обработок из новых данных: |
| 86 | +```opm run cepf``` |
| 87 | +* в каталоге `vanessa-behavior2\build` добавьте новый `feature-файл`, если необходимо |
| 88 | +* отредактируйте при необходимости `vanessa-behavior2\build\vanessa-behavior.epf` |
| 89 | +* разработайте step проверки в `vanessa-behavior2\build\features\*` |
| 90 | +* после всех доработок можете запустить в каталоге проекта `opm run vanessa` для проверки в управляемых формах, что ничего не сломали из стандартного функционала. |
| 91 | + |
| 92 | +* **При готовности зафиксировать изменения** необходимо теперь сделать обратную операцию в виде разборки *.epf на исходники. |
| 93 | + 1. Массово, выполнить команду `opm run depf`, разбирать будет все обработки из `plugins, features, vendor, lib ` |
| 94 | + > ВНИМАНИЕ: возможно будет долгая операция, т.к. скрипт найдет все epf файлы и попробует их разобрать на исходники |
| 95 | +
|
| 96 | + 2. Что-бы ускорить обратную разборку, можно указать определенный каталог `opm run depf ./features/librares` разберет только `./build/features/librares` в `./features/librares` |
| 97 | + 3. Вручную обработку отдельно: в конфигураторе открываем внешнюю обработку и в меню "Действия" -> "Выгрузить файлы", выбираем "Внешняя обработка в иерархическом формате" и указываем путь где будет она находиться. |
| 98 | + > Например: для ./build/vanessa-behavior.epf это путь в ./epf/ , для всех остальных каталогов это зеркальное ./build/feature - ./feature |
| 99 | +
|
| 100 | +* В гите проверить необходимые изменения и зафиксировать только их. |
| 101 | +> Внимание, платформа каждый раз меняет файлы Form.bin, даже если их не меняли. Не надо добавлять Form.bin в гит, если вы не изменяли толстые формы. |
| 102 | +
|
| 103 | + Привожу команды для программного добавления необходимых файлов |
| 104 | + * Смотрим какие файлы изменились `git status` |
| 105 | + |
| 106 | +``` |
| 107 | +Изменения, которые не в индексе для коммита: |
| 108 | + (используйте «git add <файл>…», чтобы добавить файл в индекс) |
| 109 | + (используйте «git checkout -- <файл>…», чтобы отменить изменения |
| 110 | + в рабочем каталоге) |
| 111 | +
|
| 112 | + изменено: epf/vanessa-behavior/VanessaBehavior/Forms/УправляемаяФорма/Ext/Form/Module.bsl |
| 113 | +
|
| 114 | +нет изменений добавленных для коммита |
| 115 | +(используйте «git add» и/или «git commit -a») |
| 116 | +
|
| 117 | +``` |
| 118 | + |
| 119 | + |
| 120 | + * Добавляем необходимые файлы в индекс `git add epf/vanessa-behavior/VanessaBehavior/Forms/УправляемаяФорма/Ext/Form/Module.bsl ` |
| 121 | + * Фиксируем изменения с комментарием `git commit -m "Наш комментарий!"` |
| 122 | + |
| 123 | + * Все эти шаги можно выполнять с какого-либо GUI клиента для git. |
| 124 | +* Отправьте изменения на github ```git push origin feature/issue-9999``` |
| 125 | +* Сформируйте `pull-request` в интерфейсе github. |
| 126 | + |
| 127 | +* реализуйте функционал или возьмите в работу какую-то задачу |
| 128 | + * обратите внимание - некоторые задачи могут иметь награду [DONATIONS.md](./DONATIONS.md) |
| 129 | + |
| 130 | + |
| 131 | +### Участие в архитектурных обсуждениях |
| 132 | + |
| 133 | +если вы методолог или архитектор |
| 134 | + |
| 135 | +* ознакомтесь с порядком участия в архитектурных обсуждениях http://vanessa.services/docs/advanced/arch-team |
| 136 | +* создайте обсуждение https://github.com/silverbulleters/vanessa-services/issues |
| 137 | +* участвуйте, обосновывайте, приводите примеры |
| 138 | +* используйте ТРИЗ для построения непротиворечивых решений |
| 139 | + |
| 140 | +### Спонсорство по задаче |
| 141 | + |
| 142 | +если вы бизнесмен или менеджер |
| 143 | + |
| 144 | +* выдайте награду за любую из задач - нажав кнопку **"Post a bounty on it"** |
| 145 | +* ждите когда кто-нибудь из контрибьюторов выполнить задачу через `pull-request` |
| 146 | +* после проверки качества Ваша награда будет передана автоматически с помощью сервиса https://www.bountysource.com/teams/silverbulleters/issues контрибьютору |
| 147 | + |
| 148 | +# BSD v3 License |
| 149 | + |
| 150 | +Наша лицензия поощряет коллективное участие в разработке всего стэка продуктов `Vanessa Stack`, однако не поощряет использование брендов (с) `SilverBulleters`, `vanessa-stack`, `vanessa-behavior` и остальных для развития своих неофициальных имплементаций. |
| 151 | +Поэтому: |
| 152 | + |
| 153 | +* используйте, дорабатывайте через концепцию `fork` и `pull-request` официальный продукт `silverbulleters/vanessa-behavior` |
| 154 | +* если вы хотите создать свой продукт на основе `vanessa-behavior`, это разрешено и не противоречит лицензии `BSD v3` |
| 155 | +* однако, если вы хотите использовать для рекламирования и продвижения своего продукта бренды ``"SilverBulleters"`` или ``"Vanessa Behavior"``, вам необходимо получить у нас разрешение на это, написав на адрес `[email protected]` или создать `Issue` на `GitHub` |
| 156 | + |
| 157 | +Поэтому интернет-маркетологов просим быть осторожней при использовании символики `Vanessa` и `SilverBulleters` |
| 158 | + |
| 159 | + |
| 160 | +# CLA - лицензия на коллективное участие |
| 161 | + |
| 162 | +Мы придерживаемся https://cla.github.com/agreement |
| 163 | +что означает Ваш вклад не нарушает никаких наших прав и не накладывает на нас никаких ограничений и обязательств. |
| 164 | + |
| 165 | +# Если ничего не понятно |
| 166 | + |
| 167 | +* используйте чат Gitter для того чтобы задать вопрос https://gitter.im/silverbulleters |
| 168 | +* запишитесь на практические занятия по правильной разработке 1С |
| 169 | + |
| 170 | +```(c) SilverBulleter, LLC - последнее обновление: 07.09.2017``` |
0 commit comments