Skip to content

Commit 102e3a4

Browse files
authored
Merge branch 'release/3.0.0' into typo
2 parents 9c652b1 + c0b9bd8 commit 102e3a4

File tree

99 files changed

+3072
-1705
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

99 files changed

+3072
-1705
lines changed

.github/CONTRIBUTING.md

Lines changed: 155 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,155 @@
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+
* приоретизация и порядок доработки остаются на усмотрение команды oscript-library
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 gitsync` и выполняем несколько магических комманд
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+
87+
* На основании ветки develop создаем новую ветку с номером задачи или кратким описанием
88+
* Например, `feature/issue-9999`
89+
```
90+
git checkout -b feature/issue-9999
91+
```
92+
93+
> Напоминаем, что все шаги git можно выполнять как из консоли git, так и из графического клиента для git (SourceTree, GitExtensions и т.п.)
94+
95+
##### Изменения в плагинах/фичах/шагах/тестах
96+
97+
* в каталоге `gitsync/features` добавьте новый `feature-файл`, если необходимо
98+
* в каталоге ./src реализуйте требуемый функционал
99+
* или прогоните тесты `opm run test`
100+
101+
* **При готовности зафиксировать изменения**
102+
103+
* В гите проверить необходимые изменения в исходниках и зафиксировать только их.
104+
105+
Команды для программного добавления необходимых файлов в git
106+
107+
* Смотрим, какие файлы изменились - `git status`
108+
109+
```
110+
Изменения, которые не в индексе для коммита:
111+
(используйте «git add <файл>…», чтобы добавить файл в индекс)
112+
(используйте «git checkout -- <файл>…», чтобы отменить изменения
113+
в рабочем каталоге)
114+
115+
изменено: src/cmd/ПараметрыПриложения.os
116+
117+
нет изменений добавленных для коммита
118+
(используйте «git add» и/или «git commit -a»)
119+
```
120+
121+
##### Отправка изменений
122+
123+
* Добавляем необходимые файлы в индекс
124+
* `git add src/cmd/ПараметрыПриложения.os `
125+
* Фиксируем изменения с комментарием `git commit -m "Наш комментарий!"`
126+
127+
* Отправляем все изменения своей ветки на github ```git push origin feature/issue-9999```
128+
* Далее формируем `pull-request` в [интерфейсе github](https://github.com/oscript-library/gitsync/pulls)
129+
130+
### Участие в архитектурных обсуждениях
131+
132+
если вы методолог или архитектор
133+
134+
* сделайте свой первый `pull-request`, в том числе в документацию
135+
* создайте обсуждение https://github.com/oscript-library/gitsync/issues с описанием противоречия
136+
* участвуйте, обосновывайте, приводите примеры
137+
* используйте ТРИЗ для построения непротиворечивых решений
138+
139+
### Enterprise-поддержка
140+
141+
если вы бизнесмен или менеджер
142+
143+
* обратитесь по адресу `b2b@silverbulleters.org`
144+
* заключите контракт на Enterprise-поддержку с гарантией по SLA и c контролем NPS
145+
* публикуйте любые запросы на доработку и консультацию - они будут выполнены или по ним будет выдан ответ в первом приоритете
146+
* на данный момент за последние год мы поддерживаем следующие медианы:
147+
* время реакции - 24 минуты,
148+
* время решения - 23 часа
149+
150+
# Если ничего не понятно
151+
152+
* используйте [форум XDD](https://xdd.silverbulleters.org) для того, чтобы задать вопрос
153+
* запишитесь на практические занятия по правильной разработке 1С
154+
155+
```(c) oscript-library - последнее обновление: 14.01.2019```

.github/ISSUE_TEMPLATE.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
> Заполните шаблон обсуждения GIT (GitHub, GitLab, Vanessa Hub)
2+
3+
```Gherkin
4+
Функционал: <Необходимый эффект>
5+
Как <роль пользователя>
6+
Я хочу <Необходимый функционал>
7+
8+
Контекст:
9+
Дано <версия инструментария>
10+
И <полная версия 1С>
11+
и <конфигурация запуска>
12+
13+
Сценарий: <ожидамое поведение>
14+
Допустим <Пример данных>
15+
Когда <Что-то нажимается или вызывается>
16+
Тогда <Что-то происходит>
17+
```
18+
19+
> Прикладывайте файлы скриншотов

.github/ISSUE_TEMPLATE/bug_report.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
---
2+
name: Сообщение об ошибке
3+
about: если вы выявили ошибку - сообщите нам об этом
4+
5+
---
6+
7+
**Описание ошибки**
8+
что конкретно происходит
9+
10+
**Сценарий воспроизведения**
11+
Шаги по воспроизведению:
12+
1. Открыть '...'
13+
2. Нажать '....'
14+
3. Запустить '....'
15+
4. Где ошибка
16+
17+
**Ожидаемое поведение если бы ошибки не было**
18+
'....'
19+
20+
**Скриншоты**
21+
если применимо приложите скриншот
22+
23+
**Окружение:**
24+
- Версия операционной системы: [например Ubuntu 18.04]
25+
- Редакция 1С платформы [например 8.3.12.1542]
26+
- Версия Gitsync [например 3.0.1]
27+
- Версия OScript [например 1.0.20]
28+
29+
**Дополнительный контекст**
30+
31+
Типовая или не типовая конфиугарация ? Включен ли режим защиты от опасных действий и т.д.
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
---
2+
name: Добавление новой функциональности
3+
about: предложение новой идеи или функциональности к разработке
4+
5+
---
6+
7+
**Существует проблема**
8+
Описание существующей проблемы [...]
9+
10+
**Хотелось бы иметь следующую функциональность**
11+
Вариант реализации [...]
12+
13+
**Дополнительный контекст**
14+
Любая дополнительная информация
15+
16+
<!---
17+
Заявление от команды активных контрибьюторов
18+
19+
Данный проект развивается силами нескольких людей последние 10 лет, разработка ведется на условиях краудсорсинга в связи с чем
20+
Если вы не собираетесь реализовывать данную функциональность сами, просьба идеи и предложения обсуждать на форуме в специализированном разделе https://xdd.silverbulleters.org/c/razrabotka или в рамках вашего контракта на поддержку OpenSource продуктов
21+
22+
-->

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
реализация #
2+
3+
сделанные изменения:
4+
5+
-
6+
-
7+
8+
@oscript-library/Collaborators - пожалуйста, проверьте изменения и прокомментируйте их

.gitignore

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,17 @@ bdd-*.xml
77

88
.enabled-plugins
99
coverage/*
10-
bin/*
1110

1211
*.ospx
1312
oscript_modules/
13+
tests/fixtures/gitsync-plugins/*
1414
embedded_plugins/*.ospx
15-
src/cmd/oscript.cfg
15+
src/cmd/oscript.cfg
16+
17+
*.1CD.
18+
*.cfl
19+
*.1CL
20+
1cv8dtmp.1CD
21+
# tests/fixtures/extension_storage/data/
22+
# tests/fixtures/extension_storage/cache/
23+
# tests/fixtures/extension_storage/ver

TODO

Lines changed: 0 additions & 6 deletions
This file was deleted.

bin/tempExtension.cfe

3.63 KB
Binary file not shown.

build_packagedef

Lines changed: 9 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,8 @@
1-
#Использовать logos
21
#Использовать fs
3-
Перем Лог;
42

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

7-
ФС.ОбеспечитьПустойКаталог(ОбъединитьПути(РабочийКаталог, "oscript_modules"));
8-
9-
Лог.Информация("Установка локальных зависимостей библиотек");
5+
Сообщить("Установка локальных зависимостей библиотек");
106
КомандаOpm = Новый Команда;
117

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

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

32-
ПутьКФайлуНастройкиСкрипта = ОбъединитьПути(РабочийКаталог, "src", "cmd", "oscript.cfg");
33-
ШаблонныйФайлНастройкиСкрипта = ОбъединитьПути(РабочийКаталог, "templates", "oscript.cfg");
34-
ФайлНастройкиСкрипта= Новый Файл(ПутьКФайлуНастройкиСкрипта);
35-
Если Не ФайлНастройкиСкрипта.Существует() Тогда
36-
КопироватьФайл(ШаблонныйФайлНастройкиСкрипта, ПутьКФайлуНастройкиСкрипта);
37-
Лог.Информация("Добавлен файл настройки запуска");
38-
КонецЕсли;
39-
4020
КомандаOpm = Новый Команда;
4121
КомандаOpm.УстановитьКоманду("opm");
4222
КомандаOpm.ДобавитьПараметр("run get-plugins");
23+
КомандаOpm.ДобавитьПараметр("develop");
4324

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

@@ -51,10 +32,6 @@
5132

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

54-
Процедура ПриСборке(Знач РабочийКаталог, Знач АрхивПакета) Экспорт
55-
56-
КонецПроцедуры
57-
5835
Процедура ПослеСборки(Знач РабочийКаталог, Знач ПутьКФайлуПакета) Экспорт
5936

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

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

70-
Лог = Логирование.ПолучитьЛог("task.build");
71-
72-
//Лог = Логирование.ПолучитьЛог(ПараметрыСистемыOpm.ИмяЛогаСистемы());
73-
74-
ПутьКСценариюПараметров = ОбъединитьПути(ТекущийСценарий().Каталог, "src/cmd", "Модули", "ПараметрыПриложения.os");
75-
ПараметрыСистемы_ЛокальнаяВерсия = ЗагрузитьСценарий(ПутьКСценариюПараметров);
76-
ИмяПродукта = НРег(ПараметрыСистемы_ЛокальнаяВерсия.ИмяПриложения());
77-
ВерсияПродукта = ПараметрыСистемы_ЛокальнаяВерсия.Версия();
78-
79-
Описание.Имя(ИмяПродукта)
80-
.Версия(ВерсияПродукта)
81-
.ВерсияСреды("1.0.20")
47+
Описание.Имя("gitsync")
48+
.Версия("3.0.0-rc.2")
49+
.ВерсияСреды("1.0.21")
8250
.ВключитьФайл("src")
8351
.ВключитьФайл("embedded_plugins")
8452
.ВключитьФайл("oscript_modules")
8553
.ВключитьФайл("docs")
8654
.ВключитьФайл("readme.md")
55+
.ОпределяетКласс("МенеджерПлагинов", "src/core/Классы/МенеджерПлагинов.os")
8756
.ОпределяетКласс("МенеджерСинхронизации", "src/core/Классы/МенеджерСинхронизации.os")
88-
.ОпределяетКласс("УправлениеПлагинами", "src/core/Классы/УправлениеПлагинами.os")
89-
.ИсполняемыйФайл("src/cmd/gitsync.os", ИмяПродукта);
57+
.ОпределяетКласс("ПакетнаяСинхронизация", "src/core/Классы/ПакетнаяСинхронизация.os")
58+
.ИсполняемыйФайл("src/cmd/gitsync.os");

0 commit comments

Comments
 (0)