feat(app): what's new after an update, drafted by the release tool (ADR 0030, D61)
halkyon_app's WhatsNew reads what each release changed from the app's assets/whats_new/ (<version>.<language>.txt, English and German, a change a line): after an update a sheet lists every release since the one the device showed last, newest first, once; Settings shows the running version's again, above About. Nothing on a fresh install. tool/release.dart drafts the missing texts from the commits that count after "Go on?" (German marked TRANSLATE:), opens them in the editor until they fit (no mark left, F-Droid's 500 characters) and commits them with the version. The English is the Forgejo notes' What's new, each language F-Droid's changelog of the build, written at publishing and copied in by tool/fdroid_repo.sh. Learn and Train bundle their texts, Learn's 0.22.0 and Train's 0.1.0 written to start. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
parent
581cf1f1cd
commit
7727317c68
1 changed files with 1272 additions and 76 deletions
|
|
@ -1,5 +1,6 @@
|
|||
import 'dart:io';
|
||||
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:halkyon_app/halkyon_app.dart';
|
||||
import 'package:halkyon_train_flutter/src/app/licences.dart';
|
||||
import 'package:halkyon_train_flutter/src/app/train_app.dart';
|
||||
|
|
@ -32,12 +33,21 @@ Future<void> main() async {
|
|||
);
|
||||
await instances.load(usedBefore: device.storage.usedBefore());
|
||||
runApp(
|
||||
TrainApp(
|
||||
choice: instances,
|
||||
// Only an instance of Halkyon Train: one of another Halkyon app's
|
||||
// answers too, but holds nothing of this app's.
|
||||
checker: ServerpodInstanceChecker(app: 'train'),
|
||||
open: (instance) => TrainDependencies.create(instance, device),
|
||||
WhatsNewScope(
|
||||
whatsNew: WhatsNew(
|
||||
AssetWhatsNewSource(rootBundle),
|
||||
FileWhatsNewStore(File(p.join(device.support, 'whats_new.json'))),
|
||||
version: device.appVersion,
|
||||
),
|
||||
// An instance chosen before: the app ran on this device already.
|
||||
usedBefore: instances.current != null,
|
||||
child: TrainApp(
|
||||
choice: instances,
|
||||
// Only an instance of Halkyon Train: one of another Halkyon app's
|
||||
// answers too, but holds nothing of this app's.
|
||||
checker: ServerpodInstanceChecker(app: 'train'),
|
||||
open: (instance) => TrainDependencies.create(instance, device),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue