Release notes for repos

@grace as promised I quickly drafted a github action that creates release notes for any new tag in a repo. I applied it to the webservices.rest module for now. Please see an example of release notes here: https://github.com/openmrs/openmrs-module-webservices.rest/releases/tag/2.49.0-test

It’s not exactly changes for 2.49.0 tag, because releases cannot be created for existing tags. I needed to create a new test tag based on master. So it contains changes from 2.48.0 to the latest master tagged 2.49.0-test.

The github aciton is here openmrs-module-webservices.rest/.github/workflows/release.yml at master · openmrs/openmrs-module-webservices.rest · GitHub

Again it cannot be used to create release notes for already existing tags, only for new tags. Also there needs to be a release created manually before adding this github action, because the action takes commits from the latest release to the selected tag.

Please let me know if you would like anything else adjusted and we can add it to other repos.

The steps to apply it to other repos:

  1. Create a release manually of the latest tagged version
  2. Add .github/workflows/release.yml to the repo

Whenever there’s a new tag created, there will be release added to GitHub with release notes for that tag.

I’ll cleanup webservices.rest releases and tags once you review it.

3 Likes

Thank you so much @raff this is such a relief! :smiley:

  1. The example release notes for 2.49.0-test look great. I love how thorough it is, so no one’s contribution will be missed. Looks like you got it to include direct commits, not just PRs; is that right?
  2. Re. creating manual releases: I did that yesterday for most things in the backend, will list the ones I did below. (There were only ~3 that I didn’t release manually for different reasons, will also describe below.)
  3. Re. whenever there’s a new tag created: when is tag creation itself triggered? Is it when a release is done in Bamboo? (Sorry I think this was mentioned yesterday; just checking to make sure we’re not auto-triggering release notes for a release that’s not, like, actually release-ready.)

Releases manually created yesterday:

Releases NOT manually created (yet) because of issues:

  1. Appointments: v 2.1.0-20250318.070530-1 from 2.0.0-20240305.062514-14 (reason: couldn’t figure out which repo this was supposed to be coming from!)
  2. Teleconsultation: v 2.1.0-20250318.154145-1 from 2.0.0-20230831.113926-1 (reason: also not sure which repo this was supposed to be coming from!)

Yes, it lists commits, not just PRs.

Bamboo creates tags as part of a module release.

Occasionally someone can create a tag manually, which will be considered as a release, but it is not. We can delete such a release or require that release tags are in specific version format. I’d just say that for now we can manually delete releases for not actual release tags. It’s just a click of a button in GitHub.

2 Likes

Added the release action to all repos except for:

and

Bahmni repos don’t seem to tag releases reliably in github. @angshuonline would you and your team be open to adjust release scripts to create tags and release notes for these repos? I can assist with that.

As far as openmrs-core is concerned it’s a bit more tricky, because of different maintenance branches. The changelog generator assumes there’s only one release line, whereas we have 2.5.x, 2.6.x, 2.7.x, etc. We need to manually create release notes indicating the from and to tag for now. There’s probably some other action that could handle it for us, but I didn’t find one with a quick search.

1 Like

It seems like an easy change to do in the action to support core. I’ll work on that sometime next week.