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
+56-59Lines changed: 56 additions & 59 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,77 +57,67 @@ 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.
53
62
54
-
#####Pull request template
63
+
#### Pull request categories
55
64
56
-
Below is a good example of a pull request:
65
+
##### Bug fixes
57
66
58
-
```
59
-
Fix deep sleep locking bug
67
+
Every bug fix should contain a test to verify results prior to and after the pull request.
60
68
61
-
# Description
69
+
##### Changes and additions
62
70
63
-
Fix problems that could leave deep sleep locked unintentionally, along with adding tests to verify this behavior is fixed.
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.
64
72
65
-
Tested locally with two targets and all toolchains.
73
+
##### Features
66
74
67
-
You can see test results [here](just an example).
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.
68
76
69
-
# Pull request type
77
+
Each feature has a tech lead. This person is responsible for:
70
78
71
-
- [x] Fix
72
-
- [ ] Refactor
73
-
- [ ] New Target
74
-
- [ ] Feature
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).
75
81
76
-
```
82
+
#### GitHub pull requests workflow
77
83
78
-
#### Mbed OS maintainers
84
+
Each pull request goes through the following workflow:
79
85
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:
86
+
<spanclass="images"><span>The workflow of merging a pull request</span></span>
81
87
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
+
#### Pull request states
88
89
89
-
The current maintainers are:
90
+
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.
90
91
91
-
* Anna Bridge (adbridge).
92
-
* Martin Kojtal (0xc0170).
93
-
* Jimmy Brisson (theotherjimmy).
94
-
* Shrikant Tudavekar (studavekar).
95
-
* Sam Grove (sg-).
92
+
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.
96
93
97
-
####GitHub pull requests workflow
94
+
##### Reviews
98
95
99
-
Each pull request goes through the following workflow:
96
+
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.
100
97
101
-
<spanclass="images"><span>The workflow of merging a pull request</span></span>
98
+
Time: 3 days for reviewers to leave feedback after the maintainers add the "needs: review" label.
102
99
103
-
##### Pull request states
100
+
##### The CI (Continuous Integration) testing
104
101
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.
102
+
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.
106
103
107
-
##### Reviews
104
+
Time: 1 day for CI to complete and report back results.
108
105
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.
106
+
##### Work needed
110
107
111
-
##### The CI (Continuous Integration) testing
108
+
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.
112
109
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.
110
+
Time: 3 days for the pull request author to action the review comments.
114
111
115
112
##### Releases
116
113
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.
114
+
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
115
119
116
The release tag has the following format:
120
117
121
118
*release-version: 5.f.p* - Where `f` is the feature release and `p` the patch release.
122
119
123
-
#####Additional labels
120
+
#### Additional labels
124
121
125
122
We use many other labels to summarize the scope and effect of the changes.
0 commit comments