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
Copy file name to clipboardExpand all lines: docs/reference/contributing/guidelines/workflow.md
+66-45Lines changed: 66 additions & 45 deletions
Original file line number
Diff line number
Diff line change
@@ -1,45 +1,52 @@
1
1
### Workflow
2
2
3
-
#### Contributions
4
-
5
-
All code changes and additions to Mbed OS are handled through GitHub. If you want to contribute, either by adding features or by fixing bugs, please follow the guidelines for [new features](#contributing-new-features-to-mbed-os) and [bugs](#reporting-and-fixing-bugs). In both cases, please follow the [code style guide and GitHub pull request guidelines](/docs/v5.7/reference/guidelines.html#style)</a>. Please also read the [CLA](/docs/v5.7/reference/guidelines.html#cla) guidelines because we will immediately close pull requests submitted without a CLA.
6
-
7
-
#### Contributing new features to Mbed OS
3
+
All code changes and additions to Mbed OS are handled through GitHub. If you want to contribute, either by adding features or by fixing bugs, please follow the guidelines for [new features](#features) and [bugs](#reporting-bugs). In both cases, please follow the [code style guide and GitHub pull request guidelines](/docs/v5.7/reference/guidelines.html#style). Please also read the [Contributor License Agreement (CLA)](/docs/v5.7/reference/guidelines.html#cla) guidelines because we will immediately close pull requests submitted without a CLA.
8
4
9
-
Before contributing an enhancement (new feature, new port and so on), please [discuss it on the forums](https://os.mbed.com/forum/bugs-suggestions/) to avoid duplication of work, as we or others might be working on a related feature.
5
+
#### Mbed OS maintainers
10
6
11
-
Patch contributions can only be accepted through GitHub by creating a pull request from forked versions of our repositories. This allows us to review the contributions in a user friendly and reliable way, under public scrutiny.
7
+
The maintainers are a small group of Mbed OS engineers who are responsible for the Mbed OS codebase. Their primary role is to progress contributions, both internal and external, from the initial pull request state through to released code.
12
8
13
-
Please create separate pull requests for each concern; each pull request should have a clear unity of purpose. In particular, separate code formatting and style changes from functional changes. This makes each patch’s true contribution clearer and therefore quicker and easier to review.
9
+
Responsibilities:
14
10
15
-
#### Reporting and fixing bugs
11
+
1. Check for CLA compliance.
12
+
1. Ensure the relevant stakeholders review pull requests.
13
+
1. Guide contributors both technically and procedurally.
14
+
1. Run pull requests through the CI systems.
15
+
1. Put label version.
16
+
1. Merge pull requests into the requested branches.
17
+
1. Make periodic patch and feature releases.
16
18
17
-
Before submitting a bug report or a bug fix, please [discuss it on the forums](https://os.mbed.com/forum/bugs-suggestions/) to avoid duplication of work, as we or others might be working on it already.
All Mbed OS is on GitHub; please use GitHub's [issues mechanism](https://guides.github.com/features/issues/) to open a bug report directly against the relevant GitHub repository.
28
+
#### Contributions
22
29
23
-
##### Bug fixes
30
+
Before contributing an enhancement (new feature, new port and so on), please [discuss it on the forums](https://os.mbed.com/forum/bugs-suggestions/) to avoid duplication of work, as we or others might be working on a related feature.
24
31
25
-
Please refer to the [code contributions chapter](/docs/v5.7/reference/guidelines.html#style).
32
+
We can only accept contributions through GitHub if you create a pull request from forked versions of our repositories. This allows us to review the contributions in an easy-to-use and reliable way, under public scrutiny.
26
33
27
-
A member of the Mbed team must verify bug fixes before we pull the fixes into the main branch. You must therefore use GitHub to fork the repo and then submit a pull request with your changes.
34
+
Please create separate pull requests for each concern; each pull request needs a clear unity of purpose. In particular, separate code formatting and style changes from functional changes. This makes each pull request’s true contribution clearer, so review is quicker and easier.
28
35
29
-
The last line in your commit message description should say “Fixes #deadbeef”, where “deadbeef” is the issue number in GitHub. This allows GitHub to automatically close the issue when the commit is merged into the default branch.
36
+
##### Reporting bugs
30
37
31
-
#### Further reading
38
+
Please submit all Mbed OS bugs [on the forums](https://os.mbed.com/forum/bugs-suggestions/).
32
39
33
-
Please see the [code contributions chapter](/docs/v5.7/reference/guidelines.html#style) for the guidelines to GitHub pull requests and the coding style guide.
40
+
The bug report should be reproducible (fails for others) and specific (where and how it fails). We will close insufficient bug reports.
34
41
35
42
#### Guidelines for GitHub pull requests
36
43
37
44
Pull requests on GitHub have to meet the following requirements to keep the code and commit history clean:
38
45
39
-
- Commits should always contain a proper description of their content. Start with a concise and sensible one-line description. Then, elaborate on reasoning of the choices made, descriptions for reviewers and other information that might otherwisebe lost.
46
+
- Commits should always contain a proper description of their content. Start with a concise and sensible one-line description. Then, elaborate on reasoning of the choices made, descriptions for reviewers and other information that might otherwisebe lost.
40
47
- You should always write commits to allow publication, so they can never contain confidential information, reference private documents, links to intranet locations or rude language.
41
48
- Each commit should be the minimum self-contained commit for a change. A commit should always result in a new state that is again in a compilable state. You should (if possible) split large changes into logical smaller commits that help reviewers follow the reasoning behind the full change.
42
-
- Commits should follow [Chris Beam’s seven rules of great commit messages](http://chris.beams.io/posts/git-commit#seven-rules):
49
+
- Commits and pull request titles should follow [Chris Beam’s seven rules of great commit messages](http://chris.beams.io/posts/git-commit#seven-rules):
43
50
1. Separate subject from body with a blank line.
44
51
1. Limit the subject line to 72 characters (note that this is a deviation from Beam's standard).
45
52
1. Capitalize the subject line.
@@ -50,6 +57,27 @@ Pull requests on GitHub have to meet the following requirements to keep the code
50
57
- Because we use GitHub and explicit CLAs, special commit tags that other projects may use, such as “Reviewed-by”, or “Signed-off-by”, are redundant and should be omitted. GitHub tracks who reviewed what and when, and our stack of signed CLAs shows us who has agreed to our development contribution agreement.
51
58
- Prefixing your commit message with a domain is acceptable, and we recommend doing so when it makes sense. However, prefixing one's domain with the name of the repo is not useful. For example, making a commit entitled "mbed-drivers: Fix doppelwidget frobulation" to the `mbed-drivers` repo is not acceptable because it is already understood that the commit applies to `mbed-drivers`. Renaming the commit to "doppelwidget: Fix frobulation" would be better, if we presume that "doppelwidget" is a meaningful domain for changes, because it communicates that the change applies to the doppelwidget area of `mbed-drivers`.
52
59
- All new features and enhancements require documentation, tests and user guides for us to accept them. Please link each pull request to all relevant documentation and testing pull requests.
60
+
- Avoid merging commmits. (Always rebase when possible.)
61
+
- Pull requests should fix a bug, add a feature or refactor.
62
+
63
+
#### Pull request categories
64
+
65
+
##### Bug fixes
66
+
67
+
Every bug fix should contain a test to verify results prior to and after the pull request.
68
+
69
+
##### Changes and additions
70
+
71
+
Backward compatible changes (such as refactoring and enhancements) or new target additions can go into patch and feature releases. We only consider features and new functionality additions for feature releases.
72
+
73
+
##### Features
74
+
75
+
We initially implement new features on separate branches in the Mbed OS repository. Mbed OS maintainers create the new branches by following the naming convention: "feature-" prefix.
76
+
77
+
Each feature has a tech lead. This person is responsible for:
78
+
79
+
- Rebasing often to track master development.
80
+
- Reviewing any addition to the feature branch (approval required by the feature tech lead or another assigned person).
53
81
54
82
##### Pull request template
55
83
@@ -75,52 +103,45 @@ You can see test results [here](just an example).
75
103
76
104
```
77
105
78
-
#### Mbed OS maintainers
79
-
80
-
The maintainers are a small group of Mbed OS engineers who are responsible for the Mbed OS codebase. Their primary role is to progress contributions, both internal and external, from the initial pull request state through to released code. They:
81
-
82
-
1. Check for CLA compliance.
83
-
2. Ensure the relevant stakeholders review pull requests.
84
-
3. Guide contributors both technically and procedurally.
85
-
4. Run pull requests through the CI systems.
86
-
5. Merge pull requests into the requested branches.
87
-
6. Make periodic patch and feature releases.
88
-
89
-
The current maintainers are:
90
-
91
-
* Anna Bridge (adbridge).
92
-
* Martin Kojtal (0xc0170).
93
-
* Jimmy Brisson (theotherjimmy).
94
-
* Shrikant Tudavekar (studavekar).
95
-
* Sam Grove (sg-).
96
-
97
106
#### GitHub pull requests workflow
98
107
99
108
Each pull request goes through the following workflow:
100
109
101
110
<spanclass="images"><span>The workflow of merging a pull request</span></span>
102
111
103
-
#####Pull request states
112
+
#### Pull request states
104
113
105
-
Labels that the Mbed OS maintainers add to a pull request represent the pull request workflow states. The Mbed OS maintainers are responsible for moving pull requests through the workflow states.
114
+
The Mbed OS maintainers add labels to a pull request that represent the pull request workflow states. The Mbed OS maintainers are responsible for moving pull requests through the workflow states.
115
+
116
+
Each state is time boxed. In most cases, this is sufficient time to move to another state. The pull request can be closed if no update is provided within the time frame.
106
117
107
118
##### Reviews
108
119
109
-
All pull requests must be reviewed. The Mbed OS maintainers determine the most suitable person to review the pull request and tag that person accordingly. If a pull request requires a review from partners, the maintainers tag the corresponding GitHub group instead.
120
+
All pull requests must be reviewed. The Arm Mbed CI bot determines the most suitable person to review the pull request and tags that person accordingly.
121
+
122
+
Time: 3 days for reviewers to leave feedback after the maintainers add the "needs: review" label.
110
123
111
124
##### The CI (Continuous Integration) testing
112
125
113
-
There are a number of CI systems available. Which CI tests we run against a particular pull request depends on the effect of that pull request to the code base. Irrespective of which CIs tests run, Mbed OS has an all green policy, meaning that all the CI jobs that are triggered must pass before we merge the pull request.
126
+
There are many CI systems available. Which CI tests we run against a particular pull request depends on the effect that pull request has on the code base. Irrespective of which CIs tests run, Mbed OS has an all green policy, meaning that all the CI jobs that are triggered must pass before we merge the pull request.
127
+
128
+
Time: 1 day for CI to complete and report back results.
129
+
130
+
##### Work needed
131
+
132
+
A pull request in the work needed state requires additional work due to failed tests or rework as a result of the review. If a pull request is in this state, our maintainers request changes from the pull request author.
133
+
134
+
Time: 3 days for the pull request author to action the review comments.
114
135
115
136
##### Releases
116
137
117
-
Once we merge a pull request, we tag it with a release. This is the release in which we first publish this pull request. For patch releases, we allow only bug fixes, new targets and enhancements to existing functionality. New features only go to feature releases.
138
+
When we merge a pull request that we will publish in a patch release, we tag the pull request with the specific patch release version. This is the release in which we first publish this pull request. For patch releases, we allow only bug fixes, new targets and enhancements to existing functionality. New features only go to feature releases.
118
139
119
140
The release tag has the following format:
120
141
121
142
*release-version: 5.f.p* - Where `f` is the feature release and `p` the patch release.
122
143
123
-
#####Additional labels
144
+
#### Additional labels
124
145
125
146
We use many other labels to summarize the scope and effect of the changes.
0 commit comments