Doorgaan naar hoofdinhoud
Onofficiële Beta-vertaling

Deze pagina is vertaald door PageTurner AI (beta). Niet officieel goedgekeurd door het project. Een fout gevonden? Probleem melden →

Releaseprocedure

Dit document dient als richtlijn voor het kernteam en is openbaar gemaakt om transparantie in het releaseproces te garanderen.

Versienummering

Jellyfin gebruikt semantic versioning. Alle releases hebben versienummers in het X.Y.Z-formaat, beginnend vanaf 10.0.0. Houd er rekening mee dat de 10.Y.Z-releasecyclus de "opruiming" van de codebase vertegenwoordigt. Het is daarom aanvaardbaar dat 10.Y.Z op enig moment alle compatibiliteit verbreekt met eerdere Emby-compatibele interfaces, en mogelijk ook compatibiliteit met eerdere 10.Y-releases verbreekt indien nodig voor latere opruimwerkzaamheden. Onze versienummering volgt doorgaans onderstaande patronen:

X: Hoofdversies

  • Verbreekt compatibiliteit met HTTP- of plugin-API's

Y: Subversies

  • Introduceert nieuwe functies

  • Maakt kleine achterwaarts compatibele API-wijzigingen

Z: Hotfix-versies

  • Kritieke bugfixes of kleine wijzigingen

Algemene Releasefilosofie

Releases vinden doorgaans plaats op zondagen "wanneer klaar". Voor hoofd-/subreleases is "wanneer klaar" flexibel en betekent dit wanneer de release écht klaar is zonder grote verstorende bugs. Na een hoofdrelease moet het adminteam elke zondag onlangs samengevoegde PR's beoordelen en, indien backports nodig zijn, een Hotfix-release uitvoeren met deze PR's.

Procedure voor Hoofdrelease

Voorbereiding

  1. Testen vindt plaats via master-nightly builds, dus master moet over het algemeen stabiel zijn voordat wordt doorgegaan. De versie van master moet al de komende hoofdreleaseversie weergeven (d.w.z. X.Y.0).

  2. Zodra master na uitgebreid werk stabiel is, kondig een "golden nightly" aan via het jellyfin-dev Matrix/Riot-kanaal en Forum.

  3. Verzamel testinformatie en herhaal indien nodig.

  4. Zodra de release als stabiel en werkend wordt beschouwd, kondig een volledige PR-bevriezing aan via het jellyfin-dev Matrix/Riot-kanaal.

  5. Sta één extra "golden nightly" en minimaal 48 uur testtijd toe. Herstart dit proces als grote verstorende bugs worden gevonden.

  6. Zodra alle testen zijn voltooid en de release stabiel blijft, ga verder.

