json-schema-validator icon indicating copy to clipboard operation
json-schema-validator copied to clipboard

New release

Open JohanMabille opened this issue 3 months ago • 7 comments

Hi,

Last release (2.3.0) was 2 years ago, and now that we upgraded to nlohmann_json 3.12, I think it would be nice to release a new version. It seems that there is no API breaking changes since 2.3.0; so I guess the new version should be 2.4.0. I can cut a release if nobody else can do it, but I don't know the release process (should it be a PR? a commit directly on main with only the version number updated?)

JohanMabille avatar Nov 02 '25 22:11 JohanMabille

There was no real release process.

What I did in the past was integrating MR which I could oversee and which didn't break the regression tests.

If that was OK, I pushed a tag to main directly.

But this was before there were package-creation CI jobs.

pboettch avatar Nov 03 '25 10:11 pboettch

The common workflow is to make a PR to consolidate and refine the changelog. There doesn't seem to be one in this project, but not opposed to adding one either manually or via towncrier or equivalent, and I can share some tips that I have gathered about these. Because of this, just tagging and publishing a release is good enough.

LecrisUT avatar Nov 03 '25 10:11 LecrisUT

Yeah, that's actually one principle we should follow: a pushed tag + CI-jobs should generate the release-files and the packages - nothing should be done manually (I'm getting old, and this is where I'm coming from - CI-formalisation is so much better).

If there aren't any special release CI-jobs, than at the tag will make githab create the source-package and the links on the site.

pboettch avatar Nov 03 '25 10:11 pboettch

We can use https://github.com/elgohr/Github-Release-Action to generate the Github releases with changelog when a tag is pushed. This still requires to push a tag manually. We can fully automatize that with a Github App that will run the workflow, but that requires some configuration at the org / user account level. That can be done later though.

EDIT: there we go

JohanMabille avatar Nov 03 '25 19:11 JohanMabille

I cannot find my original reference, so hope this comment is helpful enough to describe the workflow. Basically it creates and rebases a release PR where the changelog is compiled. My inspiration for that was somewhere in executablebooks but I can't find it now.

Otherwise for just creating releases from tags I recommend something dead simple: https://github.com/spglib/spglib/blob/develop/.github/workflows/release.yaml it is an extendable workflow, but for this project it can be reduced to just the last job.

LecrisUT avatar Nov 03 '25 20:11 LecrisUT

What do you think of running a script from the Github history and sorting entries by "topic" (new feature, bug fix, maintenance) that we can enforce with PR labels? I find it simpler for the contributors than asking them to add a new file for each entry in the changelog.

JohanMabille avatar Nov 04 '25 17:11 JohanMabille

That is basically .github/release.yaml workflow, perfectly fine workflow IMO. The things you would have to note is that the PR title is used for the entries so make sure you sanitize them as needed.

As for having them in a changelog, that can be done when the release is cut. There is some gh cli to do this, but it's been a while since I last looked into it.

LecrisUT avatar Nov 04 '25 17:11 LecrisUT