Repository navigation
Upgrade toolchain, Paper API 26.2 and Java 25 (2.0.0) - #2
Merged
Merged
Conversation
target/ is already listed in .gitignore but 19 build files (including a stale jar) were committed, so every build dirtied the working tree. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018syaxkhsW9ioZChSmth9Xx
repo.extendedclip.com now only 301-redirects to repo.helpch.at/releases, so builds behind host allow-lists fail. Same artifacts, new host. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018syaxkhsW9ioZChSmth9Xx
The repo had no CI; the upgrade steps that follow need an automatic gate. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018syaxkhsW9ioZChSmth9Xx
.mvn/wrapper/ existed but mvnw/mvnw.cmd were missing, so the wrapper could not be used, and the pom (3.9.6) and properties (3.9.12) disagreed on the Maven version. Regenerated with wrapper:wrapper -Dmaven=3.9.16. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018syaxkhsW9ioZChSmth9Xx
Test scope only; the built jar is unchanged. Newer Mockito ships a Premain-Class so it can be loaded as a Java agent, which the surefire upgrade and the later move to Java 25 need. Staying on JUnit 5 for now. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018syaxkhsW9ioZChSmth9Xx
compiler 3.11.0 -> 3.16.0, enforcer 3.4.1 -> 3.6.3, surefire 3.2.5 -> 3.6.0. Java level now comes from a single maven.compiler.release property instead of duplicated source/target/release settings. Under surefire 3.6.0 Mockito can no longer self-attach to the forked test JVM, so it is loaded as a -javaagent (Mockito's documented setup for Java 21+), with maven-dependency-plugin:properties resolving its jar. Built jar contents and class version (65) are unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018syaxkhsW9ioZChSmth9Xx
PAPI is not shaded; servers provide it at runtime. This only changes the API we compile against. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018syaxkhsW9ioZChSmth9Xx
No main-code changes; compiles with no deprecation warnings and all 73 characterization tests pass. Adventure moves 4.17 -> 4.26.1 with it. TestRegistryAccess must still implement getRegistry(Class), which is now deprecated for removal; the warning is suppressed there. README: note the build API version and the Maven wrapper. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018syaxkhsW9ioZChSmth9Xx
- Paper API 1.21.11 -> 26.2.build.132-stable (Adventure 4.26 -> 5.2) - Java release 21 -> 25; enforcer now requires [25,26); CI on JDK 25 - plugin.yml api-version '1.21' -> '26.2' - Version 1.0.0 -> 2.0.0: the jar no longer loads on Java 21 / 1.21.x servers, so this is a breaking release (README points 1.21.x users at AutoPickup 1.x) No main-code changes were needed: it compiles against 26.2 with no deprecation warnings and all 73 characterization tests pass on JDK 25. README recommends PlaceholderAPI 2.12.3+ on Paper 26.2. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018syaxkhsW9ioZChSmth9Xx
MrPippi
marked this pull request as ready for review
October 9, 2026 02:04
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
This carries out the upgrade plan one step per commit, lowest risk first. Every step was checked locally against the 73 characterization tests from #1.
target/(19 build files were committed despite.gitignore)git ls-files targetis emptyrepo.extendedclip.com→repo.helpch.at/releases/(the old host only 301-redirects)./mvnw -B verify, jar uploaded as artifactmvnw/mvnw.cmd, pin Maven 3.9.16;*.cmdgets CRLF via.gitattributes./mvnw -vreports 3.9.16maven.compiler.releasepropertyapi-version: '26.2', version 2.0.0Changes from the plan
-javaagent(Mockito's documented setup for Java 21+). Mockito 5.11 cannot run as an agent, so Mockito had to be upgraded first.Breaking changes
mainasv1.0.0for users who stay on 1.21.x.Not verified here
repo.helpch.at. That host is blocked in the environment used to build this, so the CI run on this PR is the first real check./ap reload, PAPI, and VeinMiner (which is detected via reflection).api-version: '26.2'format. Check the server startup log for warnings.Test plan
./mvnw clean verifyon JDK 21 after steps 1–8, and on JDK 25 after step 9: 73 tests, 0 failures🤖 Generated with Claude Code
https://claude.ai/code/session_018syaxkhsW9ioZChSmth9Xx
Generated by Claude Code