GitLab guide
Guide for using GitLab hosted team repository.
Directory structure
-
/
- general documentation -
software/
- robot’s code -
electronics/
- electronics design -
firmware/
- mainboard firmware
Branches
Use correct branch to edit files in a specific directory.
It is allowed to create subdirectories in the root directory
if the directory names don’t conflict with directories listed above.
For example images
directory for documentation.
Do not merge between branches listed below.
-
main
(protected) - default branch. Direct pushing not allowed. Merge requests should be created against this branch. -
documentation
- for editing main README.asciidoc and any other general documentation in root directory. -
software
- for robot’s code and related documentation insoftware
directory. -
electronics
- for electronics design and related documentation inelectronics
directory. -
firmware
- for mainboard firmware and related documentation infirmware
directory.
Workflow
Cloning the repository
Instead of switching between branches, it’s more convenient to clone documentation branch and other branches you are working with into separate directories.
Example:
git clone --single-branch --branch documentation git@gitlab.ut.ee:loti.05.023/picr2024/picr24-team-<team-name>.git picr24-team-<team-name>-documentation
git clone --single-branch --branch software git@gitlab.ut.ee:loti.05.023/picr2024/picr24-team-<team-name>.git picr24-team-<team-name>-software
General documentation
-
documentation
branch should be used. -
Merge request should be created when general documentation is ready for review.
Software
-
software
branch should be used. -
When the functionality for a programming task has been implemented and thoroughly tested on the court, a merge request should be created and instructors notified about it.
-
Instructors will review the merge request and either give feedback that needs to be resolved or merge the merge request.
-
After the merge request has been merged, the relevant task can be presented during practical.
-
If the robot is able to complete the task, then the team gets the task approved.
-
If code changes are needed for completing the task, new merge request needs to be created.
Firmware
-
firmware
branch should be used. -
When the functionality has been implemented and thoroughly tested, a merge request should be created and instructors notified about it.
-
Instructors will review the merge request and either give feedback that needs to be resolved or merge the merge request.
-
After the merge request has been merged, the relevant task can be presented during practical.
-
If the mainboard functionality is demonstrated and meets the firmware task requirements, then the team gets the task approved.
-
If code changes are needed for completing the task, new merge request needs to be created.
Electronics
-
electronics
branch should be used. -
Instructors should be notified when the team would like feedback on preliminary design or review of completed design.
-
Design will be reviewed by instructors and feedback will be given as GitLab issues.
-
All issues need to be resolved. If the issues are resolved, instructors should be notified for reviewing the design again. Issues should not be closed by team members. Instructors will close the issues when they have been resolved.
-
If the final review has been completed and there are no more issues, then the design tasks are completed and the PCBs will be ordered by instructors.
-
When the electronics documentation is ready, it needs to be reviewed the same way as the design.
Mechanics
-
Mechanics design must be created in Autodesk Fusion.
-
Instructors should be notified when the team would like feedback on preliminary design or review of completed design.
-
Design will be reviewed by instructors and feedback will be given as GitLab issues.
-
All issues need to be resolved. If the issues are resolved, instructors should be notified for reviewing the design again. Issues should not be closed by team members. Instructors will close the issues when they have been resolved.
-
If the final review has been completed and there are no more issues, then the design tasks are completed and the design can be prepared for milling.
-
Manufacturing setup for milling needs to be reviewed the same way as the designs.