From cc3c58372c84a9e3df26bfac4f34fbd39963ba51 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 27 Aug 2026 21:13:35 +0000 Subject: [PATCH] Resolve Nds4j from Maven Central instead of building it in CI Nds4j 1.0.0 is published to Central and this module pins that exact version, so the three steps that resolved a branch, cloned Nds4j and installed it from source no longer affect what the build resolves. Since Nds4j's main branch moved to 1.1.0-SNAPSHOT they are worse than redundant: each run cloned a repository and ran a full build to install a coordinate nothing here asks for, and the resulting jar was ignored. Removing them also means CI now tests against the same artifact anyone depending on this library downloads, rather than a locally built one that could quietly differ from the published 1.0.0. The branch matching those steps performed is genuinely lost: a change spanning this repository and Nds4j can no longer be exercised together in CI. That trade is deliberate. Picking up new Nds4j behaviour now means bumping the version pin here, which is a reviewable line in a diff rather than an implicit consequence of a branch name. Verified by building with -Dmaven.repo.local pointed at an empty directory: Nds4j 1.0.0 was downloaded from Central (confirmed by the central marker in _remote.repositories) and the suite passed, 42 tests with 11 skipped for want of a ROM. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01RqYGZhtVb8KrPA9ftp5bob --- .github/workflows/build.yml | 26 -------------------------- 1 file changed, 26 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a95932b..60d9b30 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -25,32 +25,6 @@ jobs: java-version: '21' cache: maven - # Nds4j is not on Maven Central at the version this module depends on, so it has to be - # built from source. Prefer a branch of the same name when one exists: a change that - # spans both repositories is developed on matching branches, and testing this module - # against a stale Nds4j would report a failure that does not exist (or hide a real one). - - name: Resolve Nds4j branch - id: nds4j - run: | - ref="${{ github.head_ref || github.ref_name }}" - if git ls-remote --exit-code --heads https://github.com/turtleisaac/Nds4j.git "$ref" >/dev/null 2>&1; then - echo "Building against matching Nds4j branch: $ref" - else - echo "No Nds4j branch named '$ref'; falling back to main" - ref=main - fi - echo "ref=$ref" >> "$GITHUB_OUTPUT" - - - name: Check out Nds4j - uses: actions/checkout@v4 - with: - repository: turtleisaac/Nds4j - ref: ${{ steps.nds4j.outputs.ref }} - path: .upstream/Nds4j - - - name: Install Nds4j - run: mvn -B -ntp -q install -DskipTests -f .upstream/Nds4j/pom.xml - - name: Build and test # Round-trip tests against real game data need a retail ROM, which cannot be committed. # They skip here and are run locally with -Drom.dir. Everything else runs.