Laptopscherm met code in donkere ruimte

De pijn van Drupal upgrades

Als je website op Drupal is gebaseerd, zit je vrijwel zeker met de vraag: Hoe lang kan ik op de huidige versie blijven? En hoe snel volgen de upgrades? Drupal versie 8 is alweer bijna 3 jaar uit maar wordt nog actief doorontwikkeld. Op termijn gaat de volgende versie uitkomen. Wat betekent dit voor jouw online organisatie? En wat zeggen Drupal professionals hierover?

(Dit artikel werd ook op Computable gepubliceerd)

In de Drupal open source gemeenschap worden deze vragen vaak gesteld. Het langer onderhouden van oudere versies (Long Term Support of LTS genoemd) is een scenario. Er zijn ook argumenten om niet te wachten en juist te upgraden wanneer het mogelijk is, zo stelt Angie Byron Drupal ontwikkelaar bij Acquia. Maar niet eerder was Dries Buytaert, oprichter en project lead van Drupal, er zo uitgesproken over als in zijn blog post When should we release Drupal 9? Een ding is zeker: de komst van Drupal 8 betekende een omslag in de manier waarop nieuwe versies van Drupal uitkomen.

Semantic Versioning: kleine releases

Met de release van Drupal 8 begon ook een nieuwe nummering van versies. Drupal core (het basispakket) hanteert een methode die “Semantic Versioning” heet, ook wel bekend als SemVer. SemVer is een standaard die beschrijft dat versienummers uit drie getallen bestaan, bijvoorbeeld “8.5.4”. Het eerste getal beschrijft de major version en gaat over de stabiliteit van de software. Als een ontwikkelaar code schrijft die werkt op Drupal 8.3.0, mag hij erop vertrouwen dat dit blijft werken zolang het versienummer begint met een 8. Het tweede getal, de minor version, gaat over toevoegingen. Elk half jaar komt er een nieuwe minor version uit waarin nieuwe mogelijkheden kunnen worden toegevoegd. Het derde getal tenslotte is de patch version. Dit getal wordt verhoogd elke keer dat er een bugs opgelost worden.

Nieuwe mogelijkheden in Drupal 8

Bij Drupal 6 en 7 golden andere regels: er konden geen nieuwe mogelijkheden meer worden toegevoegd na de eerste beta versie. Zo was het weliswaar makkelijker om de stabiliteit te garanderen, maar het remt de vooruitgang. Dankzij de veranderde aanpak kan Drupal 8 zich sneller ontwikkelen en bereiken nieuwe modules sneller de eindgebruiker. Dat is winst voor developers, maar ook voor organisaties die Drupal gebruiken..

Een paar voorbeelden functionaliteiten die bij een minor release zijn toegevoegd, zijn Inline Form Errors, Big Pipe en de (experimentele) Layout Builder. En met dat laatste zien we meteen nog een verandering in het release-beleid. Door experimentele modules toe te laten in Drupal core, is het makkelijker om nieuwe modules beter te testen voordat ze definitief onderdeel worden van het basispakket.

Wanneer Drupal 9?

Als je steeds functionaliteiten toevoegt, wat bepaalt dan nog wat een nieuwe release is? Alles bij elkaar zou je kunnen zeggen dat er nooit meer een Drupal versie 9 nodig is. We kunnen bugs oplossen wanneer nodig, we kunnen twee keer per jaar nieuwe mogelijkheden toevoegen. Wat willen we nog meer? Het antwoord is eenvoudig: opruimen. Al wordt er soms code toegevoegd die een bepaalde taak op een betere manier afhandelt, zolang we op versie 8 zitten kan de oude code niet verwijderd worden. Anders zou immers de belofte van stabiliteit verbroken worden waar de Semantic Versioning juist voor bedoeld is.

Een tweede reden om te willen overgaan op een volgende Major Version, is om een upgrade te kunnen doen van onderliggende componenten. Drupal gebruikt in zijn “fundamenten” ook weer onderdelen van andere open source projecten, zoals Symfony, Twig, Guzzle, jQuery en CKEditor. Willen we kunnen blijven profiteren van verbeteringen en bugfixes, dan zullen we ook moeten meebewegen met nieuwe versies die daarvan verschijnen.

Veiligheid

Om niet zelf het wiel opnieuw uit te vinden, bouwt Drupal dus verder op andere projecten. Komt daarvan een nieuwe versie uit, dan stopt op den duur het onderhoud aan de vorige versie. Drupal anticipeert daarop, want wanneer het onderhoud is gestopt, zijn die onderdelen een potentieel veiligheidsrisico geworden. Dries Buytaert schrijft dan ook in zijn blog: "Nothing has been decided yet, but the current thinking is that we have to move Drupal to Symfony 4 or later, release that as Drupal 9, and allow enough time for everyone to upgrade to Drupal 9 by November 2021.". Vrij vertaald, uiterlijk in 2020 zal Drupal 9 uit moeten komen. Nu lijkt die datum nog ver weg, maar als je de ambitie hebt om een website mee te laten groeien met online ambities, lijkt het ineens binnen handbereik.

Thumbnail

Om hierop voorbereid te zijn hoeven we eigenlijk maar één ding te doen. Bijblijven. Dankzij de tussentijdse toevoegingen aan Drupal 8, zal de stap van 8 naar 9 veel kleiner zijn dan die van 7 naar 8. Een goed onderhouden site zou dan relatief makkelijk de upgrade kunnen krijgen, hoewel Drupal 8 ook nog een lange tijd onderhouden zal worden. Voor ontwikkelaars geldt hetzelfde: wie op de hoogte blijft van welke code als verouderd is bestempeld en zich aanleert om het modernere alternatief te gebruiken, schrijft code die de overgang van 8 naar 9 aankan.

Marc van Gend is Drupal expert bij LimoenGroen en actief mede-ontwikkelaar van het open source CMS Drupal. Wil je meer weten over Drupal upgrades en wat dit voor jouw organisatie betekent? Neem contact op, want we denken graag mee. Stuur een bericht op hallo@limoengroen.nl of bel +31 20 - 737 1880.