Card-Forge / Card-Forge/forge

Release-channel updater still points at unreachable releases.cardforge.org (snapshot channel fixed by #11163)

Open
#11,162 6 comments 0 reactions 0 assignees View on GitHub
keep
Dominant language
Java
Stars
2.7k
Forks
1.1k
Avg merge
1d 1h
Merged PRs (30d)
163

Description

The in-game auto-updater currently cannot work for anyone, on any channel, because `AutoUpdater.testNetConnection()` gates every update check on a TCP connection to `releases.cardforge.org:443` — and that host is no longer reachable (connection fails / DNS). The check treats this as "no internet" and `verifyUpdateable()` returns false with no user-visible feedback, so the updater just appears to do nothing. This likely explains long-standing user reports of "Check for Updates" never doing anything.

Details:

1. **`testNetConnection()`** (forge-gui/src/main/java/forge/download/AutoUpdater.java) probes `releases.cardforge.org:443` regardless of which channel is in use. Snapshot-channel updates are served from GitHub (`GITHUB_SNAPSHOT_URL`), which is reachable — but the dead-host gate fails first, so even snapshot users get silence.
2. **Release channel is doubly broken:** `RELEASE_URL = "https://releases.cardforge.org/"` is used for `version.txt`, `maven-metadata.xml`, and the package download itself. Even with a fixed connectivity check, release-channel updating needs these moved (GitHub releases API / latest-release assets seem like the natural replacement, since the release artifacts are already published there).
3. Minor UX: when the channel/build type mismatch check fails (`"Release build versions must use release update channel to work"` etc.), the message goes to stdout only — from the user's perspective the button silently does nothing.

I've opened a PR fixing (1) — the connectivity test now probes the host of the URL the updater is actually about to fetch from, falling back to `github.com`. That makes the snapshot channel functional again. (2) needs a maintainer decision on where release metadata should live, so I've left it alone.

Verified on Windows 11 / Java 17: `releases.cardforge.org:443` is unreachable (probed directly), so `testNetConnection()` returns false and every update check aborts before reaching GitHub. With the fix, the connectivity gate passes and the snapshot-channel check proceeds (the full update-offer dialog wasn't exercised end-to-end here, since the local build under test was newer than the latest published snapshot).

Contributor guide

Open the contributing guide

Research direction

Start in forge-gui/src/main/java/forge/download/AutoUpdater.java, reading testNetConnection(), verifyUpdateable(), GITHUB_SNAPSHOT_URL, and RELEASE_URL. Review the existing snapshot-channel PR and determine, with a maintainer, where release metadata and artifacts should move. Done means release and snapshot checks no longer depend on the unreachable host and failures provide user-visible feedback.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
desktop, release
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.