Three weeks ago, from September 20 to 23, 2022, DrupalCon Europe 2022 took place in Prague.
The first in-person DrupalCon in Europe since Amsterdam in 2019. It was a great opportunity to reconnect with the Drupal community, even though this year there were also the Drupal Dev Days in Ghent, Belgium, where I was a speaker!
New this year: a hybrid format allowing people to follow sessions live remotely at a lower cost. In Prague, nearly 1,200 people attended in person and 100 online.
Session recordings will be publicly available from Wednesday, October 26.
Here is a day-by-day summary of my experience at the event.
Day 1
Contribution
Morning dedicated to contribution. I will describe here all of my contribution work, which took place throughout the event.
- UI Patterns:
- migration of UI Patterns from GitHub to Drupal.org: removal of all GitHub-specific code
- fixing tests so they pass on Drupal.org
- resolving issues in my stack preventing me from running FunctionalJavascript tests
- resolving a compatibility issue with the latest version of the Field Group module (later I realized a fix had already been proposed on GitHub, but it was buried in years of accumulated PRs and I hadn't thought to check whether someone had already submitted a fix, which would have saved me a few hours)
- creating version 8.x-1.3 of UI Patterns, which brings compatibility with PHP 8.1 and Drupal 10
- retrieving issues and PRs from GitHub to Drupal.org
- progress on the packaging of the UI Suite Bootstrap Demo installation profile
List of modules I maintained and made compatible with Drupal 10:
- UI Styles
- UI Examples
- Qwantsearch: new release
- Syslog Watcher: new release
- File Extractor: however, tests have not been passing on Drupal.org for some time due to fairly significant prerequisites for this module's tests. Following an on-site discussion with Neil Drumm, he advised me to switch to Gitlab CI as efforts on DrupalCI are being reduced, so spending time on the old system is pointless. I will experiment with Gitlab CI on Drupal.org when the opportunity arises.
- Select Icons
- Internationalization Single Sign-On
- Video Embed Damdy: new release
- Video Embed Bliverr: new release
- UI Suite Protocol
- Entity Visibility Preview: new release
Module where I was able to do some maintenance:
Opening Ceremony
Welcome of participants and setting the scene for first-time DrupalCon attendees.
Overview of the event mascot's journey across various European events over the past year.
Keynote: Drupal Core Initiative Leads
Presentation of ongoing initiatives in the Drupal core.
- CKEditor 5
- Major work for the integration, close collaboration with CKSource.
- Data migration path.
- Project browser
- Allows browsing the Drupal module ecosystem from the back office.
- Project Update Bot
- Better tools to facilitate compatibility updates for projects on Drupal.org.
- Gitlab Drupal.org
- Continuing the migration of the contribution workflow to Gitlab.
- The issue system will eventually be migrated to Gitlab, meaning patches will no longer be possible — or at least uploading a patch will no longer trigger anything.
- Use of Gitlab CI, which will allow complete freedom over the CI.
- These changes will reduce the customizations of Drupal.org, ease contribution by providing contributors with standard industry tools, and thus facilitate Drupal.org maintenance.
- Localize.drupal.org
- Migration of the translation server to Drupal 9.
- Distributions and recipes
- New system to replace distributions, which allows:
- being used on an existing site
- easier updates
- providing default content, for example
- https://www.drupal.org/project/distributions_recipes
- New system to replace distributions, which allows:
- Automatic updates
- Progress on the prerequisites to enable automatic updates.
Marine Gandy, who will present the initiative to migrate localize.drupal.org to Drupal 9.
Components everywhere! From Component Library module to Fully Decoupled Layout Builder with Instant Preview
Technical issues at the start of the session cost 20 minutes, which didn't help — but on substance, I found the presented solution to be overly complex.
Additional modules I noted:
CKEditor 5 in Drupal 10: what is there to be excited about?
Presented by the president of CKSource, who is deeply involved in the product and in the collaboration with the Drupal community to keep CKEditor as the core RTE.
CKEditor 5 is a complete rewrite compared to CKEditor 4, a rewrite that has been underway for several years.
Some CKEditor 5 features that were presented:
- Markdown syntax support
- automatic transformations, e.g. a copyright symbol (not in Drupal)
- reintroduction of the source button
- word count
- mentions
- to-do lists
- find and replace
- PDF export
- docx export
- collaboration
- comments system
- suggestions system
- revision history
Premium features can be integrated via the CKEditor 5 Premium Features module.
The technical workings of CKEditor 5 were then presented, with an important point about how a CKEditor widget explicitly declares the markup it can act on, and the types of HTML tags and attributes it generates via a schema system.
Practical SEO optimizations for faceted searches
A series of tips on SEO and search.
List of modules to use depending on the situation:
For various site elements, here are the recommendations:
- breadcrumb: override the "ajaxfacet controller" and build a custom breadcrumb
- metatags: write custom hooks or use Metatag Views
- sitemap (XML): apply a patch so facets are handled and add nofollow
- robots.txt: remove search listing pages
Day 2
Driesnote
The traditional keynote by Drupal's founder.
I will note here a few key phrases and ideas (note: you need to watch the keynote for context, as these quotes can be misleading without it):
- "I like to own my own data"
- "Somebody might not like a detail, so there can be no details."
- "Control of code" (brought by Drupal)
- "Creativity limit": from proprietary solutions
- "Good software cares about end users"
He then took stock on the topics "what slows down contribution?" and "how can we make Drupal more widely used?".
The move to Gitlab CI and Gitlab issues will make it easier for new contributors already familiar with these tools to get started.
He is counting heavily on the "Project browser" and automatic updates initiatives to ease Drupal usage.
Drupal 10 in a few contribution figures:
- more than 1,500 people
- more than 500 organizations
However, despite the keynote being very motivating, Drupal 10 remains for now primarily a technical update (Symfony 6, base theme changes, minimum PHP version).
Granted, CKEditor 5 will allow for a thorough rethink of its Drupal integration, but features like the project browser won't change day-to-day life for professionals.
Then again, is it so bad that there are no landmark feature announcements like the introduction of Layout Builder or workflows in core? Drupal is going through a phase of stabilization and trimming of unused features, focusing on what matters most and thus better continuing its lifecycle.
Drupal performances from real production projects
Could not attend as the room was packed and you had to arrive 10 to 15 minutes early to get a seat.
I did however look at the slides afterwards.
The subject was covered in a very thorough and interesting way.
I remain skeptical about the need to optimize the dependency injection container, but there are other points such as the Igbinary extension or serialization via Redis that I plan to test in my Drupal skeleton.
Getting Ready for Drupal 10 (sponsored by Acquia)
Was busy coding and ultimately did not attend the presentation.
I assume what was presented were tools like PHPStan and Rector, which I already integrate into my development stack.
All the cool things you can do when you don't support IE11 (and how we can use these in Drupal core)
In Drupal 10, no more IE support.
A few points covered:
- CSS property "all: revert"
- CSS logical properties (RTL): "padding-inline-start" instead of left or right padding
- CSS Grid
- Focus selectors
- :not()
- :is() / :where() and the fact that :where() adds no specificity
- CSS image mask: better for accessibility
- CSS variables: scoping
- CSS variables injected via JavaScript
Drupal Recipes: From #Driesnote to Initiative
Still a very experimental concept.
The observation is that creating and maintaining distributions is difficult.
A distribution makes decisions about configuration, theme, etc., and this forces choices to be made right from the installation of a site.
Examples of recipes were then presented, including their structure and notably the use of PHP attributes.
With the initiative still in a very experimental state and the examples being very simple and therefore of limited practical use, it is hard to envision whether this will truly take off and revolutionize the way features are packaged for reuse.
Day 3
Reimagining text editing in Drupal Core: CKEditor 5
Another presentation on CKEditor 5, this time from the perspective of a Drupal core maintainer.
With the end of life of CKEditor 4, other RTEs were evaluated for Drupal, but given the affinity built up over the years between Drupal and CKEditor, the decision was made to continue with CKEditor.
The goals of the update:
- no data loss, by providing a migration path
- need to fully rebuild the integration with Drupal
As in the previous presentation, the list of issues resolved to reach the current state was shown.
New features (possibly repeated from the other presentation):
- need to declare the list of allowed HTML tags
- no IE11 support in CKEditor 5
- the CKEditor 5 inspector for debugging
- creation of a starter template in core to make plugin creation easier
Documentation page with the migration status of community modules, where I added Font Awesome Icons during the session.
Core Web Vitals: Improving the End User Experience of Drupal (sponsored by Tag1 Consulting)
Presentation held right in the middle of the exhibitor area, so attendance was only possible standing up or on stools — not ideal for taking notes.
Overview of Google tools and core issues related to performance, covering PHP, caching, and images to take advantage of the latest HTML specs.
The Form API Workflow
True to the session title, this was a presentation of almost the entire workings of Drupal's Form API.
Interesting, but quite a lot to digest all at once. Worth watching or revisiting at one's own pace.
A tip I wasn't aware of: there is a "#limit_validation_errors" key that can be used to avoid validating certain elements when the form is rebuilt via Ajax or similar, for example when it's not a final submission.
Low-Code Theming experience with UI Suite
Already seen at the Drupal Dev Days 2022, but I attended the session as a member of the "initiative" and to make sure the new release of the UI Patterns module could go live during the talk :)
Wrap up Ceremony
After a recap of the event and a long build-up, we were treated to the following announcements:
- next Drupal Dev Days in Vienna in July 2023!
- next DrupalCon Europe in Lille from October 17 to 20, 2023!
To promote the next DrupalCon, the new mascot will be a rooster!
Day 4
Day dedicated to contribution.
Conclusion
A fairly productive event in terms of contribution — not necessarily on complex topics, but a good volume of smaller items handled, and above all a giant leap forward for UI Patterns.
As always, a pleasure to reconnect with the Drupal community and exchange ideas.
Thanks to the organizers, sponsors, participants, and to Smile for sending me there.
Photos: https://www.flickr.com/groups/drupalconprague2022/
Videos: https://www.youtube.com/playlist?list=PLpeDXSh4nHjRK_6I7HVLCw8k_ZTopYv5i