Skip to content
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

Changelog Automation #16215

Merged
merged 21 commits into from
Jan 22, 2021
Merged

Changelog Automation #16215

merged 21 commits into from
Jan 22, 2021

Conversation

breathingdust
Copy link
Member

@breathingdust breathingdust commented Nov 16, 2020

Community Note

  • Please vote on this pull request by adding a 👍 reaction to the original pull request comment to help the community and maintainers prioritize this request
  • Please do not leave "+1" or other comments that do not add relevant new information or questions, they generate extra noise for pull request followers and do not help prioritize the request

This Pull Request adds automation to generate the CHANGELOG.md contents for the unreleased milestone after every pull request merge. It does so via the https://github.com/hashicorp/go-changelog tool currently in use in the google provider and a number of other HashiCorp repositories.

This should result in a significant reduction in overhead for maintainers, more consistent output, and an integration of the review of changelog contents into the code review process itself.

It also contains documentation to ensure that contributors are aware of the steps necessary to generate a successful changelog entry, and changes to the pull request template.

Note that that rollout of this process will require this to be merged immediately after a release (when no unreleased changelog notes exist)

@ghost ghost added size/L Managed by automation to categorize the size of a PR. documentation Introduces or discusses updates to documentation. provider Pertains to the provider itself, rather than any interaction with AWS. tests PRs: expanded test coverage. Issues: expanded coverage, enhancements to test infrastructure. labels Nov 16, 2020
@@ -69,3 +69,23 @@ jobs:
key: ${{ runner.os }}-go-pkg-mod-${{ hashFiles('go.sum') }}
- run: cd tools && go install github.com/client9/misspell/cmd/misspell
- run: misspell -error -source text CHANGELOG.md

Copy link
Member Author

Choose a reason for hiding this comment

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

I'm wondering if we should add a check to ensure the changelog file naming (number) matches the PR number.

Copy link
Contributor

Choose a reason for hiding this comment

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

I can think of a few cases where this won't necessarily be true, so it might be best to wait and see how much of a problem it is:

  • Separate pull request to add a changelog entries for previously merged pull requests
  • Pull request to fix an existing changelog entry

Copy link
Contributor

@bflad bflad Nov 17, 2020

Choose a reason for hiding this comment

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

Thinking about this more, it might be really good if we separately had content checking tooling to reduce some maintainer burden:

  • Release note blocks should not contain new lines (instead should be multiple release note blocks)
  • Ensuring category entries except features contain entry categories
  • If there is an entry category, ensure it has the prefix resource/aws_, data-source/aws_, provider, or (fairly rarely) service/

Doesn't need to be part of the MVP though. This type of Markdown AST checking is fairly fresh in my mind from recent enhancements to tfproviderdocs so can certainly help or provide guidance.

@breathingdust breathingdust marked this pull request as ready for review November 16, 2020 19:07
@breathingdust breathingdust requested a review from a team as a code owner November 16, 2020 19:07
Copy link
Contributor

@bflad bflad left a comment

Choose a reason for hiding this comment

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

Overall this is super exciting -- left some initial feedback. 👍

docs/contributing/pullrequest-submission-and-lifecycle.md Outdated Show resolved Hide resolved
docs/contributing/pullrequest-submission-and-lifecycle.md Outdated Show resolved Hide resolved
GNUmakefile Show resolved Hide resolved
docs/contributing/pullrequest-submission-and-lifecycle.md Outdated Show resolved Hide resolved
scripts/changelog.tmpl Outdated Show resolved Hide resolved
.github/workflows/changelog.yml Outdated Show resolved Hide resolved
@@ -69,3 +69,23 @@ jobs:
key: ${{ runner.os }}-go-pkg-mod-${{ hashFiles('go.sum') }}
- run: cd tools && go install github.com/client9/misspell/cmd/misspell
- run: misspell -error -source text CHANGELOG.md

Copy link
Contributor

Choose a reason for hiding this comment

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

I can think of a few cases where this won't necessarily be true, so it might be best to wait and see how much of a problem it is:

  • Separate pull request to add a changelog entries for previously merged pull requests
  • Pull request to fix an existing changelog entry

docs/contributing/pullrequest-submission-and-lifecycle.md Outdated Show resolved Hide resolved
docs/contributing/pullrequest-submission-and-lifecycle.md Outdated Show resolved Hide resolved
@bflad bflad self-assigned this Nov 17, 2020
@ghost ghost added size/XL Managed by automation to categorize the size of a PR. and removed size/L Managed by automation to categorize the size of a PR. labels Nov 24, 2020
Copy link
Contributor

@bflad bflad left a comment

Choose a reason for hiding this comment

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

This was fully tested outside this repository and looks good to me. Over time we can create tooling to handle linting the CHANGELOG files.

docs/contributing/pullrequest-submission-and-lifecycle.md Outdated Show resolved Hide resolved
docs/contributing/pullrequest-submission-and-lifecycle.md Outdated Show resolved Hide resolved
@breathingdust breathingdust merged commit f3a52a8 into master Jan 22, 2021
@breathingdust breathingdust deleted the workflow/changelog branch January 22, 2021 02:00
@github-actions github-actions bot added this to the v3.26.0 milestone Jan 22, 2021
@ghost
Copy link

ghost commented Jan 28, 2021

This has been released in version 3.26.0 of the Terraform AWS provider. Please see the Terraform documentation on provider versioning or reach out if you need any assistance upgrading.

For further feature requests or bug reports with this functionality, please create a new GitHub issue following the template for triage. Thanks!

@ghost
Copy link

ghost commented Feb 21, 2021

I'm going to lock this issue because it has been closed for 30 days ⏳. This helps our maintainers find and focus on the active issues.

If you feel this issue should be reopened, we encourage creating a new issue linking back to this one for added context. Thanks!

@ghost ghost locked as resolved and limited conversation to collaborators Feb 21, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
documentation Introduces or discusses updates to documentation. provider Pertains to the provider itself, rather than any interaction with AWS. size/XL Managed by automation to categorize the size of a PR. tests PRs: expanded test coverage. Issues: expanded coverage, enhancements to test infrastructure.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants