Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion engine/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ dependencies {
api(fileTree("libs") { include("*.jar") })

// TODO: Consider moving this back to the PC Facade instead of having the engine rely on it?
implementation("org.terasology.crashreporter:cr-terasology:5.0.0")
implementation("org.terasology.crashreporter:cr-terasology:5.1.0")

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🩺 Stability & Availability | 🟠 Major | 🏗️ Heavy lift

🧩 Analysis chain

🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail

rg -n 'repositories|mavenCentral|mavenLocal|artifactory|url\s*=' \
  --glob '*.gradle*' --glob 'gradle.properties' .

curl -fsSI \
  'https://repo.maven.apache.org/maven2/org/terasology/crashreporter/cr-terasology/5.1.0/cr-terasology-5.1.0.pom'

rg -n 'CrashReporter\.report\s*\(' engine/src facades/PC/src

Repository: MovingBlocks/Terasology

Length of output: 4871


🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail

echo "== CrashReporter references =="
rg -n 'org\.terasology\.crashreporter|cr-terasology|CrashReporter\.report|import .*CrashReporter|class |interface ' \
  --glob '*.gradle*' --glob '*.gradle' --glob 'build.gradle.kts' \
  engine facades/PC build-logic engine-tests modules 2>/dev/null || true

echo
echo "== Dependency declarations =="
rg -n 'org\.terasology\.crashreporter:cr-terasology|crashreporter' .

echo
echo "== Maven repository probes =="
python3 - <<'PY'
import urllib.request, urllib.error
base = "https://repo.maven.apache.org/maven2/org/terasology/crashreporter/cr-terasology"
for ver in ["5.0.0", "5.1.0", ""]]:
    try:
        with urllib.request.urlopen(base + f"/{ver}/cr-terasology-{ver}.pom", timeout=15) as r:
            print(f"{base}/{ver}/cr-terasology-{ver}.pom -> {r.getcode()}")
    except urllib.error.HTTPError as e:
        print(f"{base}/{ver}/cr-terasology-{ver}.pom -> {e.code} {e.reason}")
PY

Repository: MovingBlocks/Terasology

Length of output: 2069


🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail

echo "== CrashReporter usage files =="
while IFS= read -r f; do
  echo "--- $f"
  sed -n '1,80p' "$f"
done < <(rg -l 'CrashReporter' engine facades/PC --glob '*.java')

echo
echo "== Dependency declarations =="
rg -n 'org\.terasology\.crashreporter:cr-terasology|crashreporter' .

echo
echo "== Maven Central crashreporter POMs =="
python3 - <<'PY'
import urllib.request, urllib.error
base = "https://repo.maven.apache.org/maven2/org/terasology/crashreporter/cr-terasology"
for ver in ["5.0.0", "5.1.0", ""]:
    url = f"{base}/{ver}/cr-terasology-{ver}.pom" if ver else f"{base}/maven-metadata.xml"
    try:
        with urllib.request.urlopen(url, timeout=15) as r:
            print(f"{url} -> {r.getcode()}")
            if ver:
                print(r.read().decode(errors='replace').strip().splitlines()[:12])
            else:
                print(r.read().decode(errors='replace').strip())
    except urllib.error.HTTPError as e:
        print(f"{url} -> {e.code} {e.reason}")
PY

echo
echo "== GitHub tags metadata =="
python3 - <<'PY'
import urllib.request, urllib.error
url = "https://api.github.com/repos/MovingBlocks/CrashReporter/tags"
req = urllib.request.Request(url, headers={"Accept":"application/vnd.github+json","User-Agent":"code-rabbit"})
try:
    with urllib.request.urlopen(req, timeout=20) as r:
        data = r.read().decode(errors='replace')
        print(r.getcode(), r.getheader("content-type"))
        print("last 20 names:")
        for tag in data.splitlines()[:1000].split("},{"):
            if '"name"' in tag:
                print(tag)
except Exception as e:
    print(type(e).__name__ + ":", repr(e))
PY

Repository: MovingBlocks/Terasology

Length of output: 245


🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail

echo "== CrashReporter usage files =="
files="$(rg -l 'CrashReporter' engine facades/PC --glob '*.java' || true)"
if [ -n "$files" ]; then
  while IFS= read -r f; do
    echo "--- $f"
    sed -n '1,120p' "$f"
  done <<< "$files"
fi

echo
echo "== Dependency declarations =="
rg -n 'org\.terasology\.crashreporter:cr-terasology|crashreporter' . || true

echo
echo "== Maven Central crashreporter POMs and metadata =="
python3 - <<'PY'
import urllib.request, urllib.error
base = "https://repo.maven.apache.org/maven2/org/terasology/crashreporter/cr-terasology"
for ver in ["5.0.0", "5.1.0"]:
    url = f"{base}/{ver}/cr-terasology-{ver}.pom"
    try:
        with urllib.request.urlopen(url, timeout=15) as r:
            print(f"{url} -> {r.getcode()}")
            text = r.read().decode(errors='replace').strip()
            print("\n".join(text.splitlines()[:20]))
    except urllib.error.HTTPError as e:
        print(f"{url} -> {e.code} {e.reason}")
for url in [f"{base}/maven-metadata.xml", f"{base}/"]:
    try:
        with urllib.request.urlopen(url, timeout=15) as r:
            print(f"{url} -> {r.getcode()}")
            text = r.read().decode(errors='replace').strip()
            print("\n".join(text.splitlines()[:40]))
    except urllib.error.HTTPError as e:
        print(f"{url} -> {e.code} {e.reason}")
PY

echo
echo "== GitHub tags listing =="
python3 - <<'PY'
import urllib.request, urllib.error, json
url = "https://api.github.com/repos/MovingBlocks/CrashReporter/tags?per_page=50"
req = urllib.request.Request(url, headers={"Accept":"application/vnd.github+json","User-Agent":"code-rabbit"})
try:
    with urllib.request.urlopen(req, timeout=15) as r:
        data = json.loads(r.read().decode(errors='replace'))
        print(r.getcode(), r.headers.get("content-type"))
        for tag in data[:20]:
            print(tag.get("name"), tag.get("zipball_url"))
except urllib.error.HTTPError as e:
    print(f"{e.code} {e.reason}")
    print(e.read().decode(errors='replace').strip())
except Exception as e:
    print(type(e).__name__ + ":", repr(e))
PY

Repository: MovingBlocks/Terasology

Length of output: 19456


🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail

echo "== CrashReporter report usages =="
python3 - <<'PY'
import subprocess, re
files = subprocess.check_output(['rg', '-l', 'CrashReporter', 'engine', 'facades/PC'], text=True).strip().splitlines()
for f in files:
    print(f"--- {f}")
    text = open(f, encoding="utf-8").read()
    for i, line in enumerate(text.splitlines(), 1):
        if 'CrashReporter' in line:
            start=max(1,i-3); end=min(len(text.splitlines()),i+8)
            lines=text.splitlines()
            for n in range(start,end+1):
                print(f"{n:4d}: {lines[n-1]}")
PY

echo
echo "== CrashReporter API references =="
for f in $(rg -l 'CrashReporter' engine facades/PC --glob '*.java'); do
  echo "--- $f"
  rg -n 'public class CrashReporter|interface CrashReporter|enum MODE|void report|class report|static|`@FunctionalInterface`' "$f" || true
done

echo
echo "== Dependency declarations =="
rg -n 'org\.terasology\.crashreporter:cr-terasology|crashreporter|CrashReporter\.report' engine facades/PC --glob '*.gradle*' --glob '*.java' || true

Repository: MovingBlocks/Terasology

Length of output: 9896


Confirm cr-terasology:5.1.0 is available from the configured resolved repository.

5.1.0 is not present on Maven Central, but the project resolves the configured alternativeResolutionRepo or Artifactory virtual-repo-live. Resolve both engine and facades/PC builds, since the imports call CrashReporter.report(Throwable, Throwable, ...), including the CrashReporter.MODE.ISSUE_REPORTER callers in the menu screens.

📍 Affects 2 files
  • engine/build.gradle.kts#L148-L148 (this comment)
  • facades/PC/build.gradle.kts#L69-L69
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@engine/build.gradle.kts` at line 148, Verify that cr-terasology:5.1.0 is
available through the configured alternativeResolutionRepo or Artifactory
virtual-repo-live, and ensure dependency resolution succeeds for
engine/build.gradle.kts at line 148 and facades/PC/build.gradle.kts at line 69.
Preserve compatibility with CrashReporter.report(Throwable, Throwable, ...) and
CrashReporter.MODE.ISSUE_REPORTER callers in the menu screens.

Source: MCP tools


api(project(":subsystems:TypeHandlerLibrary"))
}
Expand Down
2 changes: 1 addition & 1 deletion facades/PC/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ dependencies {
implementation("io.projectreactor:reactor-core:3.4.7")

// TODO: Consider whether we can move the CR dependency back here from the engine, where it is referenced from the main menu
implementation("org.terasology.crashreporter:cr-terasology:5.0.0")
implementation("org.terasology.crashreporter:cr-terasology:5.1.0")

runtimeOnly(libs.logback) {
because("to configure logging with logback.xml")
Expand Down
Loading