Repository Structure
Naming Conventions¶
Repositories should be appropriately named to reflect their purpose. For repositories containing universal projects, avoid including the project name in the repository name.
Git Branching Strategy¶
This strategy standardizes repository work, reduces error risks and issues, and shortens deployment time for new projects.
main
- this branch holds the latest development changes and producesnigtly
buildsrelease
- holdsstable
and versioned releasesfeature/<feature-name>
- used to develop new features or enhancements
For ROS2-related repositories:
<ros2_version>
- for repositories related to ROS2, branches named with a ROS2 version (e.g., humble, foxy) are treated as releases corresponding to that specific ROS2 versionbackport/<version>
- used to apply changes from the main branch to specific ROS2 version branches.
Note
For documentation repositories, the release branch is not used. Instead, the main
branch serves as the deployable documentation.
CI/CD Practices:
- automatic CI should be set up for stable, nightly, and tagged branches, typically producing the appropriate Docker images.
- direct work on the
release
branch should be avoided; all changes should occur throughmain
or appropriatefeature
orbackport
branches.
Continuous Integration (CI)¶
- repositories should have CI/CD configured to:
- verify that the project builds correctly (for pull requests)
- build the project and publish results, such as Docker images
- use tagging conventions in Docker images according to the branching strategy