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

chore(changelog): Add script to generate release notes #285

Merged
merged 2 commits into from
Mar 15, 2021

Conversation

mttrbrts
Copy link
Sponsor Member

This PR adds documentation and a script for maintainers to use to automatically generate release note content from GitHub Pull Requests.

Flags

  • Note that the mapping in package.json uses the lowercase version of the GitHub Labels with unicode emoji characters rather than their short-codes.

Here is a sample output for the latest unreleased changes.


Unreleased (2021-03-10)

✨ Enhancement

  • ui-contract-editor
  • storybook, ui-components, ui-concerto, ui-contract-editor, ui-markdown-editor
  • ui-markdown-editor
  • storybook, ui-markdown-editor
    • #229 style(ui-markdown-editor): resolve toolbar icon shrinkage - I228 (@K-Kumar-01)

🐛 Bug

🧼 Chore

  • storybook, ui-concerto

Committers: 8

Signed-off-by: Matt Roberts <code@rbrts.uk>
Copy link
Member

@irmerk irmerk left a comment

Choose a reason for hiding this comment

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

Some questions...

Comment on lines +56 to +60
"type: breaking change 💥": ":boom: Breaking Change",
"type: enhancement ✨": ":sparkles: Enhancement",
"type: bug 🐛": ":bug: Bug",
"type: chore 🧼": ":soap: Chore",
"type: documentation 📝": ":memo: Documentation"
Copy link
Member

@irmerk irmerk Mar 10, 2021

Choose a reason for hiding this comment

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

So it looks like we should maybe do a more comprehensive mapping of our labels to match what is in our current releases (that relate to web-components)?

Copy link
Sponsor Member Author

Choose a reason for hiding this comment

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

I found that in cases where multiple labels have been applied, this tool adds the PR in multiple places.

Personally, I also find the difference between a "Feature Request", "Enhancement" and "Styling" to be too subtle for a release note.

Also, "Feature Request" specifically doesn't make much sense as a category for a release note.

Copy link
Sponsor Member Author

Choose a reason for hiding this comment

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

BTW, I also tried mapping "Feature Request" and "Styling" labels to ":sparkles: Enhancement" but that leads to a bug in the tool where we end up with 3 copies of the "Enhancement" section and the "Feature request" and "Styling" PRs are lost.

Copy link
Member

@irmerk irmerk Mar 10, 2021

Choose a reason for hiding this comment

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

Well I think Type: Feature Request 🛍️ would be 🚀 New Feature.

So actually, what happens to merged PRs that are Type: Feature Request 🛍️ right now? Are they not included?

Copy link
Sponsor Member Author

Choose a reason for hiding this comment

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

So actually, what happens to merged PRs that are Type: Feature Request 🛍️ right now? Are they not included?

That's right, they get ignored.

What's the difference between Type: Enhancement ✨ , Type: Feature Request 🛍️ (as a GitHub label ) and 🚀 New Feature ?

Copy link
Member

@irmerk irmerk Mar 10, 2021

Choose a reason for hiding this comment

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

Type: Enhancement ✨ and Type: Feature Request 🛍️ are labels for PRs and Issues, 🚀 New Feature is a tag in the release note. More PRs are tagged Type: Feature Request 🛍️ than Type: Enhancement ✨, so we don't want to be ignoring those.

Copy link
Sponsor Member Author

Choose a reason for hiding this comment

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

Let me rephrase...

In a release note, personally, I wouldn't expect a category called "Feature Request". By the time that it gets to that stage, the change is a feature (or an enhancement). I agree that "Feature Request" makes sense as a label for issues, but less so for PRs.

In that context, we shouldn't retain both and map them to the same 🚀 New Feature section in a release note because of the bug that I mentioned in lerna-changelog. We can only have unique targets in the mapping.

So my proposal is to not use the label Type: Feature Request 🛍️ for PRs and instead use Type: Enhancement ✨. An alternative would be to also label every PR that has Type: Feature Request 🛍️ with Type: Enhancement ✨ (because the former would be ignored)

Copy link
Member

Choose a reason for hiding this comment

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

Okay yeah this makes sense. So Issues => Type: Feature Request 🛍️, PRs => Type: Enhancement ✨.

Could you as a next step update https://github.com/accordproject/web-components/wiki to have the Release Workflow Guide to not point to techdocs and rather fork that information and update it with what this PR changes? We'll want to have something definitive for maintainers to reference when both creating a release note and also labeling PRs.

DEVELOPERS.md Show resolved Hide resolved
DEVELOPERS.md Outdated Show resolved Hide resolved
DEVELOPERS.md Outdated Show resolved Hide resolved
Signed-off-by: Matt Roberts <code@rbrts.uk>
Copy link
Member

@DianaLease DianaLease left a comment

Choose a reason for hiding this comment

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

This is awesome!

@mttrbrts mttrbrts merged commit 57d3a82 into accordproject:master Mar 15, 2021
@mttrbrts mttrbrts deleted the mr-changelog branch March 15, 2021 19:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants