Files
Jellyfin-Seasonals-Plugin/RELEASE_GUIDE.md
2025-12-15 11:35:46 +01:00

3.7 KiB

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. Dieser Befehl baut das Projekt, erstellt das ZIP-Archiv und berechnet direkt die Checksumme (Hash).

dotnet publish 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:

----------------------------------------
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)