-
Notifications
You must be signed in to change notification settings - Fork 178
Contributing - update licensing and tips #871
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
6a73fc3
e6efac2
80d8c73
c30e971
f9d8c20
eac6024
4653081
bc84b9d
4184bc2
80e0e78
399f5ae
8b238b8
49078f5
ffa5fac
47e1679
c12ae7e
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -93,13 +93,13 @@ We consider the following pull request types. | |
|
||
#### Fix | ||
|
||
A bug fix is a backward-compatible internal change that fixes incorrect behavior. | ||
A bug fix is a change that fixes a specific defect in the codebase with backwards compatibility. These are the highest priority because of the positive impact the change will have on users developing against the same code. A bug fix should be limited to restoring the documented or proven otherwise, originally intended behavior. Bug fixes are candidates for patch releases. Large, non-trivial bug fixes approaching the size of refactors run the risk of being considered refactors themselves. | ||
|
||
Release: patch | ||
|
||
#### Refactor | ||
|
||
Refactors are intended for feature releases, if they are not fixing specific issues, because they can introduce new issues. | ||
A refactor is a contribution that modifies the codebase without fixing a bug or changing the existing behavior. Examples of this would be moving functions or variables between translation units, renaming source files or folders, scope modification for nonpublic code, documentation structure changes, and test organization changes. There is always the risk that someone depended on the location or name before a refactor therefore these are lower in priority than bug fixes and might require detailed justification for the change. Refactors are candidates for feature releases. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. If a refactor is made in a backwards-compatble way, can they be targeted for patch releases? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. What about if a refactor fixes a bug? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Either they fix a bug separately or will go with refactor. Everything should be backward compatible (only exceptionally not) There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. So making sure, if a the only way to fix a particular bug is with a refactor, that PR will have to come into the next major release? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It should |
||
|
||
Release: feature | ||
|
||
|
@@ -109,11 +109,11 @@ Updating target implementation (adding a new target or updating already supporte | |
|
||
Release: patch | ||
|
||
#### Feature | ||
#### Functionality change | ||
|
||
New features target feature releases. A new feature can only be integrated if the feature supports most of the targets (if it requires new target HAL implementation). | ||
Any change in the functionality, it can be adding a new feature, adding a new method or a function. Software language does not matter. | ||
|
||
We consider adding a new functionality to be a feature. It does not matter if it is C++, C or Python. | ||
A feature contribution contains a new API, capability or behavior. It does not break backwards compatibility with existing APIs, capabilities or behaviors. New feature contributions are very welcome in Mbed OS. However, because they add capability to the codebase, it's easy for a new feature to introduce bugs and a support burden. The introduction of new features should also come with documentation, majority of targets support and comprehensive test coverage proving the correctness of the feature per the documentation. Feature PRs are treated cautiously, and new features require a new minor version for the codebase. Features are candidates for feature releases. | ||
|
||
Release: feature | ||
|
||
|
@@ -133,6 +133,8 @@ Release: patch | |
|
||
A breaking change is any change that results in breaking user space. It should have strong justification for us to consider it. Often, such changes can be backward compatible, for example, deprecating the old functionality and introducing the new replacement. | ||
|
||
A contribution containing a breaking change is the most difficult PR to get merged. Any breaking changes in a codebase can have a large negative impact on any users of the codebase. Breaking changes are always limited to a major version release. | ||
|
||
Release: major | ||
|
||
### Pull request template | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I wonder if line 37 should be moved into this list.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
will fix