halkyon/apps/learn/release.dart

52 lines
2.1 KiB
Dart
Raw Permalink Normal View History

// How Halkyon Learn is released (`dart run tool/release.dart learn`): the
// release tool's configuration of it, registered in tool/src/release/apps.dart.
import '../../tool/src/release/app_release.dart';
/// Halkyon Learn's releases: the APK and the snap, both connecting to
/// learn.halkyon.eu, the project's instance, published on code.halkyon.app,
/// in the project's F-Droid repository and in the Snap Store's edge channel.
const learnRelease = AppRelease(
id: 'learn',
name: 'Halkyon Learn',
applicationId: 'app.halkyon.learn',
directory: 'apps/learn',
flutterPackage: 'apps/learn/halkyon_learn_flutter',
artifactName: 'halkyon-learn',
serverUrl: 'https://learn.halkyon.eu/',
forgejo: 'https://code.halkyon.app',
repository: 'project-halkyon/halkyon',
// A PKCS #12 keystore outside the repository (also in the maintainer's
// password manager): there is no Google Play, so it is the app's identity,
// and lost, installed apps can't be updated.
android: AndroidSigning(
certificateFile: 'tool/release/android-certificate.sha256',
keystoreVariable: 'HALKYON_ANDROID_KEYSTORE',
defaultKeystore: '.local/share/halkyon-learn/android-release.p12',
aliasVariable: 'HALKYON_ANDROID_KEY_ALIAS',
defaultAlias: 'halkyon-learn',
),
fdroid: FdroidListing(
script: 'tool/fdroid_repo.sh',
listing: 'tool/release/fdroid',
indexCertificateFile: 'tool/release/fdroid-index-certificate.sha256',
repositoryUrl: 'https://halkyon.app/fdroid/repo',
),
// To the Store's edge channel (since 23 Oct 2026, as v0.18.0 went there by
// hand): stable once the app leaves its early days.
snap: SnapRelease(
name: 'halkyon-learn',
part: 'halkyon-learn',
directory: 'snap',
storeChannel: 'edge',
),
// Learn's releases up to build 21 were tagged v0.18.0 and so on.
legacyTagPrefix: 'v',
// Its packages were at the repository's root until it moved into apps/learn
// (19 Oct 2026, ADR 0015).
formerPaths: [
'halkyon_learn_client',
'halkyon_learn_curator',
'halkyon_learn_flutter',
'halkyon_learn_server',
],
);