Skip to content

Conversation

@TravisEz13
Copy link
Member

@TravisEz13 TravisEz13 commented Nov 30, 2017

PR Checklist

Note: Please mark anything not applicable to this PR NA.

PR Summary

  • Update contribution guidelines to make updating the changelog required
  • add a checklist to PR template

@TravisEz13 TravisEz13 changed the title contribution guidelines: updating changelog should be required contribution guidelines: change to say updating changelog is required Nov 30, 2017
@markekraus
Copy link
Contributor

If I could kindly request that the PR checklist include the the correct level of tests have been run and passed (i.e. feature has been run on feature affecting changes).

@TravisEz13
Copy link
Member Author

Added, we didn't have any such language in the contribution guideline. I've added language to the template. If my language needs improvement but is adequate. I'd suggest filing an issue and we can fix it with a subsequent PR.


#### Pull request - Change log

* All PRs must either update the [changelog](../CHANGELOG.MD) in your pull request.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

either is either inappropriate or part of this sentence is missing

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

resolved

#### Pull request - Change log

* All PRs must either update the [changelog](../CHANGELOG.MD) in your pull request.
New changes always go into the **Unreleased** section at the top of the changelog.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What about calling out Breaking Changes? Is categorization of the changes handled as part of the PR update or continue to be done by maintainers? I think ideally, the PR author should make a call and PS-Maintainers and PS-Committee should review before publishing.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Resolved

