Team repository
Directory structure
Refer to Team repository structure for more information on team repository documentation.
-
/
- 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. Pull 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@github.com:ut-robotics/picr22-team-<team-name>.git picr22-team-<team-name>-documentation
git clone --single-branch --branch software https://github.com/ut-robotics/picr22-team-<team-name> picr22-team-<team-name>-software
General documentation
-
documentation
branch should be used. -
Daily blogs should be written into README.asciidoc in root directory.
-
Pull 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 pull request should be created.
-
Instructors will review the pull request and either give feedback that needs to be resolved or merge the pull request.
-
After the pull 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 pull request needs to be created.
Firmware
-
firmware
branch should be used. -
When the functionality has been implemented and thoroughly tested, a pull request should be created.
-
Instructors will review the pull request and either give feedback that needs to be resolved or merge the pull request.
-
After the pull 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 pull request needs to be created.
Electronics
-
electronics
branch should be used. -
Instructors should be notified in Slack, 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 GitHub issues.
-
All issues need to be resolved. If the issues are resolved, instructors should be notified in Slack 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 Fusion 360.
-
Instructors should be notified in Slack, 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 GitHub issues.
-
All issues need to be resolved. If the issues are resolved, instructors should be notified in Slack 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.