Release-channel updater still points at unreachable releases.cardforge.org (snapshot channel fixed by #11163)
- 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
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