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

Add Release Drafter #45

Closed
asbjornu opened this issue Mar 21, 2021 · 17 comments
Closed

Add Release Drafter #45

asbjornu opened this issue Mar 21, 2021 · 17 comments
Labels
🙅 no/wontfix This is not (enough of) an issue for this project 👎 phase/no Post cannot or will not be acted on

Comments

@asbjornu
Copy link
Collaborator

Subject of the feature

With Release Drafter, creating GitHub releases becomes mostly automatic.

Problem

It requires quite a bit of manual labour to create release notes. Release Drafter automates most of this labour, making the creation of new releases much easier.

Expected behavior

The creation of releases should not be a tiresome, manual ordeal.

Alternatives

GitReleaseManager is an option, but it's more heavy-handed than Release Drafter. There exists a lot of other alternatives as well, but I have not familiarized myself with them.

@asbjornu asbjornu added 🦋 type/enhancement This is great to have 🙉 open/needs-info This needs some more info labels Mar 21, 2021
@wooorm
Copy link
Member

wooorm commented Mar 21, 2021

No strong opinions here, but I’m a fan of manually releasing + writing release notes 🤷‍♂️

@asbjornu
Copy link
Collaborator Author

I agree the release publishing should be manual, but the labour of adding issue numbers, author names, titles, etc., to a draft release is something that could and should be automated, imho.

@wooorm
Copy link
Member

wooorm commented Mar 21, 2021

the labour of adding issue numbers, author names, titles, etc.

I add issue, pr, and commit references, plus author / reviewer names, etc, to commits. Example: wooorm/xdm@f9c3108.
Because I squash, that leaves the commit log as essentially a changelog: I edit a little bit: remove a couple things, add some more where needed. And done! That labor has to be done somewhere, and this is pretty and useful: https://github.com/nodejs/node/commits/master

@asbjornu
Copy link
Collaborator Author

Yes, conventional commits are nice when enforced. I just don't have the time nor energy to enforce them and thus Release Drafter is an easy way out.

@ChristianMurphy
Copy link
Member

I just don't have the time nor energy to enforce them and thus Release Drafter is an easy way out.

That's what CommitLint is for 🙂 (https://commitlint.js.org)

An example integration with GitHub action: https://github.com/uPortal-Project/uPortal-web-components/blob/1dfd1788a9f935e274b026e69ad95266bbcf24b2/.github/workflows/CI.yml#L39-L40

@asbjornu
Copy link
Collaborator Author

Sorry, the last comment was posted in error. I'll have a look @ChristianMurphy.

@asbjornu
Copy link
Collaborator Author

With #50 merged, I thought this would be a good time to create a new release and with all the merges now being squashed, the job of creating the release notes has become even more tiresome, as the Git log no longer contains the merge messages with the PR number.

I don't want the release notes to only enumerate what's new, I want a reference to the PR that implemented the change and who implemented it.

Release Drafter automates all of this. Even with CommitLint set up, the work of creating the release notes needs help from a tool. I'm not going to be manually finding the source PR of each commit on the main branch.

I hope you have suggestions for how to deal with this, because the current situation makes me not want to create any releases.

@wooorm
Copy link
Member

wooorm commented Apr 11, 2021

@asbjorn I think it's ok if you don't want to cut releases. Let me know when you want me to do so, and how I can do that with your current set up of the repo

@asbjornu
Copy link
Collaborator Author

It's not that I don't want to cut releases period, I just don't have the time to cut them as things are now without any help from tooling such as Release Drafter. If you can agree to give it a try, I'll happily create releases going forward.

@remcohaszing
Copy link
Member

I suggest to the following release process:

@JounQin
Copy link
Member

JounQin commented Jul 15, 2022

The GitHub release is auto created on tag pushed by Changesets Action

https://github.com/mdx-js/vscode-mdx/blob/master/.github/workflows/release.yml

https://github.com/mdx-js/vscode-mdx/blob/master/.github/workflows/version.yml

We only need to focus on changesets.

@asbjornu
Copy link
Collaborator Author

The difficult and boring task is to create the changelog that goes into the releases, not creating the release itself. Release Drafter can be used to automatically aggregate all pull requests that are merged into a changelog, so the changelog doesn't have to be punched in manually.

@JounQin
Copy link
Member

JounQin commented Jul 18, 2022

The difficult and boring task is to create the changelog

changesets changelog can be added with help its not comment or cli, and the content is always editable before release, instead of depends on commit message only.

PR related links like author and original author are referenced automatically instead.

Changesets is a great tool to me personally, although adding changeset needs some verbose action, but it's very scalable.

@asbjornu
Copy link
Collaborator Author

asbjornu commented Jul 18, 2022

The content Release Drafter creates is also editable. What it does is that whenever a pull request is merged, if a drafted release does not exists, it is created. The release is created in draft state so it is not published or available publicly. While pull requests are being merged, the draft release is updated with new content, adding to the changelog. All automatically. Once the release is ready to go, someone goes through it and sees that it looks good, gives it a proper version number and turns it from "draft" to "published" state, making it public and available to the world.

Release Drafter only needs one configuration file and doesn't need anything to be done in every pull request to indicate that "this should go into the release". It's much easier to just have every pull request added automatically and then delete stuff that shouldn't be there right before publishing the release. Release Drafter is a great tool and I don't understand the resistance to use it while at the same time embracing changesets, which seems like a much heavier and more complex solution to me.

@JounQin
Copy link
Member

JounQin commented Jul 18, 2022

Release Drafter is a great too

Seems it's also sweet, I'll give it a try in my projects later, thanks for points.

@wooorm
Copy link
Member

wooorm commented Jul 20, 2022

Closing, agreeing with Remco above.
I quite disagree that writing changelog entries are difficult and boring. I am rather proficient at creating them from Git history, and do not find the work tedious.


I'm not going to be manually finding the source PR of each commit on the main branch.

GH does that. And our commit messages include that info.

It's much easier to just have every pull request added automatically and then delete stuff that shouldn't be there right before publishing the release.

Using commit history also allows for this.

@wooorm wooorm closed this as not planned Won't fix, can't repro, duplicate, stale Jul 20, 2022
@wooorm wooorm added 🙅 no/wontfix This is not (enough of) an issue for this project 👎 phase/no Post cannot or will not be acted on and removed 🦋 type/enhancement This is great to have 🙉 open/needs-info This needs some more info labels Jul 20, 2022
@asbjornu
Copy link
Collaborator Author

Ok, you do releases then. I’m out.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🙅 no/wontfix This is not (enough of) an issue for this project 👎 phase/no Post cannot or will not be acted on
Development

No branches or pull requests

5 participants