Veroeffentlichung ueber Gitea, BOM-Toleranz, Tests fuer den YAML-Leser

Das Repo ist jetzt oeffentlich, die Pakete haengen an der Veroeffentlichung
`latest`. Damit funktioniert `abdulive update` ohne Token.

- config.example.yaml traegt die gepruefte Update-Adresse
- .gitea/workflows/release.yml baut beim Tag und ersetzt `latest`
- Byte Order Mark: Notepad und `Set-Content -Encoding utf8` schreiben eines,
  und ohne Behandlung hiess der erste Schluessel in der config.yaml
  "\ufeffchannel" - die Einstellung waere stillschweigend ignoriert worden
- Der YAML-Leser hatte gar keine Tests; er liest die Konfiguration, an der
  alles haengt. Jetzt acht.

Der Updater ist einmal komplett durchgelaufen: 0.4.0 erkannt, 119 MB geladen,
Pruefsumme geprueft, bereitgelegt, von launcher.ps1 getauscht.

93 Tests, Typpruefung sauber.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AhVSfMFdWnXKCv5JfLnArZ
This commit is contained in:
ZeasyAlexandClaude Opus 5 committed 2026-09-09 17:43:43 +02:00
1 parent 5f6301268a
commit 08f7c21450
8 files changed
+165 -33

No files matched your search

+7 -7
View File
@@ -60,9 +60,10 @@ abdulive fetch-model
abdulive check-env
```
Einen Einzeiler zum Nachladen gibt es nicht — `git.zeasy.dev` ist komplett
angemeldet-only. **Wo die Pakete liegen sollen, ist die naechste offene
Entscheidung**, und ohne sie funktioniert auch `abdulive update` nicht.
Das Repo ist seit 2026-09-09 oeffentlich, die Pakete haengen an der
Veroeffentlichung `latest`. Einen `irm … | iex`-Einzeiler gibt es trotzdem
nicht — Rohdateien liefert Gitea als `text/plain`, und ein Fehlschlag saehe
aus wie ein PowerShell-Syntaxfehler statt wie ein Fehlschlag.
Ausführlich in [`05-setup.md`](05-setup.md).
@@ -120,7 +121,6 @@ Verbesserungen stehen in [`offene-punkte.md`](offene-punkte.md).
Und: Das Aufräumen im Arbeitsordner fehlt komplett. Rohdateien sammeln sich
unbegrenzt an. Das ist die Lücke, die als Erstes weh tun wird.
Der Updater ist gebaut und in Teilen geprüft — Manifest, Download, Prüfsumme
und Bereitlegen laufen. Der eigentliche Tausch durch `launcher.ps1` ist noch
nie im Feld passiert. Vor dem ersten echten Update einmal künstlich
durchspielen.
Der Updater ist einmal komplett durchgelaufen: 0.4.0 erkannt, 119 MB von
`git.zeasy.dev` geladen, Prüfsumme geprüft, bereitgelegt, von `launcher.ps1`
getauscht, `pending` aufgeräumt. Was noch nie lief, ist die CI-Pipeline.
+3 -21
View File
@@ -68,33 +68,15 @@ Der Durchlauf am echten Clip war brauchbar, aber nicht gut. Was auffiel:
## Auslieferung
- [ ] **Wo liegen die Pakete?** Das ist die Entscheidung, die als Naechstes
ansteht — ohne sie funktioniert `abdulive update` gar nicht.
`git.zeasy.dev` verlangt **instanzweit** eine Anmeldung: `/explore`,
die API und jede Rohdatei antworten mit 303 auf `/user/login`. Ein
`irm … | iex`-Einzeiler bekommt dadurch die Anmeldeseite und versucht,
sie als PowerShell auszufuehren. Drei Wege:
*(a)* eine Ablage ohne Anmeldung, etwa `dl.zeasy.software` — am
einfachsten, und das Paket enthaelt ohnehin den vollstaendigen Quelltext
als lesbare `.ts`-Dateien;
*(b)* Gitea-Release plus Lese-Token auf Abdus Rechner — der Token darf
dann aber das ganze private Repo lesen;
*(c)* kein Updater, Alexander spielt neue Fassungen per Fernwartung ein.
Code und Installer sind auf *(a)* und *(b)* vorbereitet: `update.url` in
der `config.yaml`, Token im verschluesselten Speicher.
- [ ] **Code-Signing.** Das Paket ist nicht signiert, SmartScreen warnt bei
jeder Installation vor einem unbekannten Herausgeber. Ein
OV-Zertifikat kostet rund 200 EUR im Jahr, ein EV-Zertifikat mehr und
braucht Hardware. Solange nur Abdu installiert, reicht ein Klick auf
"Trotzdem ausfuehren" - sobald jemand Drittes das Paket bekommt, nicht
mehr.
- [ ] **CI auf git.zeasy.dev.** `scripts/build-package.ts` laeuft bisher von
Hand. Als Forgejo-Action beim Tag gebaut und als Veroeffentlichung
hochgeladen, findet `abdulive update` sie von allein.
- [ ] **Update noch nie im Feld gelaufen.** Bereitlegen und Pruefsumme sind
getestet, der Tausch durch `launcher.ps1` nur gelesen. Vor dem ersten
echten Update einmal kuenstlich durchspielen.
- [ ] **CI einmal wirklich laufen lassen.** `.gitea/workflows/release.yml`
ist geschrieben, der Runner (`ubuntu-latest`) steht — ausgefuehrt wurde
sie aber noch nie. Beim ersten Tag zusehen, ob sie durchlaeuft.
- [ ] **Hardware-Encoding.** Der mitgelieferte ffmpeg kann QSV, AMF und NVENC
(`--enable-libvpl`, `--enable-amf`, `--enable-ffnvcodec`) - aus WSL2
heraus ging das nicht. `clipper.ffmpeg.encoder` steht weiter auf