Background
Dependabot has opened PRs bumping net.kyori:adventure-api (#144) and net.kyori:adventure-text-minimessage (#155) to 5.2.0. Both fail CI at test time:
NoClassDefFoundError: net.kyori.adventure.util.Buildable$Builder — removed in Adventure 5.0 (Kyori's own 5.2.0 changelog calls this out as a binary-compat break for code compiled against 4.x running against 5.x, which 5.2.0 only partially restores).
IncompatibleClassChangeError: class org.bukkit.inventory.meta.BookMeta cannot extend sealed interface net.kyori.adventure.inventory.Book
NoSuchMethodError: net.kyori.adventure.util.Services.service(...) — signature changed in 5.x.
All three trace back to MockBukkit bundling Adventure 4.x internally, colliding with the project's own Adventure 5.x classes at test time.
Why this isn't a quick bump
codex-plugin depends on net.kyori:adventure-platform-bukkit:4.4.1 to bridge the shaded/relocated Adventure component model down to plain Bukkit/Spigot (pre-native-Adventure) servers — this is required to support the older NMS modules (codex-nms-v1_16_5 through the pre-Paper-native line).
adventure-platform-bukkit (and the Bukkit/Spigot/BungeeCord/Sponge-API-7 platform bridges generally) are no longer maintained. The KyoriPowered/adventure-platform repo was archived and handed to PaperMC; there is no 5.x-compatible release and none is coming — Kyori's docs explicitly say the team no longer supports these platform bridges. Paper's own plugin API now exposes Adventure natively, which is presumably why the standalone bridge was retired.
Net effect: adventure-api/adventure-text-minimessage cannot move to 5.x while codex still supports servers that predate Paper's native Adventure exposure, because there's no compatible platform bridge to pair with 5.x on those servers.
What needs to happen
- Decide how far back codex needs to keep supporting plain/legacy Spigot and pre-native-Adventure Paper builds. If we can drop that support, the shaded
adventure-platform-bukkit bridge goes away entirely and we consume Adventure directly via the platform's native Component API.
- If we keep some legacy support, evaluate what it'd take to maintain a private fork/shim of the Bukkit platform bridge against Adventure 5.x — an ongoing maintenance cost, not a one-time fix.
- Once the support matrix is settled, upgrade
adventure-api, adventure-platform-bukkit (or its replacement/removal), and adventure-text-minimessage together in one pass, and confirm MockBukkit's test harness is compatible with whatever Adventure version we land on.
- Add a Dependabot ignore rule for major-version bumps on
net.kyori:adventure-* in the meantime, so Dependabot stops proposing upgrades that are structurally blocked until this is resolved.
Related PRs
Both should stay closed/on hold until the support-matrix decision above is made.
Background
Dependabot has opened PRs bumping
net.kyori:adventure-api(#144) andnet.kyori:adventure-text-minimessage(#155) to 5.2.0. Both fail CI at test time:NoClassDefFoundError: net.kyori.adventure.util.Buildable$Builder— removed in Adventure 5.0 (Kyori's own 5.2.0 changelog calls this out as a binary-compat break for code compiled against 4.x running against 5.x, which 5.2.0 only partially restores).IncompatibleClassChangeError: class org.bukkit.inventory.meta.BookMeta cannot extend sealed interface net.kyori.adventure.inventory.BookNoSuchMethodError: net.kyori.adventure.util.Services.service(...)— signature changed in 5.x.All three trace back to MockBukkit bundling Adventure 4.x internally, colliding with the project's own Adventure 5.x classes at test time.
Why this isn't a quick bump
codex-plugindepends onnet.kyori:adventure-platform-bukkit:4.4.1to bridge the shaded/relocated Adventure component model down to plain Bukkit/Spigot (pre-native-Adventure) servers — this is required to support the older NMS modules (codex-nms-v1_16_5through the pre-Paper-native line).adventure-platform-bukkit(and the Bukkit/Spigot/BungeeCord/Sponge-API-7 platform bridges generally) are no longer maintained. TheKyoriPowered/adventure-platformrepo was archived and handed to PaperMC; there is no 5.x-compatible release and none is coming — Kyori's docs explicitly say the team no longer supports these platform bridges. Paper's own plugin API now exposes Adventure natively, which is presumably why the standalone bridge was retired.Net effect:
adventure-api/adventure-text-minimessagecannot move to 5.x while codex still supports servers that predate Paper's native Adventure exposure, because there's no compatible platform bridge to pair with 5.x on those servers.What needs to happen
adventure-platform-bukkitbridge goes away entirely and we consume Adventure directly via the platform's native Component API.adventure-api,adventure-platform-bukkit(or its replacement/removal), andadventure-text-minimessagetogether in one pass, and confirm MockBukkit's test harness is compatible with whatever Adventure version we land on.net.kyori:adventure-*in the meantime, so Dependabot stops proposing upgrades that are structurally blocked until this is resolved.Related PRs
Both should stay closed/on hold until the support-matrix decision above is made.