F-Droid submission prep: fastlane metadata, build recipe, and FOSS (Steam-less) flavor#260
Draft
gantoine wants to merge 18 commits into
Draft
F-Droid submission prep: fastlane metadata, build recipe, and FOSS (Steam-less) flavor#260gantoine wants to merge 18 commits into
gantoine wants to merge 18 commits into
Conversation
…creenshots) Add F-Droid/fastlane media metadata under fastlane/metadata/android/en-US/ so descriptions, graphics, and screenshots stay under developer control and are pulled automatically on release, per the F-Droid submission guide. - title, short_description (<=80), full_description (allowed-HTML subset) - changelogs for base and ABI-split versionCodes (298/1000298/2000298/3000298) - icon.png (512x512) rasterized from argosy_icon.svg - featureGraphic.png (1024x500) generated banner - 8 phone screenshots imported from the README Generated-By: PostHog Code Task-Id: 974c9fb1-13dd-4e37-aae5-791ef44d8d06
Add fdroid/com.nendo.argosy.yml (the fdroiddata metadata recipe, to be copied to metadata/com.nendo.argosy.yml in the fdroiddata repo) plus fdroid/README.md documenting the recipe rationale and the inclusion blockers to resolve. Recipe highlights: - Two per-ABI build blocks (armeabi-v7a=1000298, arm64-v8a=2000298) built with -PallAbis, matching the versionCode override in app/build.gradle.kts - submodules: true for sigil and rcheevos - VercodeOperation + UpdateCheckMode Tags ^v[0-9.]+$ for stable-tag autoupdate Handoff notes flag the prebuilt libs/maven/*.jar (javasteam) scanner blocker, the sigil Rust submodule, the api.argosy.dev network dependency, and license precision (GPL-3.0-only vs -or-later). Generated-By: PostHog Code Task-Id: 974c9fb1-13dd-4e37-aae5-791ef44d8d06
Research resolved three of the flagged items: - sigil (argosy-sigil) is pure C, MPL-2.0, built from source via CMake/NDK with no prebuilt blobs -- not a blocker, and needs no Rust toolchain (prior note was wrong) - api.argosy.dev social layer depends on a proprietary backend -> declare AntiFeatures: NonFreeNet (titledb/cheats are build-secret-gated and inert in a source build) - license confirmed GPL-3.0-only (verbatim GPLv3, README says v3.0, no -or-later) Add AntiFeatures: NonFreeNet to the recipe and update the handoff notes; the only remaining hard blocker is the prebuilt javasteam jars in libs/maven. Generated-By: PostHog Code Task-Id: 974c9fb1-13dd-4e37-aae5-791ef44d8d06
Investigated the prebuilt javasteam jars. Both come from the MIT multi-module fork github.com/joshuatam/JavaSteam (javasteam + javasteam-depotdownloader, group io.github.joshuatam 1.8.1, branch gamenative-latest). Findings: - fork is not on Maven Central (upstream in.dragonbra lacks depotdownloader) - JitPack cannot build the fork (errors, no release tags) - app coupling is narrow: only 5 files import the library directly Record ranked resolution options: FOSS flavor (in-repo, recommended), publish fork to Central (maintainer), build-from-source in fdroiddata (fragile), or scanignore (last resort). Generated-By: PostHog Code Task-Id: 974c9fb1-13dd-4e37-aae5-791ef44d8d06
The JavaSteam integration depends on prebuilt jars in libs/maven (a non-Maven- Central MIT fork), which F-Droid's scanner rejects. Introduce full/foss product flavors so the F-Droid build ships without Steam: - full (default): unchanged Steam build for GitHub releases; the six JavaSteam-backed classes move to app/src/full and keep bundles.steam via fullImplementation. - foss: no Steam library. No-op stubs in app/src/foss reproduce the public API that shared code consumes (state flows, control methods, @singleton @Inject ctors) plus the shared value types (SteamModels.kt). The ~30 non-library Steam files stay in src/main and compile against the stubs. Recipe now builds assembleFossRelease with scandelete: [libs/maven]; handoff doc updated to mark the blocker resolved. Verified: kspFossDebugKotlin (Hilt DI graph) and Kotlin frontend type-checking of the full foss source set both pass (0 errors); the assembly's Compose IR backend compile is slow on a cold full build but is the same compile the release CI performs. Generated-By: PostHog Code Task-Id: 974c9fb1-13dd-4e37-aae5-791ef44d8d06
Rewrite the handoff submission steps to match fdroiddata's CONTRIBUTING.md: GitLab (not GitHub) fork/clone, app-id branch name, the exact fdroidserver check sequence (readmeta/rewritemeta/checkupdates/lint/build), CI pipeline check in the fork, MR template, and the master-branch do's/don'ts. Also document the prerequisite of cutting a new release tag that contains fastlane/ and the foss flavor before repointing the recipe commit/version. Generated-By: PostHog Code Task-Id: 974c9fb1-13dd-4e37-aae5-791ef44d8d06
gantoine
marked this pull request as draft
July 5, 2026 17:44
…oid/rfp Draft RFP based on the official fdroid/rfp Default.md template and recent closed RFPs: application id, filled metadata YAML block, summary, objective description, and packaging notes (foss flavor, NonFreeNet, native-from-source). Generated-By: PostHog Code Task-Id: 974c9fb1-13dd-4e37-aae5-791ef44d8d06
Bump versionName 1.18.0 -> 1.19.0 and base versionCode 298 -> 299 so a release tag can carry the fastlane metadata and the foss flavor for the F-Droid build. Add fastlane changelogs for the new ABI-split versionCodes (299/1000299/ 2000299/3000299). Generated-By: PostHog Code Task-Id: 974c9fb1-13dd-4e37-aae5-791ef44d8d06
Point both build blocks at commit v1.19.0 with versionCodes 1000299/2000299, and set CurrentVersion 1.19.0 / CurrentVersionCode 2000299. Update the handoff prerequisite section: bump and repoint are done; the only remaining step is to merge and tag v1.19.0 off main. Generated-By: PostHog Code Task-Id: 974c9fb1-13dd-4e37-aae5-791ef44d8d06
The 2.0 line (branch ui-redesign-beta; betas v2.0.0-beta.2=vc299, v2.0.0-beta.3=vc301) is already underway, and vc299 collides with the earlier 1.19.0 bump. Realign the F-Droid work onto 2.0: - revert the versionCode/versionName bump; this branch no longer touches the version (the 2.0 branch owns it) - repoint the recipe to commit v2.0.0 / versionName 2.0.0; versionCode left as a documented placeholder (1000302/2000302, base 302) to finalize at tag time - drop the phantom 1.19.0 changelogs; UpdateCheckMode regex already excludes -beta tags so only stable v2.0.0 is packaged - update the handoff prerequisite section for the 2.0 plan Generated-By: PostHog Code Task-Id: 974c9fb1-13dd-4e37-aae5-791ef44d8d06
Remove the 298-series changelog files (1.18.0 history) now that the recipe targets v2.0.0. Changelogs for the 2.0.0 versionCodes will be added at tag time. Update the handoff doc accordingly. Generated-By: PostHog Code Task-Id: 974c9fb1-13dd-4e37-aae5-791ef44d8d06
Reflect that the changelogs directory is now empty; entries for the 2.0.0 versionCodes will be added at tag time. Generated-By: PostHog Code Task-Id: 974c9fb1-13dd-4e37-aae5-791ef44d8d06
gantoine
marked this pull request as ready for review
July 8, 2026 14:09
Contributor
Greptile SummaryThis PR prepares the app for F-Droid distribution. The main changes are:
Confidence Score: 4/5The FOSS flavor needs fixes around Steam-facing behavior before merging.
fastlane/metadata/android/en-US/full_description.txt; app/src/foss/kotlin/com/nendo/argosy/data/steam/SteamLibraryManager.kt Important Files Changed
Reviews (1): Last reviewed commit: "remove more" | Re-trigger Greptile |
gantoine
marked this pull request as draft
July 10, 2026 21:26
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Prepares Argosy Launcher for submission to F-Droid. Groups: media metadata in the app repo, a ready-to-copy fdroiddata build recipe, and a
fossproduct flavor that builds without the prebuilt Steam dependency F-Droid rejects.What's included
1. Fastlane media metadata (
fastlane/metadata/android/en-US/)title,short_description(≤80),full_description(allowed-HTML subset), changelogs.icon.png(512×512, fromargosy_icon.svg), generatedfeatureGraphic.png(1024×500), and the 8 README screenshots.2. fdroiddata build recipe (
fdroid/)com.nendo.argosy.yml— recipe to copy intometadata/com.nendo.argosy.ymlon GitLab. ABI-split blocks matching the versionCode override,submodules: true,VercodeOperation, stable-tag autoupdate,scandelete: [libs/maven],AntiFeatures: NonFreeNet. Targets the eventualv2.0.0stable tag (versionCode is a documented placeholder to finalize at tag time).README.md— research findings, blocker analysis, and the GitLab submission workflow from fdroiddata's CONTRIBUTING.RFP.md— a filled-out Request For Packaging (optional alternative to the MR).3. FOSS product flavor (
full/foss)full(default): unchanged Steam build for GitHub releases; the six JavaSteam-backed classes move toapp/src/full/.foss: no Steam library. No-op stubs inapp/src/foss/reproduce the public API shared code consumes plus the shared value types (SteamModels.kt). The ~30 non-library Steam files stay insrc/main. Removes the prebuiltlibs/mavenjars and the non-free depot downloader from the F-Droid artifact.This branch does not change
versionCode/versionName— the version is owned by the 2.0 release line (see below).Why the FOSS flavor
Steam integration depends on prebuilt jars in
libs/maven(a non-Maven-Central MIT fork of JavaSteam that also fails to build on JitPack). F-Droid's scanner rejects committed binaries regardless of license, so the F-Droid build ships without Steam viafoss.Verification
kspFossDebugKotlin(Hilt DI graph) and Kotlin frontend type-checking of the fullfosssource set both pass with 0 errors.assembleFossReleasewas not run to completion locally: this app's clean Compose compile is pathologically slow (StabilityInferencer), on the order of the ~2–2.5h the release-line CI builds already take. It terminates; it's not the flavor change. ThefossandfullCompose workloads are effectively identical.mainand the 2.0 branch (ui-redesign-beta), so the stubs match 2.0's call sites too.Confirmed during research
sigilsubmodule: pure C, MPL-2.0, builds from source via CMake/NDK — no Rust, no blobs.GPL-3.0-only.api.argosy.devsocial layer →NonFreeNet(titledb/cheats are build-secret-gated and inert in a source build).Folding into 2.0 (how this reaches F-Droid)
This PR targets
main; the F-Droid work is folded into the 2.0 line (ui-redesign-beta, which already containsmain). After merge:mainintoui-redesign-beta, then tag/pushv2.0.0off it (the tag must containfastlane/+ thefossflavor).versionCode(1000302/2000302) to<abi>*1_000_000 + <2.0.0 base versionCode>, and addchangelogs/<2.0.0 codes>.txt.fdroid/com.nendo.argosy.yml→metadata/com.nendo.argosy.yml, runfdroid lint/fdroid build, then open the "New App: com.nendo.argosy" MR.Created with PostHog Code