robossembler.org/docs/workflow-rules.md

101 lines
6.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
id: workflow-rules
title: Правила работы c git
---
## Общий порядок внесения изменений в репозитории
1. _Разработчик_, который хочет внести изменения в проект, клонирует к себе репозиторий, создаёт новую ветку с указанием в её имени номера задачи (например, 5-issue или 5-motor-fix), делает **commit**, делает **push** на сервер и **merge request** (запрос на слияние) через веб-интерфейс;
2. _Maintainter_ (ведущий разработчик данного подпроекта) видит уведомление о том, что поступил запрос на слияние, делает **pull** с сервера в свой личный репозиторий (то есть подгружает ветку к себе) и рассматривает работу
3. После рассмотрения maintainter даёт обратную связь в виде комментариев в merge request - это называется **review**.
4. Разработчик получает уведомления о замечаниях ведущего, исправляет их и возвращается на п.1
5. После исправления замечаний maintainer их проверяет, делает **merge** и изменения включаются в основную ветку(как правило, **main**).
## Правила публикации 3D моделей
- Файлы нативных (то есть специфичных для конкретной CAD-программы) форматов `.SLDPART`, `.SLDASM`, `.FCStd` публикуются в директории `src`.
- Для каждой отдельной подсборки создаётся отдельная директория.
- В корне директории публикуется STEP файл, включающий в себя все подсборки. Наименование файла должно отражать его содержание, поэтому следует избегать таких названий как `model`, `module`, `part`; желательно сборке в STEP присвоить имя репозитория - если репозиторий называется `roboarm-controller`, то файл будет называться `roboarm-controller.STEP`.
- Архивы в репозитории не публикуются.
- Для создания версий моделей используются метки - `tags`. Для создания метки нужно войти на страницу изменения и нажать вверху справа в выпадающем меню tag. Наименований версий в именах файлов (`*_v2.SLDPART`) быть не должно!
- В файле README.md размещается описание модели и характеристики
- Картинки размещаются в директории `img`
- Модели для симуляций размещаться в директории `sim`
Образец:
```
./README.md
./soldering-tool.step
./img/
./img/soldering-tool.png
./src/
./src/паяльное_приспособление_в_сборе.SLDMASM
./src/картридж/картридж.SLDMASM
./src/картридж/крышка.SLDPART
./src/насадка/насадка.SLDMASM
```
## Файлы для добавления в .gitignore
Часто различные CAD/IDE/EDA создают в ходе работы временные файлы (бэкапы, пользовательские настройки и т.п.), которые не следует добавлять в историю изменений. Чтобы git игнорировал эти файлы, необходимо создать файл .gitignore в корне репозитория и добавить необходимые расширения. Ниже приведены шаблоны игнорируемых файлов для различных сред разработки.
### KiCAD
[Подробнее](https://docs.kicad.org/master/en/kicad/kicad.html#kicad_files_and_folders)
```
# Temporary files
*.kicad_prl
*.000
*.bak
*.bck
*.kicad_pcb-bak
*.sch-bak
*~
_autosave-*
*.tmp
*-save.pro
*-save.kicad_pcb
fp-info-cache
# Netlist files (exported from Eeschema)
*.net
# Autorouter files (exported from Pcbnew)
*.dsn
*.ses
```
### Solidworks
```
# ignore SolidWorks temporary files
~$*.SLDPRT
~$*.SLDASM
*.log
*.ini
```
### VSCode
```
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
!.vscode/*.code-snippets
# Local History for Visual Studio Code
.history/
# Built Visual Studio Code Extensions
*.vsix
```
## Настройка уведомлений в Gitlab
Чтобы получать уведомления об изменениях по своим задачам и упоминаниях себя в обсуждениях:
1. Перейдите по ссылке https://gitlab.com/-/profile/notifications и установите Notification email
2. Для поля __Global notification Level__ выберите __Custom__ и укажите галочками какие уведомления желаете получать. Как минимум, следует указать:
__New Issue__ - для новых задач, назначенных на Вас
__New Note__ - для заметок, где вы упоминаетесь
__Due date__ - уведомление о сроках завершения Вашей задачи
Ниже можно установить определённый набор уведомлений для конкретных репозиториев и подпроектов. Например, если Вы - __Maintainer__ (ведущий разработчик), то нужно получать уведомления о новых __Merge request__ (запросах на слияние).