Use Forgejo releases for Wolfskin updates and match installed versions consistently #20

Merged
justinzeus merged 2 commits from fm/wolfskin-5-updater-gpt into main 2026-10-22 16:13:20 +02:00
Owner

Supersedes #17

Goal

Use Wolfskin's Forgejo releases for in-app updates and installed-version release notes.

Changes

  • Preserve the prior updater endpoint, Wolfskin asset prefix, Forgejo parser fixtures, and bounded release-name lookup.
  • Match installed versions using updater ordering equivalence: neither version is greater. Absent commit count equals zero; hash abbreviation differences do not prevent matching; different commit counts remain distinct.
  • Restore positive Wolfskin debug ABI/universal and release-suffixed ABI preference/fallback coverage, with build-type separation. Keep negative upstream Wholphin-asset tests and GitHub fixtures.
  • Document publication renaming from Gradle filenames to Wolfskin.apk / Wolfskin-.apk.

Verification

Ran each required command once on the delivered implementation:

  • flock /tmp/wolfskin-gradle.lock make test: BUILD SUCCESSFUL in 1m 56s, 69 actionable tasks (26 executed, 43 up-to-date). JUnit XML: 394 tests, 0 failures, 0 errors, 0 skipped, including all 17 updater tests and one temporary HTTP smoke probe.
  • flock /tmp/wolfskin-gradle.lock make apk-debug: BUILD SUCCESSFUL in 58s, 73 actionable tasks (16 executed, 57 up-to-date).
  • Temporary Robolectric/OkHttp smoke exercised the actual getRelease HTTP-list path with Forgejo fixtures and confirmed matches for an abbreviated hash and absent commit count. Probe removed after execution.

Limits and risk

No signed release, device installation, playback, or TV UI verification performed. Debug APK intentionally uses the MPV stub and omits optional codec decoders. Forgejo fixtures are schema-shaped synthetic responses, not recorded published releases. Release attachments must be renamed as documented. Lookup remains limited to 50 releases.

AI-assisted implementation and pull-request description.

Closes justinzeus/wolfskin#5

Supersedes https://git.justinvisser.org/justinzeus/wolfskin/pulls/17 ## Goal Use Wolfskin's Forgejo releases for in-app updates and installed-version release notes. ## Changes - Preserve the prior updater endpoint, Wolfskin asset prefix, Forgejo parser fixtures, and bounded release-name lookup. - Match installed versions using updater ordering equivalence: neither version is greater. Absent commit count equals zero; hash abbreviation differences do not prevent matching; different commit counts remain distinct. - Restore positive Wolfskin debug ABI/universal and release-suffixed ABI preference/fallback coverage, with build-type separation. Keep negative upstream Wholphin-asset tests and GitHub fixtures. - Document publication renaming from Gradle filenames to Wolfskin.apk / Wolfskin-<abi>.apk. ## Verification Ran each required command once on the delivered implementation: - `flock /tmp/wolfskin-gradle.lock make test`: **BUILD SUCCESSFUL in 1m 56s**, 69 actionable tasks (26 executed, 43 up-to-date). JUnit XML: **394 tests, 0 failures, 0 errors, 0 skipped**, including all 17 updater tests and one temporary HTTP smoke probe. - `flock /tmp/wolfskin-gradle.lock make apk-debug`: **BUILD SUCCESSFUL in 58s**, 73 actionable tasks (16 executed, 57 up-to-date). - Temporary Robolectric/OkHttp smoke exercised the actual getRelease HTTP-list path with Forgejo fixtures and confirmed matches for an abbreviated hash and absent commit count. Probe removed after execution. ## Limits and risk No signed release, device installation, playback, or TV UI verification performed. Debug APK intentionally uses the MPV stub and omits optional codec decoders. Forgejo fixtures are schema-shaped synthetic responses, not recorded published releases. Release attachments must be renamed as documented. Lookup remains limited to 50 releases. AI-assisted implementation and pull-request description. Closes justinzeus/wolfskin#5
justinzeus added 2 commits 2026-10-22 16:09:40 +02:00
Point updater at Forgejo releases and Wolfskin assets
Some checks failed
review/code-gpt Request changes: version equivalence and lost positive asset-selection coverage
0f7a23faa8
Match updater versions by ordering and cover Wolfskin asset selection
All checks were successful
review/code-claude Approved: no blocking findings
1715041df3
Author
Owner

Code review (claude): approve. Reviewed SHA 1715041df3. Both PR 17 findings fixed: installed-release lookup now uses ordering equivalence (absent vs zero count and hash abbreviation match, different counts do not), and positive Wolfskin debug/release-suffixed asset tests were added alongside the retained negative upstream-asset tests. README upload-name note matches Gradle output names. make test: 393 tests, 0 failures.

Code review (claude): **approve**. Reviewed SHA 1715041df3d3375df49cd89105afd622eb267f99. Both PR 17 findings fixed: installed-release lookup now uses ordering equivalence (absent vs zero count and hash abbreviation match, different counts do not), and positive Wolfskin debug/release-suffixed asset tests were added alongside the retained negative upstream-asset tests. README upload-name note matches Gradle output names. make test: 393 tests, 0 failures.
justinzeus merged commit 761a5a6145 into main 2026-10-22 16:13:20 +02:00
Sign in to join this conversation.
No reviewers
No labels
exploring
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: justinzeus/wolfskin#20
No description provided.