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
-
Testen vindt plaats via
master-nightly builds, dusmastermoet over het algemeen stabiel zijn voordat wordt doorgegaan. De versie vanmastermoet al de komende hoofdreleaseversie weergeven (d.w.z.X.Y.0). -
Zodra
masterna uitgebreid werk stabiel is, kondig een "golden nightly" aan via het jellyfin-dev Matrix/Riot-kanaal en Forum. -
Verzamel testinformatie en herhaal indien nodig.
-
Zodra de release als stabiel en werkend wordt beschouwd, kondig een volledige PR-bevriezing aan via het jellyfin-dev Matrix/Riot-kanaal.
-
Sta één extra "golden nightly" en minimaal 48 uur testtijd toe. Herstart dit proces als grote verstorende bugs worden gevonden.
-
Zodra alle testen zijn voltooid en de release stabiel blijft, ga verder.
Webclient Uitbrengen
-
Maak een release branch aan in de jellyfin-web repository via CLI vanuit
master, genaamdrelease-X.Y.z, waarbijXenYhet nieuwe versienummer zijn, enzletterlijkzis. Push de nieuwe branch naar GitHub. -
Maak een GitHub-release aan voor de nieuwe versie, gebaseerd op de zojuist aangemaakte
release-X.Y.zbranch. De tag moetvX.Y.Zheten (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) -
Publiceer de release.
Server Uitbrengen
-
Maak een release branch aan in de jellyfin repository via CLI vanuit
master, genaamdrelease-X.Y.z, waarbijXenYhet nieuwe versienummer zijn, enzletterlijkzis. Push de nieuwe branch naar GitHub. -
Maak een GitHub-release aan voor de nieuwe versie, gebaseerd op de zojuist aangemaakte
release-X.Y.z-branch. De tag moet de naamvX.Y.Zhebben (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. -
Publiceer de release.
-
Wacht tot de builds voltooid zijn.
-
Kondig de nieuwe release aan in het jellyfin-announce Matrix/Riot-kanaal en op het Forum.
Hotfix-releaseprocedure
-
Tijdens normale ontwikkeling op de
master-branch: selecteer geschikte PR's voor backporting door ze tijdens de PR-levenscyclus te labelen metstable-backport. Alle PR's richten zich opmaster, dus bugfixes voor de stabiele release moeten dit label hebben om opgenomen te worden. -
Verzamel de lijst met samengevoegde
stable-backport-PR's uit alle relevante repositories. -
Voer voor elke repository stable branch-reconciliatie uit voor de relevante PR's:
-
Voor elke PR die voor backporting is bestemd:
-
Haal de merge commit-hash van de PR uit de
master-branch. -
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>. -
Los eventuele mergeconflicten op, waarbij over het algemeen de merge wordt aangehouden. Bij significante conflicten is de fix waarschijnlijk te groot voor backporting.
-
Finaliseer de cherry-pick via:
git addengit commit -v.
-
-
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". -
Push de bijgewerkte release-branch naar GitHub.
-
Webclient
-
Maak een GitHub-release aan voor de nieuwe versie, gebaseerd op de relevante
release-X.Y.z-branch. De tag moet de naamvX.Y.Zhebben 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) -
Publiceer de release op GitHub en de archiefrepository.
Server
-
Maak een GitHub-release voor de nieuwe versie, gebaseerd op de relevante
release-X.Y.z-branch. De tag moet de naamvX.Y.Zhebben 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. -
Publiceer de release.
-
Wacht tot de builds zijn voltooid.
-
Kondig de nieuwe release aan in het jellyfin-announce-kanaal en waar anders vereist.