Webclient Uitbrengen

  1. Maak een release branch aan in de jellyfin-web repository via CLI vanuit master, genaamd release-X.Y.z, waarbij X en Y het nieuwe versienummer zijn, en z letterlijk z is. Push de nieuwe branch naar GitHub.

  2. Maak een GitHub-release aan voor de nieuwe versie, gebaseerd op de zojuist aangemaakte release-X.Y.z branch. De tag moet vX.Y.Z heten (d.w.z. vX.Y.0) en de release moet "Release X.Y.Z" heten. De releasebody moet alleen de volgende link bevatten, waarbij de versie indien nodig wordt vervangen:

    [Please see the release announcement on the main repository.](https://github.com/jellyfin/jellyfin/releases/tag/vX.Y.Z)
  3. Publiceer de release.

Server Uitbrengen

  1. Maak een release branch aan in de jellyfin repository via CLI vanuit master, genaamd release-X.Y.z, waarbij X en Y het nieuwe versienummer zijn, en z letterlijk z is. Push de nieuwe branch naar GitHub.

  2. Maak een GitHub-release aan voor de nieuwe versie, gebaseerd op de zojuist aangemaakte release-X.Y.z-branch. De tag moet de naam vX.Y.Z hebben (bijv. vX.Y.0) en de release de naam "Release X.Y.Z". De release-body moet de volgende onderdelen bevatten:

    a. Een korte inleidende tekst onder een # Jellyfin X.Y.Z-kop.

    a. Een lijst met nieuwe functies, inclusief inline links naar Fider indien beschikbaar, onder een ## New Features and Major Improvements-kop.

    a. Een lijst met belangrijke release-opmerkingen, gecategoriseerd per platform (bijv. [All] of [Windows]), onder een ## Important Release Notes-kop.

    a. Indien van toepassing, een sectie met opmerkingen over FFmpeg onder een ## FFmpeg-kop.

    a. Een volledig changelog, gesplitst per repository met ### [repo](https://github.com/jellyfin/repo)-subkopjes, onder een ## Changelog-kop. Elk item moet het PR-nummer en de PR-titel bevatten.

  3. Publiceer de release.

  4. Wacht tot de builds voltooid zijn.

  5. Kondig de nieuwe release aan in het jellyfin-announce Matrix/Riot-kanaal en op het Forum.

Hotfix-releaseprocedure

  1. Tijdens normale ontwikkeling op de master-branch: selecteer geschikte PR's voor backporting door ze tijdens de PR-levenscyclus te labelen met stable-backport. Alle PR's richten zich op master, dus bugfixes voor de stabiele release moeten dit label hebben om opgenomen te worden.

  2. Verzamel de lijst met samengevoegde stable-backport-PR's uit alle relevante repositories.

  3. Voer voor elke repository stable branch-reconciliatie uit voor de relevante PR's:

    1. Voor elke PR die voor backporting is bestemd:

      1. Haal de merge commit-hash van de PR uit de master-branch.

      2. Voer een cherry-pick uit van de merge commit naar de release-x.y.z-branch via: git cherry-pick -sx -m1 <merge-commit-hash>.

      3. Los eventuele mergeconflicten op, waarbij over het algemeen de merge wordt aangehouden. Bij significante conflicten is de fix waarschijnlijk te groot voor backporting.

      4. Finaliseer de cherry-pick via: git add en git commit -v.

    2. Voor de hoofd-jellyfin-repository: verhoog de versie naar de nieuwe hotfix-versie met het bump_version-script en commit met het bericht "Bump version for X.Y.Z".

    3. Push de bijgewerkte release-branch naar GitHub.

Webclient

  1. Maak een GitHub-release aan voor de nieuwe versie, gebaseerd op de relevante release-X.Y.z-branch. De tag moet de naam vX.Y.Z hebben en de release de naam "Release X.Y.Z". De release-body moet alleen de volgende link bevatten (vervang de versie indien nodig):

    [Please see the release announcement on the main repository.](https://github.com/jellyfin/jellyfin/releases/tag/vX.Y.Z)
  2. Publiceer de release op GitHub en de archiefrepository.

Server

  1. Maak een GitHub-release voor de nieuwe versie, gebaseerd op de relevante release-X.Y.z-branch. De tag moet de naam vX.Y.Z hebben en de release de naam "Release X.Y.Z". De releasebody moet de volgende onderdelen bevatten:

    a. Een korte inleiding onder een # Jellyfin X.Y.Z-kop.

    a. Een lijst met bekende release-opmerkingen, gecategoriseerd per relevant platform (bijv. [All] of [Windows]), onder een ## Important Release Notes-kop.

    a. Indien van toepassing, release-opmerkingen over FFmpeg onder een ## FFmpeg-kop.

    a. Een volledige changelog, gesplitst per repository met ### [repo](https://github.com/jellyfin/repo)-subkoppen onder een ## Changelog-kop. Elk element moet een PR-nummer en PR-titel bevatten.

  2. Publiceer de release.

  3. Wacht tot de builds zijn voltooid.

  4. Kondig de nieuwe release aan in het jellyfin-announce-kanaal en waar anders vereist.