Replace unmaintained semantic-build-versioning with Reckon#255
Merged
Replace unmaintained semantic-build-versioning with Reckon#255
Conversation
gradle-semantic-build-versioning is no longer maintained and won't work with upcoming Gradle versions. Switch to org.ajoberstar.reckon.settings, which preserves the "X.Y.Z-SNAPSHOT on dev, X.Y.Z on tag" behavior that publishing-conventions relies on via isRelease(). Releases now pass -Preckon.stage=final when publishing from a tag instead of -Prelease. Generated with Claude Code
Reckon's settings plugin applies the inferred version to every project; the old plugin only set rootProject.version. That caused non-published subprojects like tests:lib2 to produce jars with a version suffix (lib2-0.2.1-SNAPSHOT-test-fixtures.jar), breaking an integration test that asserts on the jar filename. Published modules re-assign version in publishing-conventions, so resetting subprojects preserves the previous behavior without touching publishing. Generated with Claude Code
The release workflow only runs on tag push, and Reckon infers the tag's version as-is when HEAD is on a tag. The stage property is only needed to promote a non-tagged commit, which this workflow never does. Generated with Claude Code
Latest release on Maven Central. Only breaking change is the Java 17 minimum (JGit 7 upgrade), which CI already satisfies via corretto 17. Generated with Claude Code
Reckon's settings plugin sets version on every project, which makes tests:lib2 produce a versioned jar (lib2-X.Y.Z-SNAPSHOT-test-fixtures.jar) instead of the old lib2-test-fixtures.jar. Rather than force subprojects back to an unspecified version, extract the jar's filename from the test-classpath system property — the test already gets that classpath from Gradle, so it's the source of truth for whatever filename Gradle produced. Generated with Claude Code
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #255 +/- ##
===========================================
- Coverage 90.94% 0 -90.95%
===========================================
Files 44 0 -44
Lines 1137 0 -1137
Branches 157 0 -157
===========================================
- Hits 1034 0 -1034
+ Misses 52 0 -52
+ Partials 51 0 -51 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
3 tasks
ogolberg
added a commit
to open-toast/gummy-bears
that referenced
this pull request
May 6, 2026
## Summary - Swaps the abandoned `gradle-semantic-build-versioning` plugin for `org.ajoberstar.reckon.settings` 2.0.0, mirroring the migration done in open-toast/expediter#255. - Deletes the now-unused empty `semantic-build-versioning.gradle` config file. ## Test plan - [x] Build resolves a SNAPSHOT version off an untagged HEAD (verified locally: `99.99.100-SNAPSHOT` after temporary `99.99.99` tag on prior commit). - [x] Build resolves the exact tag as a release version when HEAD is annotated-tagged (verified locally: `99.99.99` across two runs with a temporary annotated tag on the branch HEAD; tag deleted afterward). - [ ] CI `Build` workflow passes on this PR. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
gradle-semantic-build-versioningis no longer maintained and will break on upcoming Gradle versions. Replace it withorg.ajoberstar.reckon.settings2.0.0 (actively maintained, Gradle 9 compatible, requires Java 17 — already satisfied by CI's corretto 17).X.Y.Z-SNAPSHOT, tag pushes resolve to a cleanX.Y.Z.isRelease()inbuildSrc/src/main/kotlin/Common.ktcontinues to key off the-SNAPSHOTsuffix without changes.ExpediterIntegrationTestto derive thelib2jar filename from the classpath it's already passed. Reckon's settings plugin setsversionon every subproject (the old plugin only set it on root), which changeslib2's jar filename fromlib2-test-fixtures.jartolib2-X.Y.Z-SNAPSHOT-test-fixtures.jar. Reading the filename from thetest-classpathsystem property keeps the assertion accurate without hardcoding a version.semantic-build-versioning.gradleconfig file.