Skip to content
InputBooster
ReleasesReleases

Versioning

How InputBooster version numbers, jar names and the config schema version relate to each other.

2 min readInputBooster 4.1.2-alphaMinecraft 26.2 / 26.3

There are three different version numbers in this project: the mod version, the config schema version and the Minecraft version. They are unrelated and are easy to confuse.

The three versions

VersionExampleWhere it lives
The mod version4.1.2-alphaThe jar name and InputBoosterMod.MOD_VERSION
The config schema305config_version in the properties file
The Minecraft version26.2, 26.3The mc262 / mc263 suffix and the dependency ranges

The mod version scheme

text
MAJOR.MINOR.PATCH-PRERELEASE
   │      │     │        │
   │      │     │        └─ alpha, beta, or nothing for a stable release
   │      │     └────────── the patch number
   │      └──────────────── the minor number
   └─────────────────────── the major number
StageMeaning
alphaNew or rewritten code. May crash, may not have been run in a client
betaFeature complete for the line, still being tested
StableNo suffix. A release that has been tested and does not crash on launch

The current release is 4.1.2-alpha. The last stable build is 4.0.3-stable.

The jar name

text
inputbooster-<mod version>-<loader>-mc<minecraft>.jar
 
inputbooster-4.1.2-alpha-fabric-mc263.jar
           │            │      │    │
           │            │      │    └─ 263 = Minecraft 26.3
           │            │      └────── mc
           │            └───────────── fabric or nf
           └────────────────────────── the mod version

The loader flavour is also in gradle.properties:

ProjectPropertyValue
NeoForgemod_version4.1.2-alpha-nf-mc262
Fabricmod_version4.1.2-alpha-fabric

The Fabric project appends the Minecraft suffix at build time:

groovy
version = "${mod_version}-mc${minecraft_version.replace('.', '')}"

The config schema version

config_version records the shape of the config file.

SchemaIntroducedChange
3054.1.0-alphaNine new engine and overlay keys
303 and earlier3.xOlder schema, migrated on load

The schema version is bumped when a key changes meaning, not when a key is added for a new feature in a way that is backwards compatible. The migration is small on purpose: it renames three legacy keys and nothing else.

java
public static final int CONFIG_VERSION = 305;

How a release is cut

The CI pipeline publishes a release when a version tag is pushed, or on a branch push.

The version is read

From the tag, or from mod_version in gradle.properties with the loader flavour stripped.

The three jars are built

NeoForge 26.2, Fabric 26.2 and Fabric 26.3, each on Temurin 25.

The jars are verified

The release job refuses to publish unless all three are present. The Fabric job checks the dependency range form first.

The release is published

All three jars are attached, the notes are generated from the git log since the previous tag, and a prerelease flag is set when the version contains alpha or beta.

The archived API version

The API repository has its own version line, ending at 3.1.0. It targets Minecraft >=1.21 <1.22 and Java 21, and it is not connected to the 26.x tree. See the archived API page.