Skip to content

Commit a331e69

Browse files
add branching strategy
1 parent c2b34b3 commit a331e69

1 file changed

Lines changed: 24 additions & 0 deletions

File tree

README.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1480,6 +1480,30 @@ The `prepare-commit-msg` hook will automatically add the `Signed-off-by` line to
14801480

14811481
All pull requests are checked for DCO sign-off via CI. Commits without a `Signed-off-by` line will fail the check.
14821482

1483+
### Branching Strategy
1484+
1485+
Development happens on `main`. Each supported ROS distro has a dedicated branch (e.g., `humble`, `jazzy`) that is **continuously rebased** onto `main`.
1486+
1487+
```
1488+
main: A --- B --- C --- D
1489+
\
1490+
humble: D --- H1 --- H2 (distro-specific patches)
1491+
jazzy: D --- J1 (distro-specific patches)
1492+
```
1493+
1494+
**How it works:**
1495+
1496+
- All new features and bug fixes are developed against `main` via pull requests.
1497+
- Distro branches carry a small number of distro-specific patches (e.g., API compatibility shims, version pins) as commits on top of `main`.
1498+
- After `main` advances, distro branches are rebased onto it, keeping the patches at the tip.
1499+
- Distro branches are **force-pushed** after each rebase.
1500+
1501+
**Guidelines for contributors:**
1502+
1503+
- For general features and fixes, base your branch on `main` and open your PR against `main`.
1504+
- For distro-specific fixes, base your branch on the target distro branch and open your PR directly against it. Distro PRs are **squash-merged** to keep the patch stack clean for rebasing.
1505+
- Do not merge distro branches into `main` or vice versa — the relationship is always rebase, never merge.
1506+
14831507
## License
14841508
14851509
Licensed under the Apache License, Version 2.0. See [LICENSE](LICENSE) for details.

0 commit comments

Comments
 (0)