Skip to content

Commit

Permalink
Merge branch 'release/3.0.0' into typo
Browse files Browse the repository at this point in the history
  • Loading branch information
khorevaa authored May 8, 2019
2 parents 9c652b1 + c0b9bd8 commit 102e3a4
Show file tree
Hide file tree
Showing 99 changed files with 3,072 additions and 1,705 deletions.
155 changes: 155 additions & 0 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,155 @@
# Коллективное участие в проекте

> постоянно наполняемый FAQ для "контрибьюторов"
## Прежде чем создавать задачи (issues) `GitHub`

* старайтесь ознакомиться с документацией по проекту с помощью поиска
* старайтесь ознакомиться с уже имеющимися задачами с помощью поиска, включая закрытые задачи
* ознакомьтесь с каталогом features для понимания уже существующего и стабильного функционала
* будьте в курсе изменений по проекту
* нажмите `watch` и `star`, чтобы получать оповещения об изменениях

### Старайтесь создавать задачи в формате `BDD`

* Формат описания, если вы нашли "недочёт" (bug)

```gherkin
Дано <имею версию проекта>
И <версию операционной системы>
И <версию 1С предприятия>
И <параметры совместимости конфигурации>
```

* Формат описания, если хочется добавить новый функционал (enhancement)

```gherkin
Функционал: <Краткое описание>
Как <роль кому нужен функционал>
Чтобы <цель того кому нужен данный функционал>
```

## Как добавить функционал к проекту