- [ ] Use the present tense and imperative mood when describing your changes
- [ ] [Summarized changes](https://github.com/PowerShell/PowerShell/blob/master/.github/CONTRIBUTING.md#pull-request---submission)
- [ ] [Update the changelog](https://github.com/PowerShell/PowerShell/blob/master/.github/CONTRIBUTING.md#pull-request---changelog)
- [ ] User facing [Documentation needed](https://github.com/PowerShell/PowerShell/blob/master/.github/CONTRIBUTING.md#pull-request---submission) (remove if not needed)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we say 'insert NA' if not needed rather than removing? Easier to catch if there's a disagreement.

@@ -1,8 +1,11 @@
<!--
## PR Checklist
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this right place? I believe the check list is for maintainers only.

I'd prefer the template here:

### Problem description
 - The problem investigation results. Often we don't have understanding that we really fix - so we should describe/repo the problem here. 
 - Link to Issue in simple cases.
### Fix description
 - Description what and how we fix.
### Additional considerations
 - Which is not part of this change.
 - More information to best understanding this change.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Problem investigation and results should be in the issue.

This checklist is all items that by our defined process is supposed to be done by the contributor except for the one new item this PR specifically adds and the one @markekraus asked me to add.

Change Summary is supposed to be what you call the "fix description" and we the link in the checklist describes how to produce this. Change Summary is more appropriate because not all PRs are fixes.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Problem investigation and results should be in the issue.

I agree, but in fact, we see another. The initial description in a Issue is almost always different from what we need to do in PR. Moreover, in most cases Issues do not contain a final opinion.

+1 for Change Summary.

Non-blocking comment.


#### Pull request - Change log

* All PRs must update the [changelog](../CHANGELOG.MD) in your pull request.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Based on previous experience I don't like the requirement.

  • We reject formatting changes to get git commit that only contain significant changes. With this requirement, we will have trash in git commit. There is now a need to move commits to other branches. There will be more of these jobs over time. It's harder to do with this trash.
  • This will slow down the performance of community users and irritate them.

Finally, we can easily automate it. I previously sent @daxian-dbw a sample script. If we'll to keep the PR headers neat, we'll get a neat log of the automatic way.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We reject changes which contain both formatting and functional changes to the same file. This is not the same thing at all.
Unless we say, maintainers are not part of the community, I don't think we can say this. The PowerShell DSC community and other communities I've participated in have this requirement without issue.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Finally, I'm not sure it's easy to keep the PR headers clean and therefore automate it. By header, I assume you mean the message, and the message is often too limited to use for as the changelog. If you mean the notes, since they are unstructured, they suffer other problems.

If the author refuses to do this, the maintainer can always update the changelog for them, but in the DSC community, this was rarely an issue.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

DSC repository has less than 100 PR in the last two years. We have so much in two months. We will actually have a conflict in every PR with this file.

Previously, the team required to update the file and then forget it. Why? Probably because it's not a functional change that everyone forgets and ignores.

I'm sorry, I don't understand the usefulness of this file while there is an open GitHub - any consumer can at any time not only look at the history of changes, but also the history of the code.

This is a secondary element to me. If this element requires so much effort, I immediately think that it should be removed or automated. If we can't use a PR header/description, we could think about using a commit header/description.

Copy link
Member Author

@TravisEz13 TravisEz13 Dec 1, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We will actually have a conflict in every PR with this file.

There is an attribute on the file to use a Union merge, which is supposed to prevent merge conflicts. This may cause some issues in the file, but should produce a usable file. Many other projects use this method.

DSC repository has less than 100 PR in the last two years. We have so much in two months.

When you were looking at the DSC Repository, did you count all the submodules? I asked the DSC team and DSC had 43 PRs in November across all the repos.

I'm sorry, I don't understand the usefulness of this file while there is an open GitHub ...

As to the purpose of the file, most people that just want to consume the project would like a simplified way of viewing what has been changed in the project from their perspective. This is not what the PR or the commit log is about and this needs to be reviewed in context to make sure it's being expressed clearly. For example, #2253 suggest we include a link to the changelog in the What's New section of the documentation.

... I immediately think that it should be removed or automated.

Even if it were automated, translating from the contributor focused messaged of the PR to the PowerShell user-focused message in the changelog is what is taking the time. Automating gathering the PR descriptions and links would only solve at best half the problem.

Copy link
Collaborator

@iSazonov iSazonov Dec 2, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When you were looking at the DSC Repository, did you count all the submodules? I asked the DSC team and DSC had 43 PRs in November across all the repos.

No, I follow your link. I wonder do they have one changelog for all repos? If no they never have merge conflicts as we had previously with the file.

I'm not the first person who wants this "kill" feature:
https://pypi.python.org/pypi/gitchangelog#changelog
https://www.npmjs.com/package/auto-changelog
https://github.com/skywinder/github-changelog-generator
Also I found this project very interesting (and links there too).

My comments isn't blocking.

Copy link
Member Author

@TravisEz13 TravisEz13 Dec 3, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this one is the most interesting: https://github.com/skywinder/github-changelog-generator But, it needs a LOT of work to be usable. This issue needs to be fixed, and we would like to be able to group by tags.

This issue needs to be fixed:
github-changelog-generator/github-changelog-generator#493

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tracking Issue #5614

@TravisEz13
Copy link
Member Author

@SteveL-MSFT , @iSazonov said his comments are not blocking. Can you update your feedback? I think we should proceed with trying this and see how it goes.

Copy link
Member

@SteveL-MSFT SteveL-MSFT left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM - Everyone should understand that we are always open to feedback and nothing is set in stone. Based on a team discussion, one of the biggest costs for a release is creating the ChangeLog hence updating this document to push it to the contributor most aware of why the changes are being made and ideally how it's useful to end users.

@TravisEz13 TravisEz13 merged commit b039daf into PowerShell:master Dec 4, 2017
@TravisEz13 TravisEz13 deleted the changelog branch December 4, 2017 22:32
@TravisEz13 TravisEz13 added this to the 6.0.0-RC.2 milestone Dec 5, 2017
TravisEz13 added a commit to TravisEz13/PowerShell that referenced this pull request Dec 5, 2017
…PowerShell#5586)

- Update contribution guidelines to make updating the changelog required
- add a checklist to PR template

Comment by @SteveL-MSFT :
> Everyone should understand that we are always open to feedback and nothing is set in stone. Based on a team discussion, one of the biggest costs for a release is creating the ChangeLog hence updating this document to push it to the contributor most aware of why the changes are being made and ideally how it's useful to end users.
TravisEz13 added a commit that referenced this pull request Dec 5, 2017
…#5586)

- Update contribution guidelines to make updating the changelog required
- add a checklist to PR template

Comment by @SteveL-MSFT :
> Everyone should understand that we are always open to feedback and nothing is set in stone. Based on a team discussion, one of the biggest costs for a release is creating the ChangeLog hence updating this document to push it to the contributor most aware of why the changes are being made and ideally how it's useful to end users.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants