SkateSpots/distribution/README.md

2.9 KiB

Distribution without GitHub

SkateSpots is published from a self-hosted Forgejo instance. No GitHub account is required.

Current release source

The APK is signed with the same key as the Zapstore build. Installing an F-Droid-signed build over it would require uninstalling SkateSpots and losing the local key/settings. Obtanium and direct APK updates keep the install.

Obtanium

Obtanium cannot use a Zapstore URL as a source. Use the self-hosted Forgejo release page instead:

  1. Open Obtanium → Add App.
  2. Paste: https://git.skate-spots.org/skatespots/SkateSpots/releases/latest
  3. If Obtanium does not recognise the self-hosted host, select Override Source → HTML.
  4. Set version extraction if desired: SkateSpots-([0-9.]+)\.apk, match group 1.

The release page contains exactly one .apk, so Obtanium can follow the latest release without a custom store listing.

F-Droid and IzzyOnDroid

  • Source: https://git.skate-spots.org/skatespots/SkateSpots.git
  • Recipe draft: distribution/fdroiddata/org.skatespots.app.yml
  • Store metadata: fastlane/metadata/android/en-US/

IzzyOnDroid first

IzzyOnDroid accepts reproducible third-party builds and is the least risky step before F-Droid main. Submit the public source URL and the signed release. Keep the developer signature for the Obtanium/APK channel; do not replace the existing install with an F-Droid-signed build without telling users.

F-Droid main

F-Droid main requires:

  • a public, clonable source repository (the Forgejo URL above);
  • a working fdroiddata recipe including the generated Android project step;
  • a reproducible build or an accepted build recipe;
  • maintainer review and F-Droid's own signing key.

The recipe is a draft, not an accepted F-Droid build. The Android project is generated by Capacitor and intentionally not committed, so the prebuild steps must be verified in the F-Droid build environment before submitting.

Release checklist

  1. npm test
  2. scripts/release.sh patch --yes --deploy (Zapstore + web)
  3. Push the release tag and main to Forgejo.
  4. Attach android/app/build/outputs/apk/release/app-release.apk and its .sha256 to the Forgejo release.
  5. Verify the public latest-release page contains the new .apk.
  6. Update the static download page if the displayed version/checksum changes: public/download/index.html.

The Forgejo instance runs on the same host as the relay. It exposes public read access and HTTPS through Caddy; registration is disabled and administrative credentials are kept on the host, not in this repository.