мы используем [Example mapping](https://cucumber.io/blog/2015/12/08/example-mapping-introduction), поэтому:

* всё, что не имеет feature-файла - это просто вопрос или "вброс"
* если существует feature-файл только с заголовком - это предварительное требование
* если в feature-файле есть Сценарии - это требование с правилами реализации
* есть в Сценарии есть шаги - это требование с правилами и примерами

Соответственно, помимо задач, можно использовать концепцию

* git-flow - коллективная разработка с помощью github
* pull-request - для черновиков функционала используется каталог ```.\features\drafts```

### Процесс коллективной разработки

в соответствии с принципами Agile и Open-Source мы используем

* итеративный подход к разработке
* первоначально мы решаем недочёты, а уже затем дорабатываем функционал
* приоретизация и порядок доработки остаются на усмотрение команды oscript-library

однако это можно изменить 3-мя способами:

### Pull-request

#### Первичная настройка

если вы разработчик

* Установите `oscript`, `git` и проверьте, что данные находятся в переменной `PATH`,
* т.е. `git, oscript, opm` вызываются без указания полного пути в коммандной строке.

* сделайте `fork` репозитория
* склонируйте репозитарий себе на машину ```git clone https://github.com/*ТУТИМЯВАШЕГОПОЛЬЗОВАТЕЛЯ*/gitsync.git ```
* переходим в склонированный каталог через `cd gitsync` и выполняем несколько магических комманд
```
git remote add upstream https://github.com/oscript-library/gitsync.git
git fetch upstream
git checkout -b develop upstream/develop
git pull upstream develop
```
* Далее нужно установить необходимые зависимости:
* в консоли от имени администратора перейти в папку `gitsync` и запустить `opm install`.
* Результатом будет установленные пакеты, необходимые для работы скриптов.
* Этот шаг необходимо сделать всего 1 раз.

> ВНИМАНИЕ: команды `opm` необходимо выполнять в обычном виндовом `cmd\far` , но не в bash-консоли, т.к. не сможет найти команду `opm`
#### Штатная разработка/доработка

##### Выбор задачи и предварительная подготовка

* реализуйте функционал или возьмите в работу какую-то задачу

* На основании ветки develop создаем новую ветку с номером задачи или кратким описанием
* Например, `feature/issue-9999`
```
git checkout -b feature/issue-9999
```

> Напоминаем, что все шаги git можно выполнять как из консоли git, так и из графического клиента для git (SourceTree, GitExtensions и т.п.)
##### Изменения в плагинах/фичах/шагах/тестах

* в каталоге `gitsync/features` добавьте новый `feature-файл`, если необходимо
* в каталоге ./src реализуйте требуемый функционал
* или прогоните тесты `opm run test`

* **При готовности зафиксировать изменения**

* В гите проверить необходимые изменения в исходниках и зафиксировать только их.

Команды для программного добавления необходимых файлов в git

* Смотрим, какие файлы изменились - `git status`

```
Изменения, которые не в индексе для коммита:
(используйте «git add <файл>…», чтобы добавить файл в индекс)
(используйте «git checkout -- <файл>…», чтобы отменить изменения
в рабочем каталоге)
изменено: src/cmd/ПараметрыПриложения.os
нет изменений добавленных для коммита
(используйте «git add» и/или «git commit -a»)
```

##### Отправка изменений

* Добавляем необходимые файлы в индекс
* `git add src/cmd/ПараметрыПриложения.os `
* Фиксируем изменения с комментарием `git commit -m "Наш комментарий!"`

* Отправляем все изменения своей ветки на github ```git push origin feature/issue-9999```
* Далее формируем `pull-request` в [интерфейсе github](https://github.com/oscript-library/gitsync/pulls)

### Участие в архитектурных обсуждениях

если вы методолог или архитектор

* сделайте свой первый `pull-request`, в том числе в документацию
* создайте обсуждение https://github.com/oscript-library/gitsync/issues с описанием противоречия
* участвуйте, обосновывайте, приводите примеры
* используйте ТРИЗ для построения непротиворечивых решений

### Enterprise-поддержка

если вы бизнесмен или менеджер

* обратитесь по адресу `[email protected]`
* заключите контракт на Enterprise-поддержку с гарантией по SLA и c контролем NPS
* публикуйте любые запросы на доработку и консультацию - они будут выполнены или по ним будет выдан ответ в первом приоритете
* на данный момент за последние год мы поддерживаем следующие медианы:
* время реакции - 24 минуты,
* время решения - 23 часа

# Если ничего не понятно

* используйте [форум XDD](https://xdd.silverbulleters.org) для того, чтобы задать вопрос
* запишитесь на практические занятия по правильной разработке 1С

```(c) oscript-library - последнее обновление: 14.01.2019```
19 changes: 19 additions & 0 deletions .github/ISSUE_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
> Заполните шаблон обсуждения GIT (GitHub, GitLab, Vanessa Hub)
```Gherkin
Функционал: <Необходимый эффект>
Как <роль пользователя>
Я хочу <Необходимый функционал>
Контекст:
Дано <версия инструментария>
И <полная версия 1С>
и <конфигурация запуска>
Сценарий: <ожидамое поведение>
Допустим <Пример данных>
Когда <Что-то нажимается или вызывается>
Тогда <Что-то происходит>
```

> Прикладывайте файлы скриншотов
31 changes: 31 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
---
name: Сообщение об ошибке
about: если вы выявили ошибку - сообщите нам об этом

---

**Описание ошибки**
что конкретно происходит

**Сценарий воспроизведения**
Шаги по воспроизведению:
1. Открыть '...'
2. Нажать '....'
3. Запустить '....'
4. Где ошибка

**Ожидаемое поведение если бы ошибки не было**
'....'

**Скриншоты**
если применимо приложите скриншот

**Окружение:**
- Версия операционной системы: [например Ubuntu 18.04]
- Редакция 1С платформы [например 8.3.12.1542]
- Версия Gitsync [например 3.0.1]
- Версия OScript [например 1.0.20]

**Дополнительный контекст**

Типовая или не типовая конфиугарация ? Включен ли режим защиты от опасных действий и т.д.
22 changes: 22 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
---
name: Добавление новой функциональности
about: предложение новой идеи или функциональности к разработке

---

**Существует проблема**
Описание существующей проблемы [...]

**Хотелось бы иметь следующую функциональность**
Вариант реализации [...]

**Дополнительный контекст**
Любая дополнительная информация

<!---
Заявление от команды активных контрибьюторов
Данный проект развивается силами нескольких людей последние 10 лет, разработка ведется на условиях краудсорсинга в связи с чем
Если вы не собираетесь реализовывать данную функциональность сами, просьба идеи и предложения обсуждать на форуме в специализированном разделе https://xdd.silverbulleters.org/c/razrabotka или в рамках вашего контракта на поддержку OpenSource продуктов
-->
8 changes: 8 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
реализация #

сделанные изменения:

-
-

@oscript-library/Collaborators - пожалуйста, проверьте изменения и прокомментируйте их
12 changes: 10 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,17 @@ bdd-*.xml

.enabled-plugins
coverage/*
bin/*

*.ospx
oscript_modules/
tests/fixtures/gitsync-plugins/*
embedded_plugins/*.ospx
src/cmd/oscript.cfg
src/cmd/oscript.cfg

*.1CD.
*.cfl
*.1CL
1cv8dtmp.1CD
# tests/fixtures/extension_storage/data/
# tests/fixtures/extension_storage/cache/
# tests/fixtures/extension_storage/ver
6 changes: 0 additions & 6 deletions TODO

This file was deleted.

Binary file added bin/tempExtension.cfe
Binary file not shown.
49 changes: 9 additions & 40 deletions build_packagedef
Original file line number Diff line number Diff line change
@@ -1,12 +1,8 @@
#Использовать logos
#Использовать fs
Перем Лог;

Процедура ПередСборкой(Знач РабочийКаталог) Экспорт

ФС.ОбеспечитьПустойКаталог(ОбъединитьПути(РабочийКаталог, "oscript_modules"));

Лог.Информация("Установка локальных зависимостей библиотек");
Сообщить("Установка локальных зависимостей библиотек");
КомандаOpm = Новый Команда;

КомандаOpm.УстановитьКоманду("opm");
Expand All @@ -19,27 +15,12 @@
ВызватьИсключение КомандаOpm.ПолучитьВывод();
КонецЕсли;

Лог.Информация("Настройка локальных библиотек");

ПутьКФайлуЗагрузчику = ОбъединитьПути(РабочийКаталог, "oscript_modules", "package-loader.os");
ШаблонныйФайлЗагрузчик = ОбъединитьПути(РабочийКаталог, "templates", "package-loader.os");
ФайлЗагрузчик = Новый Файл(ПутьКФайлуЗагрузчику);
Если Не ФайлЗагрузчик.Существует() Тогда
КопироватьФайл(ШаблонныйФайлЗагрузчик, ПутьКФайлуЗагрузчику);
Лог.Информация("Добавлен файл загрузки локальных библиотек");
КонецЕсли;
Сообщить("Получение последней версии плагинов");

ПутьКФайлуНастройкиСкрипта = ОбъединитьПути(РабочийКаталог, "src", "cmd", "oscript.cfg");
ШаблонныйФайлНастройкиСкрипта = ОбъединитьПути(РабочийКаталог, "templates", "oscript.cfg");
ФайлНастройкиСкрипта= Новый Файл(ПутьКФайлуНастройкиСкрипта);
Если Не ФайлНастройкиСкрипта.Существует() Тогда
КопироватьФайл(ШаблонныйФайлНастройкиСкрипта, ПутьКФайлуНастройкиСкрипта);
Лог.Информация("Добавлен файл настройки запуска");
КонецЕсли;

КомандаOpm = Новый Команда;
КомандаOpm.УстановитьКоманду("opm");
КомандаOpm.ДобавитьПараметр("run get-plugins");
КомандаOpm.ДобавитьПараметр("develop");

КомандаOpm.ДобавитьЛогВыводаКоманды("task.build");

Expand All @@ -51,10 +32,6 @@

КонецПроцедуры

Процедура ПриСборке(Знач РабочийКаталог, Знач АрхивПакета) Экспорт

КонецПроцедуры

Процедура ПослеСборки(Знач РабочийКаталог, Знач ПутьКФайлуПакета) Экспорт

ПутьКФайлуНастройкиСкрипта = ОбъединитьПути(РабочийКаталог, "src", "cmd", "oscript.cfg");
Expand All @@ -67,23 +44,15 @@

КонецПроцедуры

Лог = Логирование.ПолучитьЛог("task.build");

//Лог = Логирование.ПолучитьЛог(ПараметрыСистемыOpm.ИмяЛогаСистемы());

ПутьКСценариюПараметров = ОбъединитьПути(ТекущийСценарий().Каталог, "src/cmd", "Модули", "ПараметрыПриложения.os");
ПараметрыСистемы_ЛокальнаяВерсия = ЗагрузитьСценарий(ПутьКСценариюПараметров);
ИмяПродукта = НРег(ПараметрыСистемы_ЛокальнаяВерсия.ИмяПриложения());
ВерсияПродукта = ПараметрыСистемы_ЛокальнаяВерсия.Версия();

Описание.Имя(ИмяПродукта)
.Версия(ВерсияПродукта)
.ВерсияСреды("1.0.20")
Описание.Имя("gitsync")
.Версия("3.0.0-rc.2")
.ВерсияСреды("1.0.21")
.ВключитьФайл("src")
.ВключитьФайл("embedded_plugins")
.ВключитьФайл("oscript_modules")
.ВключитьФайл("docs")
.ВключитьФайл("readme.md")
.ОпределяетКласс("МенеджерПлагинов", "src/core/Классы/МенеджерПлагинов.os")
.ОпределяетКласс("МенеджерСинхронизации", "src/core/Классы/МенеджерСинхронизации.os")
.ОпределяетКласс("УправлениеПлагинами", "src/core/Классы/УправлениеПлагинами.os")
.ИсполняемыйФайл("src/cmd/gitsync.os", ИмяПродукта);
.ОпределяетКласс("ПакетнаяСинхронизация", "src/core/Классы/ПакетнаяСинхронизация.os")
.ИсполняемыйФайл("src/cmd/gitsync.os");
Loading

0 comments on commit 102e3a4

Please sign in to comment.