74 lines
2.9 KiB
Markdown
74 lines
2.9 KiB
Markdown
# Distribution without GitHub
|
|
|
|
SkateSpots is published from a self-hosted **Forgejo** instance. No GitHub
|
|
account is required.
|
|
|
|
## Current release source
|
|
|
|
- Forge: <https://git.skate-spots.org/skatespots/SkateSpots>
|
|
- Latest release: <https://git.skate-spots.org/skatespots/SkateSpots/releases/latest>
|
|
- Signed APK (1.7.61):
|
|
<https://git.skate-spots.org/skatespots/SkateSpots/releases/download/v1.7.61/SkateSpots-1.7.61.apk>
|
|
- SHA-256:
|
|
`db0279f759efd9fa05d9d1bed57a3f5856777e6ccb208d3ed78b15398f266fba`
|
|
|
|
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.
|