Skip to content

Commit 67e4aac

Browse files
author
Amanda Butler
authored
Merge pull request #377 from 0xc0170/dev_workflow_impr
Workflow document update
2 parents cce6ea3 + c64da10 commit 67e4aac

File tree

1 file changed

+66
-45
lines changed

1 file changed

+66
-45
lines changed

docs/reference/contributing/guidelines/workflow.md

Lines changed: 66 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,52 @@
11
### Workflow
22

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.
84

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
106

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.
128

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:
1410

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.
1618

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.
19+
The current maintainers are:
1820

19-
##### Bug reports (issues) on GitHub
21+
* [Anna Bridge](https://os.mbed.com/users/AnnaBridge).
22+
* [Martin Kojtal](https://os.mbed.com/users/Kojto).
23+
* [Jimmy Brisson](https://os.mbed.com/users/theotherjimmy).
24+
* [Shrikant Tudavekar](https://os.mbed.com/users/shrikant1213).
25+
* [Sam Grove](https://os.mbed.com/users/sam_grove).
26+
* [Cruz Monrreal](https://os.mbed.com/users/MrCruz).
2027

21-
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
2229

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.
2431

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.
2633

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.
2835

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
3037

31-
#### Further reading
38+
Please submit all Mbed OS bugs [on the forums](https://os.mbed.com/forum/bugs-suggestions/).
3239

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.
3441

3542
#### Guidelines for GitHub pull requests
3643

3744
Pull requests on GitHub have to meet the following requirements to keep the code and commit history clean:
3845

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 otherwise be 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 otherwise be lost.
4047
- 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.
4148
- 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):
4350
1. Separate subject from body with a blank line.
4451
1. Limit the subject line to 72 characters (note that this is a deviation from Beam's standard).
4552
1. Capitalize the subject line.
@@ -50,6 +57,27 @@ Pull requests on GitHub have to meet the following requirements to keep the code
5057
- 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.
5158
- 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`.
5259
- 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).
5381

5482
##### Pull request template
5583

@@ -75,52 +103,45 @@ You can see test results [here](just an example).
75103
76104
```
77105

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-
97106
#### GitHub pull requests workflow
98107

99108
Each pull request goes through the following workflow:
100109

101110
<span class="images">![](https://s3-us-west-2.amazonaws.com/mbed-os-docs-images/Workflow.png)<span>The workflow of merging a pull request</span></span>
102111

103-
##### Pull request states
112+
#### Pull request states
104113

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.
106117

107118
##### Reviews
108119

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.
110123

111124
##### The CI (Continuous Integration) testing
112125

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.
114135

115136
##### Releases
116137

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.
118139

119140
The release tag has the following format:
120141

121142
*release-version: 5.f.p* - Where `f` is the feature release and `p` the patch release.
122143

123-
##### Additional labels
144+
#### Additional labels
124145

125146
We use many other labels to summarize the scope and effect of the changes.
126147

0 commit comments

Comments
 (0)