82 lines
3.7 KiB
Markdown
82 lines
3.7 KiB
Markdown
# Release & Update Guide
|
|
|
|
Diese Anleitung beschreibt die Schritte, die notwendig sind, um eine neue Version des **Seasonals** Plugins zu veröffentlichen.
|
|
|
|
## 1. Version erhöhen
|
|
|
|
Bevor du baust, musst du die Versionsnummer in den folgenden Dateien aktualisieren (z.B. von `1.0.0.0` auf `1.0.1.0`):
|
|
|
|
1. **`Jellyfin.Plugin.Seasonals/Jellyfin.Plugin.Seasonals.csproj`**
|
|
Suche nach `<Version>...</Version>` und ändere die Nummer.
|
|
|
|
2. **`build.yaml`**
|
|
Ändere den Wert bei `version: "..."`.
|
|
|
|
3. **`manifest.json`**
|
|
Füge einen neuen Eintrag oben in die `versions`-Liste ein (oder bearbeite den vorhandenen, wenn es noch kein Release gab).
|
|
* `version`: Deine neue Nummer.
|
|
* `changelog`: Was hat sich geändert?
|
|
* `timestamp`: Das aktuelle Datum (wird später aktualisiert).
|
|
* `checksum`: (wird nach dem Build aktualisiert).
|
|
|
|
### Versionierungsschema: Major.Minor.Build.Revision
|
|
(Beispiel: 1.0.0.0)
|
|
|
|
1. **Major** (1.x.x.x)
|
|
* **Bedeutung:** Hauptversion.
|
|
* **Erhöhen bei:** Inkompatiblen Änderungen (Breaking Changes) oder komplettem Rewrite.
|
|
* **Folge:** Setzt alle nachfolgenden Zahlen auf 0.
|
|
|
|
2. **Minor** (x.1.x.x)
|
|
* **Bedeutung:** Nebenversion.
|
|
* **Erhöhen bei:** Neuen Features / Funktionen, die abwärtskompatibel sind.
|
|
* **Folge:** Setzt Build und Revision auf 0.
|
|
|
|
3. **Build** (x.x.1.x)
|
|
* **Bedeutung:** Patch / Fehlerbehebung.
|
|
* **Erhöhen bei:** Bugfixes, Sicherheitsupdates (keine neuen Features).
|
|
* **Folge:** Setzt Revision auf 0.
|
|
|
|
4. **Revision** (x.x.x.1)
|
|
* **Bedeutung:** Feingranularer Zähler.
|
|
* **Erhöhen bei:** Notfall-Fixes (Hotfixes), automatisierter Erstellung (CI/CD) oder internen Anpassungen.
|
|
|
|
## 2. Plugin bauen und packen
|
|
|
|
Führe den folgenden Befehl im Terminal (PowerShell) im Hauptverzeichnis aus. Wir nutzen hier `dotnet build` statt `publish`, um unnötige Dateien zu vermeiden.
|
|
|
|
```powershell
|
|
dotnet build Jellyfin.Plugin.Seasonals/Jellyfin.Plugin.Seasonals.csproj --configuration Release --output bin/Publish; Compress-Archive -Path bin/Publish/* -DestinationPath bin/Publish/Jellyfin.Plugin.Seasonals.zip -Force; $hash = (Get-FileHash -Algorithm MD5 bin/Publish/Jellyfin.Plugin.Seasonals.zip).Hash.ToLower(); $time = (Get-Date).ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ssZ"); Write-Output "`n----------------------------------------"; Write-Output "NEUE CHECKSUMME (MD5): $hash"; Write-Output "ZEITSTEMPEL: $time"; Write-Output "----------------------------------------`n"
|
|
```
|
|
|
|
## 3. Manifest aktualisieren
|
|
|
|
Nachdem der Befehl durchgelaufen ist, siehst du am Ende eine Ausgabe wie:
|
|
|
|
```text
|
|
----------------------------------------
|
|
NEUE CHECKSUMME (MD5): ef8654666ffeae9695e660944f644ad3
|
|
ZEITSTEMPEL: 2025-12-15T12:34:56Z
|
|
----------------------------------------
|
|
```
|
|
|
|
1. Kopiere die **Checksumme**.
|
|
2. Öffne `manifest.json`.
|
|
3. Füge die Checksumme bei deinem Versionseintrag unter `"checksum"` ein.
|
|
4. Kopiere den **Zeitstempel** und füge ihn unter `"timestamp"` ein.
|
|
5. Stelle sicher, dass die `sourceUrl` korrekt auf dein Repository zeigt.
|
|
|
|
## 4. Veröffentlichen
|
|
|
|
1. Lade die Datei `bin/Publish/Jellyfin.Plugin.Seasonals.zip` irgendwo hoch (z.B. GitHub Releases).
|
|
2. Stelle sicher, dass die `sourceUrl` im `manifest.json` auf diesen Download zeigt (oder auf das Repo, je nachdem wie Jellyfin das handhabt - meistens ist `sourceUrl` der Link zum ZIP).
|
|
* *Hinweis:* Wenn du das Plugin über ein Repo hostest, muss die URL im Manifest direkt auf die ZIP-Datei zeigen.
|
|
|
|
## Zusammenfassung der Dateien
|
|
|
|
| Datei | Zweck | Änderung nötig? |
|
|
| :--- | :--- | :--- |
|
|
| `Jellyfin.Plugin.Seasonals.csproj` | Definiert die DLL-Version | **Ja** |
|
|
| `build.yaml` | Build-Konfiguration | **Ja** |
|
|
| `manifest.json` | Plugin-Liste für Jellyfin | **Ja** (Version, Hash, Zeit) |
|