-
Notifications
You must be signed in to change notification settings - Fork 3k
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
Simplify pull request template #11563
Conversation
Condense multiple options into the main three and summarise what can go into those 3 types. Add a test results section. Add compulsory sections to Release Notes.
@adbridge, thank you for your changes. |
.github/pull_request_template.md
Outdated
[ ] Docs update | ||
[ ] Test update | ||
[ ] Breaking change | ||
[ ] Patch update (Bug fix / Target update / Docs update / Test update / Refactor) |
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.
We should link to contribution guidelines with some further description of these.
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 believe refactor should go into feature one as stated also in our guidelines
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 believe refactor should go into feature one as stated also in our guidelines
Bartek thought it should go to patch unless the actual functionality is changed
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.
We should link to contribution guidelines with some further description of these.
Don't we already do that in the non visible notes?
This section is compulsory for all Feature and Major PR types.
This section is automatically added to release notes. Please fill in each sub-section with sufficient detail for a user.
For more information, please see [the contributing guidelines](https://os.mbed.com/docs/mbed-os/latest/contributing/workflow.html#pull-request-types).
Although that comes under the Release Notes. Should we maybe put that right at the top or are you saying we should make that note visible?
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.
Could be on the top as "Read our guidelines (url reference here) to understand pull request template" or similar note
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.
Bartek thought it should go to patch unless the actual functionality is changed
@kjbracey-arm is that OK? I've seen this previously considered as refactors are internal changes (the worst thing there is introducing new bugs, but all backward compatible).
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.
The reason to not include refactors (or any change not fixing a specific bug) would be to reduce the chance of unneccessarily introducing new bugs.
It increases confidence for users that the patch series is safe to accept general updates from - if they're on 5.14.x, they could feel confident that 5.14.y won't break anything.
In semantic versioning terms, certainly, a refactor would be a patch version increment, as it's supposed to be backwards compatible. But a Linux kernel patch release wouldn't accept it a backported kernel "refactor" unless it was to fix a specific bug, on grounds of risk.
So Bartek or someone needs to make the call on desired stability of backport patch series.
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.
@bulislaw Please confirm this change is fine .
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.
Otherwise looks good !
.github/pull_request_template.md
Outdated
[ ] Docs update | ||
[ ] Test update | ||
[ ] Breaking change | ||
[ ] Patch update (Bug fix / Target update / Docs update / Test update / Refactor) |
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 believe refactor should go into feature one as stated also in our guidelines
.github/pull_request_template.md
Outdated
[ ] Breaking change | ||
[ ] Patch update (Bug fix / Target update / Docs update / Test update / Refactor) | ||
[ ] Feature update (New feature / Functionality change / New API) | ||
[ ] Major update (Breaking change E.g. Return code change / API behaviour change) |
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.
should we add here - Release notes required
, and also for feature update?
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.
There is a comment under the Release Notes section that says it is compulsory for Feature and Major updates
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.
There is a comment under the Release Notes section that says it is compulsory for Feature and Major updates
yes, just thinking if I fill this in if I get to Release notes :-) I would leave it in both places
.github/pull_request_template.md
Outdated
[ ] Test update | ||
[ ] Breaking change | ||
[ ] Patch update (Bug fix / Target update / Docs update / Test update / Refactor) | ||
[ ] Feature update (New feature / Functionality change / New API) |
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.
If a PR is a feature update, can we add a sub-question to ask the submitter to confirm where is the documentation and tests related to this new feature. @adbridge
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.
as if "new API or feature, documentation and tests provided are required" ?
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.
@jamesbeyond We already have a rest results (optional) section there. Are you saying we should expand on that to also show evidence for new feature testing ? I'm happy to do that. We could also have a section for 'Documentation Link'. What do @0xc0170 and @bulislaw think?
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.
Test Result
would make people think the CI that running would provide the test result.
The really question here is: if your PR is about a new feature, where is your tests ? are these test can be executed by current CI ?
Maybe we can make the section compulsory, but let them choose one from bellow?
[ ] No Tests required for this change
[ ] This PR changes will be covered by existing tests and CI
[ ] Tests supplied with in this PR
[ ] Other, specify bellow
BTW, I'd like to have the Documentation link section as well
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.
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 think our goal is trying formalize and clarify the process, make the guidance easy for users to follow, and make it easy for us to manage the PRs. Not just only simplify it 😉
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.
The problem with above is for many people CI tests are unkown and even testing infrastructure, they test it via their app or simple test case, so this would be mostly for internal teams rather than all of us.
What we often do is ask a simple question "How was this tested", maybe this type of question to be included in the template - it should make a person think about testing this. The answer could be one of the above "no tests done" , "tested on simple app", "run entire test suite", etc. I still feel we don't test enough would this question asked for all PRs help us to improve test coverage?
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.
Yes @0xc0170 I agree with you. So the things I am a bit worried is about when people adding new feature, they more focus about the feature and forgot about tests and documentation.
e.g. the baremetal profile. Having this test compulsory section would let aware that tests are required as part of feature.
Also tested on simple app
it is not acceptable to me for a new feature. we need them either in formal of Greentea
, Unittest
format or a test in their own team's CI, unless they'll need a really good explanation why there is no test.
For the changes to a existing feature, it is fairly enough for them to claim this is already covered by a exist greentea
or unittest
tests
Where is the test?
is one of the question, and we know there are limitation about CI, e.g. USB test is is not running. I think that's another issue for CI/Infra team to resolve
Also add section separators
Updated to add test results section and separating lines. Note to see them properly you have to look at the file in none edit mode. I've edited the template on this actual PR to demonstrate. |
Made required/optional italic and removed a couple of superfluous lines
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.
A comment to "Tests" section only, the rest looks fine to me.
Are "Tests" required or optional? the header states required, then in the comment it is optional?
I am not certain about "covered by existing tests and CI" - most of people have no idea what runs in CI, so would remove "and CI" but that might be just me being picky.
"Tests supplied below" - rather add "Test results" ?
BTW, how about documentation section? are we still having that section? |
Docs covered in the Patch update.
If not any of these 3, the text below these 3 options is "others" - does it need own item in the list? |
Not sure what 'others' would be? Pretty sure those 3 cover everything. Either no testing, testing covered by us or else they need to supply evidence... |
@jamesbeyond @0xc0170 @bulislaw please take another look |
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.
Not certain about separators
As in the lines ? |
I forgot to remove my dated comment , as I firstly checked how it looks in the template then reviewed the file generated, all fine to me. |
[] Major update (Breaking change E.g. Return code change / API behaviour change) | ||
|
||
---------------------------------------------------------------------------------------------------------------- | ||
### Test results (*required*) |
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.
So is it required or optional? It says required in line 28 and optional in 30
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.
Required should be updated, I thought I had changed line 30 in the last update - will check
.github/pull_request_template.md
Outdated
Optional | ||
In case of breaking changes, functionality changes or refactors, please add release notes here. | ||
For more information, please see [the contributing guidelines](https://os.mbed.com/docs/mbed-os/latest/contributing/workflow.html#pull-request-types). | ||
This section is compulsory for all Feature and Major PR types. |
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.
For the features and major PRs we need only "summary of changes", for breaking changes we need all three subsections.
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.
Major update is a breaking change?
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.
OK updated the comments accordingly
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.
Looks good to me, thanks!
CI started |
Looks like this is ready, just need docs update reference here. |
Docs PR approved (ARMmbed/mbed-os-5-docs#1158), I'll merge this one |
Now looks like:
Description (required)
Summary of change (What the change is for and why)
Condense multiple options into the main three and summarize what
can go into those 3 types.
Add a test results section.
Added additional guidance
Documentation (Details of any document updates required)
Updates required to workflow docs
Pull request type (required)
Test results (required)
Reviewers (optional)
Release Notes (required for feature/major PRs)
Summary of changes
Impact of changes
Migration actions required