You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit intentionally uses a non-conventional commit message to
demonstrate how the new CI checks surface formatting issues. When this
lands on the PR, expect both the PR title check and the commit message
check to flag it with helpful comments showing contributors exactly
what needs to change.
Once everyone has seen the failure in action, this commit should be
squashed into the main migration commit and reworded to follow the
conventional commits format.
Signed-off-by: Ramon Roche <mrpollo@gmail.com>
|`navigator`| Mission, RTL, Land, and other navigation modes |
46
64
|`sensors`| Sensor drivers and processing |
47
65
|`drivers`| Hardware drivers |
48
66
|`boards/px4_fmu-v6x`| Board-specific changes (use the board name) |
49
-
|`multicopter`| Multicopter-specific control and estimation |
50
-
|`fixedwing`| Fixed-wing-specific control and estimation |
67
+
|`mc_att_control`| Multicopter attitude control |
68
+
|`mc_pos_control`| Multicopter position control |
69
+
|`fw_att_control`| Fixed-wing attitude control |
51
70
|`vtol`| VTOL-specific logic |
52
71
|`actuators`| Mixer and actuator output |
53
72
|`battery`| Battery monitoring and estimation |
54
73
|`logger`| On-board logging |
55
74
|`param`| Parameter system |
56
75
|`simulation`| SITL, Gazebo, SIH |
57
-
|`CI`| Continuous integration and workflows |
76
+
|`ci`| Continuous integration and workflows |
58
77
|`docs`| Documentation |
59
78
|`build`| CMake, toolchain, build system |
60
-
|`uORB`| Inter-module messaging |
79
+
|`uorb`| Inter-module messaging |
80
+
81
+
For changes spanning multiple subsystems, use the primary one affected. Look at the directory path of the files you changed to find the right scope: `src/modules/ekf2/` uses `ekf2`, `src/drivers/imu/` uses `drivers/imu`, `.github/workflows/` uses `ci`.
61
82
62
-
For changes spanning multiple subsystems, use the primary one affected.
83
+
### Breaking changes
84
+
85
+
Append `!` before the colon to indicate a breaking change:
86
+
87
+
```
88
+
feat(ekf2)!: remove deprecated height fusion API
89
+
```
63
90
64
91
### Good commit messages
65
92
66
93
```
67
-
ekf2: fix height fusion timeout
68
-
mavlink: add BATTERY_STATUS_V2 support
69
-
boards/px4_fmu-v6x: enable UAVCAN
70
-
navigator: fix RTL altitude calculation
71
-
CI: migrate to reusable workflows
72
-
docs: update EKF tuning guide
94
+
feat(ekf2): add height fusion timeout
95
+
fix(mavlink): correct BATTERY_STATUS_V2 parsing
96
+
refactor(navigator): simplify RTL altitude logic
97
+
ci(workflows): migrate to reusable workflows
98
+
docs(ekf2): update tuning guide
99
+
feat(boards/px4_fmu-v6x)!: remove deprecated driver API
100
+
perf(mc_rate_control): reduce loop latency
73
101
```
74
102
75
103
### Commits to avoid
76
104
77
105
These will be flagged by CI and should be squashed or reworded before merging:
78
106
79
107
```
80
-
fix # too vague, no subsystem
81
-
update # too vague, no subsystem
108
+
fix # too vague, no type or scope
109
+
update # too vague, no type or scope
110
+
ekf2: fix something # missing type prefix
82
111
apply suggestions from code review # squash into parent commit
83
112
do make format # squash into parent commit
84
113
WIP: trying something # not ready for main
@@ -87,7 +116,11 @@ oops # not descriptive
87
116
88
117
### PR titles
89
118
90
-
The PR title follows the same `subsystem: description` format. This is especially important because the PR title becomes the commit message when a PR is squash-merged.
119
+
The PR title follows the same `type(scope): description` format. This is enforced by CI and is especially important because the PR title becomes the commit message when a PR is squash-merged.
120
+
121
+
### Merge policy
122
+
123
+
Commits should be atomic and independently revertable. Squash at reviewer discretion for obvious cases (multiple WIP commits, messy review-response history). When your commits are clean and logical, they will be preserved as individual commits on `main`.
0 commit comments