Repository navigation
Switch to semantic versioning with weekly dev and monthly release builds - #166
Merged
Merged
Conversation
Brings over 2390c03 (Clone ItemsAdder items on creation), a fix that was only ever committed to main.
Same change as magemonkeystudio/divinity#349. CI no longer commits version bumps. The shared reusable-semver-build.yml works out the version from the last release tag and the major/minor/patch labels of the PRs merged since, then passes it to Maven as -Drevision/-Dchangelist. - pom.xml and pom-dev.xml: <version>${revision}${changelist}</version> plus flatten-maven-plugin. codex-api, codex-core, codex-plugin and codex-bungee point their <parent> at the same expression (they inherit from pom.xml in both builds). The codex-nms modules keep their own fixed versions, as before. - devbuild.yml: weekly X.Y.Z-SNAPSHOT of dev from pom-dev.xml (Mondays 12:17 UTC), skipped when nothing was committed that week. - release.yml: monthly X.Y.Z release from pom.xml with the Spigot BuildTools step (1st of the month 13:23 UTC, before Fabled and Divinity). It tags dev, deploys, creates a GitHub release and fast-forwards main. - semver-label.yml: PRs into dev need exactly one of major, minor or patch. Dependabot PRs get patch. - README: the version comes from a release badge. This also fixes the badge links, which pointed at "magemonkeystudios". Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Secz6aiBJ7U8im8tnYhyLA
Travja
force-pushed
the
claude/semver-releases
branch
from
October 22, 2026 18:34
c3dd61f to
d8cb289
Compare
Travja
marked this pull request as ready for review
October 22, 2026 21:10
# Conflicts: # .github/dependabot.yml
Dependabot adds plain major/minor/patch labels by itself, based on the dependency's own version jump. The shared workflows now read prefixed build:* labels and ignore the plain ones. Dependabot PRs get build:patch here instead of patch. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Secz6aiBJ7U8im8tnYhyLA
The README now has a release version badge next to the Release Build status badge, and a dev snapshot version badge next to the Dev Build status badge. The dev version is read from the snapshot repo's maven-metadata.xml using shields.io's highestVersion strategy, because the metadata has no <latest> entry. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Secz6aiBJ7U8im8tnYhyLA
Brings in #173, which deleted pom-dev.xml in favour of an nms profile (-DskipNms) and moved Codex to JDK 25. - pom-dev.xml stays deleted. Its version change is no longer needed. - devbuild.yml keeps the semver workflow call and takes #173's maven_args '-DskipNms' and java_version '25'. release.yml merged cleanly with java_version '25'. Needs the java_version input in reusable-semver-build.yml (magemonkeystudio/.github patch 0005). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Secz6aiBJ7U8im8tnYhyLA
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.
This is the same change as magemonkeystudio/divinity#349 and magemonkeystudio/fabled#1868. CI stops committing version bumps. The version is worked out at build time instead: the last release tag, bumped by the highest
build:major/build:minor/build:patchlabel among the PRs merged since.Changes
mainintodev. This brings over2390c03(Clone ItemsAdder items on creation:ItemsAdderProvider.create()returns.clone()). That fix was only ever committed tomain, so it's a real code change fordev. The merge also lets the monthly release fast-forwardmain.pom.xml:<version>${revision}${changelist}</version>plusflatten-maven-plugin.codex-api,codex-core,codex-pluginandcodex-bungeepoint their<parent>at the same expression.codex-nmsmodules keep their own fixed versions, as before (the old bump script skipped them too).devbuild.yml: weeklyX.Y.Z-SNAPSHOTofdevon JDK 25 with-DskipNms(Mondays 12:17 UTC), skipped if nothing was committed that week. Can be run by hand.release.yml: monthlyX.Y.Zrelease on JDK 25 with the BuildTools step and thenmsprofile. It runs on the 1st at 13:23 UTC, ahead of Fabled (14:53) and Divinity (15:23). It tagsdev, deploys, creates a GitHub Release withcodex-X.Y.Z.jar, and fast-forwardsmain.semver-label.yml: a PR intodevneeds exactly one ofbuild:major,build:minororbuild:patch. The plainmajor/minor/patchlabels Dependabot adds by itself are ignored. Dependabot PRs getbuild:patch.magemonkeystudios.Since #173 merged, this PR is merged up to it:
pom-dev.xmlis gone (the dev build uses-DskipNmsinstead), and both workflows passjava_version: '25'.First release: 1.2.0
The last release is
1.1.1-R1, so with no labels the first release would be1.1.2. That's below Divinity'sMIN_CORE_VERSION(1.2.0-R0.7-SNAPSHOT), and Divinity would disable itself. I've putbuild:minoron #153, which adds new Compat API, so the first release is1.2.0. That passes Divinity's and Fabled's version checks.Before merging
.githubpatch0005is applied. It adds thejava_versioninput toreusable-semver-build.yml. Without it, both workflows here fail at startup with an unknown input. The same patch adds it to the oldreusable-build.yml, which fixes the workflows Build on JDK 25, bump WorldEdit/WorldGuard, replace pom-dev.xml with a profile #173 left ondev..githubpatch that switches the shared workflows tobuild:*labels is applied.reusable-semver-build.yml,reusable-semver-label.yml,actions/next-version) are inmagemonkeystudio/.githubmain..githubpatch that runs BuildTools for 26.2/26.3 is applied.After merging
label / semver-labela required check ondev.codex.versionat a release or1.2.0-SNAPSHOT. TheR0.x-SNAPSHOTversions they use now won't get new builds.Testing
mvn package -DskipNms -Drevision=1.2.0 -Dchangelist=-SNAPSHOT(the dev build) builds all modules at1.2.0-SNAPSHOT.codex-1.2.0-SNAPSHOT.jar(in../build, where the release step picks it up) hasversion: 1.2.0-SNAPSHOT, and every module's flattened pom has the resolved parent version.-P gpg,publishand no-DskipNms(the release build), the reactor includes the NMS modules and passesmvn validate. I didn't run a full release build because it needs the BuildTools jars.1.1.1-R1as the last release and gives1.2.0with Add equipment-slot-scoped attribute modifier support to Compat #153 labeledbuild:minor.Generated by Claude Code