Immich släpper nu release candidates. Så fungerar de

Immich släpper nu release candidates. Så fungerar de

Under större delen av sin livstid hade Immich en enda sorts release. En ny version dök upp på GitHub, folk hämtade den och buggrapporterna kom in under de följande dagarna. Sedan rättade en patchrelease de värsta av dem. Det fungerar. Det betyder också att den första vågen användare gör testandet på sina riktiga bibliotek, utan att ha anmält sig till det.

Sedan v3 har det ändrats. Innan en stor release går ut publicerar Immich nu först en eller flera release candidates. v3.0 hade fyra i juni, innan den stabila versionen kom den 2 juli. v3.2 gick igenom tre. v3.3 hade tre på under en vecka, mellan den 29 september och den 2 oktober.

Vad en release candidate är

En release candidate, eller RC, är en version som utvecklarna anser är klar, men som de vill att fler tittar på innan de kallar den slutgiltig. Funktionerna är färdiga. Inga nya läggs till. Det som händer under RC-fasen är testning och buggrättning, inget annat.

Du känner igen en på versionsnumret. v3.3.0-rc.0 är den första kandidaten för v3.3.0, v3.3.0-rc.1 den andra, och så vidare. Det följer semantisk versionshantering, där allt efter bindestrecket markerar en förhandsversion. En förhandsversion räknas alltid som äldre än versionen den leder fram till, så v3.3.0-rc.2 sorteras före v3.3.0. När ingen hittar något allvarligt i den sista kandidaten går samma kod ut som den stabila releasen.

Den som har jobbat i mörkrum känner igen mönstret. Du exponerar inte ditt bästa fotopapper först. Du gör en provremsa, kontrollerar den, justerar och gör först därefter den riktiga kopian. En RC är provremsan.

Hur du testar en, och vad som kan gå fel

För servern pekar du variabeln IMMICH_VERSION i din .env-fil på kandidaten, till exempel v3.3.0-rc.2, och kör docker compose pull && docker compose up -d. Det finns också en rullande v3-rc-tagg som alltid pekar på den senaste kandidaten. För mobilapparna kan Android-användare installera APK:n från release notes eller gå med i betan på Google Play. iOS-användare går med via TestFlight. Länkarna finns i varje release på GitHub, och det är också där buggar ska rapporteras.

Nu till avvägningen, för det finns en. Varje RC kommer med samma varning: den är inte en stabil release, och den kan innehålla buggar eller ändringar som bryter bakåtkompatibiliteten. Den varningen är ingen formalitet. En ny version kör oftast databasmigreringar när den startar. De migreringarna går bara framåt. Immich stöder inte nedgradering, så om en RC förstör något kan du inte byta tillbaka till den tidigare versionen och fortsätta som vanligt. Du återställer från en backup, eller så väntar du på nästa kandidat.

Så regeln är tråkig, och den är rätt. Gör en färsk backup av både databasen och din uppladdningsmapp innan du provar en RC. Ännu bättre är att testa på en andra instans med en kopia av din data, inte på biblioteket som din familj använder varje dag. Om du inte har en backup som du nyligen har återställt från är vårt inlägg om 3-2-1-regeln för backup ett bra ställe att börja.

Om du har en ledig dator och lite tid är testning av RC:er något av det mest användbara du kan göra för ett open source-projekt. Att skriva kod är inte det enda sättet att bidra. En tydlig buggrapport mot en RC löser ett problem för tusentals personer innan de ens ser det.

Vad det här betyder för PixelUnion-användare

Ingenting ändras i hur du använder PixelUnion. Vi kör inte release candidates på din instans. Vi väntar på den stabila releasen och rullar sedan ut den i etapper, på samma sätt som vi gjorde med v3. Du får de nya funktionerna när de har gått igenom RC-fasen och våra egna kontroller.

Vi följer däremot RC:erna noga. De visar oss tidigt vad som är på väg, så att vi kan förbereda oss och berätta om det för dig. Och eftersom fler testar före den slutliga releasen bör de stabila versionerna som når dig innehålla färre överraskningar. Det är bra för communityn kring självhosting, och det är bra för oss.

Vi vill göra mer än att titta på. I framtiden vill vi köra en betaversion av PixelUnion. Om du säger till att du vill vara med får din instans nya Immich-versioner före den stabila releasen, så att du kan hjälpa till att testa och snabbt ge feedback. Den feedbacken går tillbaka till Immich-projektet, och det är hela poängen. Om och när den här funktionen kommer är ännu inte bestämt. När vi vet mer läser du det här först.

Om du hellre låter någon annan sköta testandet, backuperna och uppgraderingarna är det det vi finns här för.

Börja gratis med PixelUnion →

Omslagsfoto av Francisco Gonzalez på Unsplash.