Immich brengt nu release candidates uit. Zo werken ze

Het grootste deel van zijn bestaan had Immich één soort release. Er verscheen een nieuwe versie op GitHub, mensen haalden hem binnen en in de dagen daarna kwamen de bugmeldingen. Daarna loste een patchrelease de ergste op. Dat werkt. Het betekent ook dat de eerste golf gebruikers het testwerk doet op hun echte bibliotheek, zonder zich daarvoor te hebben aangemeld.
Sinds v3 is dat veranderd. Voordat een grote release uitkomt, publiceert Immich nu eerst een of meer release candidates. v3.0 had er vier in juni, voordat de stabiele versie op 2 juli verscheen. v3.2 ging door drie heen. v3.3 had er drie in minder dan een week, tussen 29 september en 2 oktober.
Wat een release candidate is
Een release candidate, of RC, is een versie die volgens de ontwikkelaars klaar is, maar waar ze meer ogen op willen hebben voordat ze hem definitief noemen. De features zijn af. Er komen geen nieuwe bij. Tijdens de RC-fase wordt er getest en worden bugs opgelost, verder niets.
Je herkent een RC aan het versienummer. v3.3.0-rc.0 is de eerste kandidaat voor v3.3.0, v3.3.0-rc.1 de tweede, enzovoort. Dit volgt semantic versioning, waarbij alles na het koppelteken een pre-release aanduidt. Een pre-release telt altijd als ouder dan de versie waar hij naartoe leidt, dus v3.3.0-rc.2 komt vóór v3.3.0. Als niemand iets ernstigs vindt in de laatste kandidaat, gaat dezelfde code uit als stabiele release.
Fotografen die in de doka werken, kennen dit patroon. Je belicht niet eerst je beste vel papier. Je maakt een proefstrook, bekijkt die, past aan en maakt pas daarna de echte afdruk. Een RC is de proefstrook.
Hoe je er een test, en wat er mis kan gaan
Voor de server zet je de variabele IMMICH_VERSION in je .env-bestand op de kandidaat, bijvoorbeeld v3.3.0-rc.2, en voer je docker compose pull && docker compose up -d uit. Er is ook een doorlopende v3-rc-tag die altijd naar de nieuwste kandidaat wijst. Voor de mobiele apps kunnen Android-gebruikers de APK uit de release notes installeren of meedoen aan de bèta op Google Play. iOS-gebruikers doen mee via TestFlight. De links staan bij elke release op GitHub, en daar meld je ook bugs.
Dan de keerzijde, want die is er. Elke RC komt met dezelfde waarschuwing: het is geen stabiele release, en er kunnen bugs of breaking changes in zitten. Die waarschuwing is geen formaliteit. Een nieuwe versie voert bij het opstarten meestal databasemigraties uit. Die migraties gaan alleen vooruit. Immich ondersteunt geen downgrade, dus als een RC iets kapotmaakt, kun je niet terug naar de vorige versie en verdergaan. Je zet een backup terug, of je wacht op de volgende kandidaat.
De regel is dus saai, en het is de juiste. Maak een verse backup van zowel de database als je uploadmap voordat je een RC probeert. Beter nog: test op een tweede instance met een kopie van je data, niet op de bibliotheek die je gezin elke dag gebruikt. Heb je geen backup waarvan je onlangs hebt teruggezet, dan is onze post over de 3-2-1-backupregel een goed begin.
Heb je een machine over en wat tijd, dan is RC’s testen een van de nuttigste dingen die je voor een open-sourceproject kunt doen. Code schrijven is niet de enige manier om bij te dragen. Een duidelijke bugmelding over een RC lost een probleem op voor duizenden mensen voordat ze het ooit zien.
Wat dit betekent voor gebruikers van PixelUnion
Aan hoe je PixelUnion gebruikt verandert niets. We draaien geen release candidates op jouw instance. We wachten op de stabiele release en rollen die daarna gefaseerd uit, zoals we met v3 deden. Je krijgt de nieuwe features zodra ze de RC-fase en onze eigen controles hebben doorlopen.
We volgen de RC’s wel op de voet. Ze laten ons vroeg zien wat eraan komt, zodat we ons kunnen voorbereiden en het jou kunnen vertellen. En omdat meer mensen testen voor de definitieve release, zouden de stabiele versies die bij jou aankomen minder verrassingen moeten bevatten. Dat is goed voor de self-hostingcommunity, en het is goed voor ons.
We willen meer doen dan alleen meekijken. In de toekomst willen we een betaversie van PixelUnion gaan draaien. Geef je aan dat je mee wilt doen, dan krijgt jouw instance nieuwe Immich-versies al vóór de stabiele release, zodat je mee kunt testen en snel feedback kunt geven. Die feedback gaat terug naar het Immich-project, en daar is het om te doen. Of en wanneer deze feature er komt, is nog niet bekend. Zodra we meer weten, lees je het hier als eerste.
Laat je het testen, de backups en de upgrades liever aan iemand anders over, dan zijn wij daar voor.
Begin gratis met PixelUnion →
Omslagfoto door Francisco Gonzalez op Unsplash.