Skip to content

Commit afc978c

Browse files
committed
workflow: update (stage time, issues)
This update contains: - maintainers addition - issues should point to os mbed forum - time box each stage - feature branches
1 parent 841272a commit afc978c

File tree

1 file changed

+56
-59
lines changed

1 file changed

+56
-59
lines changed

docs/reference/contributing/guidelines/workflow.md

Lines changed: 56 additions & 59 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,77 +57,67 @@ 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.
5362

54-
##### Pull request template
63+
#### Pull request categories
5564

56-
Below is a good example of a pull request:
65+
##### Bug fixes
5766

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

61-
# Description
69+
##### Changes and additions
6270

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

65-
Tested locally with two targets and all toolchains.
73+
##### Features
6674

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

69-
# Pull request type
77+
Each feature has a tech lead. This person is responsible for:
7078

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).
7581

76-
```
82+
#### GitHub pull requests workflow
7783

78-
#### Mbed OS maintainers
84+
Each pull request goes through the following workflow:
7985

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+
<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>
8187

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
8889

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

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

97-
#### GitHub pull requests workflow
94+
##### Reviews
9895

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

101-
<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>
98+
Time: 3 days for reviewers to leave feedback after the maintainers add the "needs: review" label.
10299

103-
##### Pull request states
100+
##### The CI (Continuous Integration) testing
104101

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

107-
##### Reviews
104+
Time: 1 day for CI to complete and report back results.
108105

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
110107

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

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

115112
##### Releases
116113

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

119116
The release tag has the following format:
120117

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

123-
##### Additional labels
120+
#### Additional labels
124121

125122
We use many other labels to summarize the scope and effect of the changes.
126123

0 commit comments

Comments
 (0)