zt
03/10/2026, 3:28 AMversion property in my root build.gradle.kts, then pushing to GitHub, then manually running my release workflow. Of course this has a huge issue where I've forgotten at times to bump the version, or even once, embarrassingly, published the wrong version. Does anyone have tips on how to better handle this process?Joffrey
03/10/2026, 7:12 AM-PversionCLOVIS
03/10/2026, 8:18 AMgit describe --tags to get a unique version identifier (= to the tag if there's one, something else otherwise)
• That is passed to Gradle as -PappVersion , we have a convention plugin that reads it and overwrites Gradle's version field
• We have a script that generates Markdown blog pages for each tag
Bonus: the full changelog is available to anyone who clones the repo, directly in the tags.
Example resultmbonnin
03/10/2026, 8:23 AM1.2.3-SNAPSHOT . When I push a tag, the CI script drops the -SNAPSHOT and publishes a release.
Then I bump and commit the version alongside the changelog.mbonnin
03/10/2026, 8:25 AMJoffrey
03/10/2026, 9:15 AMJoffrey
03/10/2026, 9:16 AMJoffrey
03/10/2026, 9:19 AMmbonnin
03/10/2026, 9:20 AMJoffrey
03/10/2026, 9:20 AMJoffrey
03/10/2026, 9:21 AMmbonnin
03/10/2026, 9:23 AMJoffrey
03/10/2026, 9:24 AMJoffrey
03/10/2026, 9:24 AMJoffrey
03/10/2026, 9:24 AMCLOVIS
03/10/2026, 9:28 AMor from another computer that's not my usual computer.We'll see if I change my mind in the future, but so far I consider that a feature: tags can only be created from my two main laptops, because they have to be signed
I want my tag to point to a commit that already has the changelog of that version.Same, this is why the changelog isn't a physical file, and instead is directly the tag message
mbonnin
03/10/2026, 9:29 AMJoffrey
03/10/2026, 9:30 AMSame, this is why the changelog isn't a physical file, and instead is directly the tag messageInteresting! Is this integrated automatically with GitHub releases? As in, is the body automatically read from the git tag message?
mbonnin
03/10/2026, 9:30 AMCLOVIS
03/10/2026, 9:30 AMI profoundly dislike changelogs that are generated from commitsSame. I have a script that generates a changelog, but it's only useful for project contributors. The changelog that is published on the website is hand-written, and doesn't include non-user-facing work (e.g. upgrading test dependencies, adding more tests, etc)
Joffrey
03/10/2026, 9:33 AMCLOVIS
03/10/2026, 9:36 AMIs this integrated automatically with GitHub releases? As in, is the body automatically read from the git tag message?Yes and no. On GitHub, I don't create releases, so it shows the 'tags' list instead. There, it does show the full message, but it doesn't interpret Markdown. However, I expect that most users will look at the website (which has an RSS feed etc). Also, I primarly develop on GitLab. The releases system is identical, but it prefills the release with the tag contents, so it takes me two clicks to create a proper release. There is a way to automate it fully but I haven't done it yet, that's not at all in the critical path
CLOVIS
03/10/2026, 9:36 AMCLOVIS
03/10/2026, 9:37 AMJoffrey
03/10/2026, 9:37 AMJoffrey
03/10/2026, 9:37 AMCLOVIS
03/10/2026, 9:37 AMmbonnin
03/10/2026, 9:38 AMJoffrey
03/10/2026, 9:38 AMmbonnin
03/10/2026, 9:38 AMCLOVIS
03/10/2026, 9:39 AMCLOVIS
03/10/2026, 9:41 AMAdam S
03/10/2026, 9:46 AMsettings.gradle.kts that sets the project version based on the git status.
If the project is clean checkout of a tag starting with v then that's the project version. Otherwise, the version is ${branchName}-SNAPSHOT.
https://github.com/adamko-dev/kotlinx-serialization-typescript-generator/blob/e2faa80f579c263da4ce829f7b511e9c1a19f35b/settings.gradle.kts#L56-L131CLOVIS
03/10/2026, 9:52 AMzt
03/12/2026, 1:32 AM