Skip to content

build: scope vendor repos to fix flaky dependency resolution#3000

Merged
tastybento merged 1 commit into
developfrom
fix/dependency-repository-resolution
Jul 1, 2026
Merged

build: scope vendor repos to fix flaky dependency resolution#3000
tastybento merged 1 commit into
developfrom
fix/dependency-repository-resolution

Conversation

@tastybento

Copy link
Copy Markdown
Member

Problem

CI intermittently fails in :compileJava with:

Could not resolve us.dynmap:DynmapCoreAPI:3.4

The root cause is repository query order, not missing artifacts. Gradle queries every repository in declaration order for each artifact until one answers. When resolving us.dynmap:* it reaches repo.clojars.org and repo.fancyplugins.de before the authoritative Dynmap repo — and repo.fancyplugins.de returning HTTP 520 (a 5xx = hard error) aborts resolution before repo.mikeprimm.com is ever reached. (clojars 404s are benign; the 520 is fatal.)

Fixing that unmasked two further latent breakages that the early abort had been hiding:

  • de.oliver (FancyNpcs/FancyHolograms)repo.fancyplugins.de is now offline; the repo migrated to repo.fancyinnovations.com.
  • com.github.puregero:multilib — its com.github.* group is claimed by jitpack (which 404s it); the artifact is actually published to Clojars.

Fix

Scope every vendor group to its authoritative repo with exclusiveContent, so fragile hosts are never queried for groups they don't host and one host's outage can't cascade into unrelated groups:

Group Source
us.dynmap repo.mikeprimm.com
net.momirealms repo.momirealms.net
lol.pyr repo.pyr.lol
de.oliver repo.fancyinnovations.com (migrated from offline repo.fancyplugins.de)
com.github.puregero (MultiLib) Clojars (was falling through to a jitpack 404)

No dependency versions were changed.

Verification

./gradlew dependencies --configuration compileClasspath --refresh-dependencies (cold cache) → BUILD SUCCESSFUL, zero FAILED entries. All eight previously-failing coordinates (DynmapCoreAPI, dynmap-api, craft-engine-bukkit/core, FancyNpcs, FancyHolograms, znpcsplus-api, multilib) resolve.

Merge order

Please merge this before #2999 — it fixes the CI dependency resolution that #2999's build depends on.

🤖 Generated with Claude Code

https://claude.ai/code/session_0153KLwL66bB31pTc4BtsTMd

Dependency resolution intermittently failed in CI with
"Could not resolve us.dynmap:DynmapCoreAPI:3.4". Root cause was
repository query order, not missing artifacts: Gradle queries every
repo in declaration order for each artifact, and repo.fancyplugins.de
returning HTTP 520 (a 5xx = hard error) aborted resolution before the
authoritative Dynmap/MomiRealms repos were ever reached.

Scope each vendor group to its authoritative repo with exclusiveContent
so fragile hosts are never queried for groups they don't host, and one
host's outage can no longer cascade into unrelated groups:

- us.dynmap        -> repo.mikeprimm.com
- net.momirealms   -> repo.momirealms.net
- lol.pyr          -> repo.pyr.lol
- de.oliver        -> repo.fancyinnovations.com (migrated from the now
                      offline repo.fancyplugins.de)
- com.github.puregero (MultiLib) -> Clojars (its com.github.* group was
                      falling through to a jitpack 404)

Verified with `gradlew dependencies --refresh-dependencies`: all
previously-failing artifacts resolve, no FAILED entries.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0153KLwL66bB31pTc4BtsTMd
@sonarqubecloud

sonarqubecloud Bot commented Jul 1, 2026

Copy link
Copy Markdown

@tastybento tastybento merged commit 52686b1 into develop Jul 1, 2026
3 checks passed
@tastybento tastybento deleted the fix/dependency-repository-resolution branch July 1, 2026 05:08
@tastybento tastybento mentioned this pull request Jul 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant