// How Halkyon Todo is released (`dart run tool/release.dart todo`): the // release tool's configuration of it, registered in tool/src/release/apps.dart. import '../../tool/src/release/app_release.dart'; /// Halkyon Todo's releases (ADR 0033, step 5): the APK and the snap, both /// connecting to todo.halkyon.eu, published on code.halkyon.app, the APK in /// the project's F-Droid repository beside Learn and Train. const todoRelease = AppRelease( id: 'todo', name: 'Halkyon Todo', applicationId: 'app.halkyon.todo', directory: 'apps/todo', flutterPackage: 'apps/todo/halkyon_todo_flutter', artifactName: 'halkyon-todo', serverUrl: 'https://todo.halkyon.eu/', forgejo: 'https://code.halkyon.app', repository: 'halkyon-days/halkyon', // A PKCS #12 keystore of its own outside the repository (also in the // maintainer's password manager), as Learn's and Train's: it is the app's // identity, and lost, installed apps can't be updated; one key for several // apps would let either's build pass for the other's update. android: AndroidSigning( certificateFile: 'tool/release/todo-android-certificate.sha256', keystoreVariable: 'HALKYON_TODO_ANDROID_KEYSTORE', defaultKeystore: '.local/share/halkyon-todo/android-release.p12', aliasVariable: 'HALKYON_TODO_ANDROID_KEY_ALIAS', defaultAlias: 'halkyon-todo', ), fdroid: FdroidListing( script: 'tool/fdroid_repo.sh', listing: 'tool/release/fdroid', indexCertificateFile: 'tool/release/fdroid-index-certificate.sha256', repositoryUrl: 'https://halkyon.app/fdroid/repo', ), // Built in a clone of its own (`SnapRelease.projectPath`), as the root's // snap/ is Learn's. To the Store's edge channel, as Learn's, once the // name is registered (`snapcraft register halkyon-todo`). snap: SnapRelease( name: 'halkyon-todo', part: 'halkyon-todo', directory: 'apps/todo/snap', storeChannel: 'edge', ), );