Drupal is een open-source content management systeem (CMS) dat door vele websites wereldwijd wordt gebruikt. YOP Online begon op Drupal 8 en later Drupal 9 (zie update blog van deze stap). Echter, Drupal 10 is nu beschikbaar en biedt nog meer nieuwe functies en verbeteringen. In dit artikeltje vertel ik over deze update naar 10.
Voordat je begint met de upgrade, is het belangrijk om te controleren of alle modules en thema's die je gebruikt compatibel zijn met Drupal 10. Dit kun je doen door de compatibiliteit van de modules te controleren op de Drupal-website en de documentatie van de thema's te raadplegen. Maar nog handiger is de Upgrade Status module. Het is ook belangrijk om ervoor te zorgen dat je website wordt gehost op een server die voldoet aan de vereisten van Drupal 10.
YOP Online draait op een mooie VPS van Transip.nl. Deze begon als ubuntu 18, later ubuntu 20 en nu 22. Drupal 10 heeft namelijk PHP 8.1 nodig, en die zit in de standaard distributie van ubuntu 22. Zoals ik ook deed voor Ubuntu Focal Fossa, even een `do-release-upgrade` en bam. Eigenlijk meteen klaar.
Wat betreft drupal heb ik in het Custom YOP thema 1 stukje code moeten updaten. Een function aanroep van file_create_url(). Gelukkig was daar gewoon een mooi issue van op drupal.org.
Daarnaast heb ik Stable als contrib thema gedownload, omdat immers het base theme van YOP Online op 'stable' 'leunt' :)
Enige wat niet meteen goed ging was composer update van 9 naar 10. Die wilde maar niet gaan starten. Ik kreeg vage conflicten die ik niet begreep. Na flink wat proberen en uiteindelijk de composer.json file omgebouwd met zoveel mogelijk dezelfde keys en values uit het drupal-composer/drupal-project.
En ik weet het nog steeds niet zeker maar volgens mij was de oplossing:
```json
"composer/installers": "^2",
"drupal/core-composer-scaffold": "^10",
"drupal/core-project-message": "^10",
"drupal/core-recommended": "^10",
// en drush!
"drush/drush": "^11",
```
Deze allemaal tegelijk en dan een `composer update`. Ineens zag ik groene 'downloading' zinnen voorbij vliegen in de console. :)
Daara was het eigenlijk klaar, behalve dat ik met m'n stomme kop de vendor map had geexclude in mijn rsync. Dus toen was de live site ineens kapot met vage meldingen. Snel alsnog de vendor geupload, `drush updb` gedraait, `drush cim` en `drush cr` en klaar. BAM Drupal 10!