Skip to content

Conversation

@hugovk
Copy link
Member

@hugovk hugovk commented Oct 13, 2025

Before making the next release, I'd like to propose some more automation using Release Drafter, to make releasing easier and take out some of the drudgery. I'm using this in more than a dozen other projects.

The new workflow would be something like:

Before merging PRs:

  • Add one of the following labels:

    • changelog: Added
    • changelog: Changed
    • changelog: Deprecated
    • changelog: Fixed
    • changelog: Removed
    • changelog: Security
    • changelog: skip
  • Check the PR title is suitable to be shown in the release page

After merge:

  • The action runs and it creates a draft release under https://github.com/jazzband/tablib/releases. Only committers can see this, until published.
  • It groups the changes under those headers.
  • And because we use SemVer, it also pre-fills the next version number. So for example, if there's just "Changelog: Fixed", it's a micro bump; if "Changelog: Added", it's minor, and if "Changelog: Removed", it's major.
  • "Changelog: skip" is for tests and things that aren't of interest to the end user and don't need adding to the changelog.

At release:

  • When it's time to release, edit the draft and adjust the text if needed, then publish like before

Benefits:

  • We don't need to manually trawl through the PRs from last time and manually update https://github.com/jazzband/tablib/blob/master/HISTORY.md
  • You pick a title for the changelog entry at merge time, when the PR is fresh in your mind
  • Likewise, you pick SemVer levels at merge time
  • Pre-fills the release entry according to SemVer
  • Less for us to fill in
  • Can check the draft at any time to see how much is ready for release

Downsides:

What do you think?

I'll add the labels if it's okay to go ahead.

@claudep
Copy link
Contributor

claudep commented Oct 13, 2025

Hi @hugov,

I'm never a big fan of automation, but feel free to go ahead, as you are doing most of the release job. I'm mostly doubtful about automatic HISTORY.md, as I always found manually-written changelogs more accurate. I guess we could always post-edit them, if really needed, right?

@hugovk
Copy link
Member Author

hugovk commented Oct 13, 2025

In the suggested workflow, we stop updating HISTORY.md, but if you want to keep that we could add a step to manually copy the info from https://github.com/jazzband/tablib/releases into HISTORY.md?

We always get the opportunity to edit the release info at https://github.com/jazzband/tablib/releases before it goes out. For other projects, usually I don't, other than sometimes adjust the order so more important things are first. But I have sometimes added some more info there.

(As it happens, HISTORY.md has mostly just been PR titles anyway.)

@claudep
Copy link
Contributor

claudep commented Oct 14, 2025

Please go ahead, we'll see in practice what's the result will be. I'm fully trusting you 🤩

@hugovk hugovk marked this pull request as ready for review October 15, 2025 12:20
@hugovk hugovk added the changelog: skip Exclude PR from release draft label Oct 15, 2025
@hugovk
Copy link
Member Author

hugovk commented Oct 15, 2025

Please go ahead, we'll see in practice what's the result will be. I'm fully trusting you 🤩

Thanks, let's see how it goes, and happy to make adjustments in the future!

https://github.com/jazzband/tablib/actions/runs/18468250067/job/52615477509?pr=631

stack: 'Error: Configuration file .github/release-drafter.yml is not found. The configuration file must reside in your default branch.\n' +

This error should go away after merge.

At least 1 approving review is required by reviewers with write access.

Please could you approve it?

@hugovk hugovk merged commit bd2ea7a into jazzband:master Oct 15, 2025
23 of 25 checks passed
@hugovk hugovk deleted the release-drafter branch October 15, 2025 18:12
@hugovk
Copy link
Member Author

hugovk commented Oct 15, 2025

OK, it's now run and created a draft at https://github.com/jazzband/tablib/releases:

image

I'll go through those PRs and add changelog labels so they'll be sorted.

@hugovk
Copy link
Member Author

hugovk commented Oct 15, 2025

Much better!

image

@claudep
Copy link
Contributor

claudep commented Oct 15, 2025

👍

@hugovk
Copy link
Member Author

hugovk commented Oct 15, 2025

Right, then I clicked the pencil icon, checked if anything needed editing (I decided it was okay), and then clicked Publish.

That kicked off GitHub Actions to do the release: https://github.com/jazzband/tablib/actions/runs/18538580208

Which then did the usual Jazzband thing, and a couple of clicks later, it's now up on PyPI!

https://pypi.org/project/tablib/3.9.0/

@hugovk
Copy link
Member Author

hugovk commented Oct 15, 2025

And after release, we can see new things appearing in the next draft:

image

https://github.com/jazzband/tablib/releases

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

changelog: skip Exclude PR from release draft

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants