mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2026-07-13 02:15:46 +00:00
4.9 KiB
4.9 KiB
Iris Release Checklist
Manual release procedure. There is no release automation by design: every step below is run by a person and verified by eye. Work top to bottom; do not skip the verify gates.
Reference values below assume the current gradle.properties: irisVersion=4.0.0-26.2,
minecraftVersion=26.2, fabricLoaderVersion=0.19.3, forgeVersion=26.2-65.0.0,
neoForgeVersion=26.2.0.6-beta. For a Minecraft version bump, do docs/mc-version-bump.md first,
then start this checklist.
a. Preflight
- Working tree clean on the exact commit you intend to tag (
git statusshows nothing to commit). - CI is green on that commit. The
verifyjob (.github/workflows/ci.yml) runs./gradlew :core:check :spi:build :probe:deserializationProbeon JDK 25; thebuild-artifactsmatrix builds all four platform jars. Do not release on a red or stale run. MasterChangelog.MDIris section is coherent: one consolidated entry set, deduplicated, no date-sliced headers, and it describes the current shipped state (not superseded intermediate work).- Version fields correct in
gradle.properties:irisVersionis the release version and its trailing-<mc>suffix matchesminecraftVersion. For a Minecraft bump, confirm every step indocs/mc-version-bump.mdis done (loader ranges,DataVersion, NMS binding). - JDK 25 is the active toolchain locally (
java -versionreports 25).
b. Build
- From the Iris project root:
./gradlew buildAll dist/contains the four platform jars (exact names for this release):Iris v4.0.0-26.2 [CraftBukkit] 26.2.jar(Bukkit/Paper/Purpur/Spigot/Folia plugin)Iris v4.0.0-26.2 [Fabric] 26.2+0.19.3.jarIris v4.0.0-26.2 [Forge] 26.2+65.0.0.jarIris v4.0.0-26.2 [NeoForge] 26.2+26.2.0.6-beta.jar- Naming pattern:
Iris v<irisVersion> [<Platform>] <mc>[+<loaderDisplay>].jar.
- The developer SPI jar is built by the same run at
spi/build/libs/iris-spi-4.0.0-26.2.jar. It is the platform-API artifact for downstream developers and is not copied intodist/; it is not uploaded to the mod portals (see publish). - Each mod jar bundles core + spi + shaded libs; each plugin/mod jar is self-contained.
c. Verify (release gates)
:core:checkand:probe:deserializationProbepassed in CI on the tag commit (a. covers this).- Golden-hash determinism VERIFY passes on all four platforms and matches the same hash:
- Bukkit plugin:
/iris goldenhash verify <radius> <threads> - Fabric mod:
/iris goldenhash verify <radius> <threads> - Forge mod:
/iris goldenhash verify <radius> <threads> - NeoForge mod:
/iris goldenhash verify <radius> <threads> - The hash is interchangeable across platforms: all four MUST report identical output for the same pack and seed. Any mismatch blocks the release.
- Bukkit plugin:
- Live modded content-mod gate: on each loader, boot the mod jar alongside a real content mod
(e.g. Create) and generate an Iris world. Confirm no load-time rejection, no class-loader crash,
and that modded blocks/items/entities author and generate.
- Fabric + content mod
- Forge + content mod
- NeoForge + content mod
- Client-mod matrix: install the mod on the client (keybind
Htoggles the pregen HUD) and confirm:- Modded server + modded client: HUD receives pregen progress over
irisworldgen:main. - Modded server + vanilla client: server generates normally; vanilla client is unaffected.
- Paper (Bukkit) server + modded client: HUD receives pregen progress over vanilla plugin messaging.
- Folia smoke: plugin loads and an Iris world generates on Folia.
- Non-Iris server + modded client: client is inert, no errors.
- Modded server + modded client: HUD receives pregen progress over
d. Publish (all manual, no automation)
- Modrinth: upload the three mod jars and the plugin jar. Tag loaders
fabric/forge/neoforgeon the mod files; mark the environment server + client; set game version 26.2. - CurseForge: upload the three mod jars with the matching loader tags and game version 26.2.
- Existing plugin distribution channels: publish the plugin jar
(
Iris v4.0.0-26.2 [CraftBukkit] 26.2.jar) where the plugin already ships. - Sentry: add a release note / mark the release so incoming reports map to this version (the mod version string is the Sentry release tag).
- Storepage /
listing.jsonstaleness review: check the listing copy for pre-4.0 content (Bukkit-only framing, old feature lists, screenshots). Flag anything stale for update before or right after launch. (Review only; this checklist does not change store copy.)
e. Post
- Tag the release commit (
v<irisVersion>) and push the tag. Therelease-bundleCI job (tag-gated,refs/tags/v*) runsbuildAlland uploads thedist/bundle for the record. - Announce the release on the community channels once the portals show the new files live.