Skip to main content

Joinup becomes the first European Commission site to use Drupal 10

Drupal 10 makes Joinup a more secure and efficient site

Published on: 02/08/2023 News

Joinup, the European Commission's one-stop shop for interoperable, open, and free digital government ICT solutions, has become the first European Commission site to use Drupal 10. The upgrade to Drupal 10, completed in July 2023, was a major undertaking, as Joinup is a complex site with a large codebase. However, the team was able to complete the upgrade without any major disruptions to the site.

One of the instant benefits of moving to Drupal 10 was the number of patches no longer necessary in the codebase. Removing these obsolete patches made the codebase cleaner and more efficient. One challenge, however, was the need to update the site's dependencies. Drupal 10 requires a new combination of dependencies, sometimes making it difficult due to independent packages outdated or specific requirements.

Despite these challenges, the team was able to complete the upgrade to Drupal 10 successfully. The upgrade has made Joinup a more secure and efficient site, and it has also made it easier for the team to maintain and update the site in the future.

Great support from the community

Most modules needed for Drupal 10 were already in place. Three major factors played part in this:

  1. The almost seamless upgrade path between major Drupal versions. Starting from Drupal 8, major versions are a continuation of the previous, with very good support of backwards compatibility and proper code deprecation.
  2. Community support. Most modules, abiding to the Drupal coding standards, and following the semantic versioning system properly, were already pretty close to work with Drupal 10, too. Minor deprecations, minor code upgrades and little refactoring was all the work needed often, to make a module compatible with the new Drupal version. Others simply needed an update in the version restriction.
  3. The Drupal update bot was a game changer regarding minor updates. A combination of PHPStan Drupal by Matt Glaman (which tracks deprecated API usages) and drupal-rector (that can automatically fix them), it helps Drupal maintainers work efficiently without wasting time.

The update process and results

On Joinup, we use 88 Drupal-related packages, including “core-recommended” and Drush. We have an additional 67 integrated and patched packages that are needed for our work. Six patches were needed to be added, six were removed, and two were updated. The work was not easy as many of them required additional work and some of them needed to be customised and temporarily stored in our code base due to conflicts with other patches. 

However, the work was fairly easier, and the patch number was low, compared to the previous major version update. This designates a brighter path ahead for the Drupal upgrade process.

Joinup's source code

The source code of Joinup is open source and published at the European Commission’s Gitlab instance. New versions are also uploaded to the Joinup platform itself at https://joinup.ec.europa.eu/collection/joinup/solution/joinup-source-code.

Note: The team has contributed more than 30 reusable modules to the Drupal community.