--- 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__ (запросах на слияние).