Every year, the Contao Core development team meets twice for a short code sprint of three days. This time we met at the Unperfekthaus in Essen.
Obligatory note: The developer meetings are crucial for the further development of Contao and
therefore, as always, I call attention to the fact that the Contao Association funds these meetings. As a
Supporter you can do your part.
Sebastian
The developer meeting is always an opportunity to invite people who contribute to Contao outside of the core team to
the meeting and get to know them better. We have already done this in the past with Richard Henkenjohann in 2020 and
this time we have invited Sebastian Zoglowek. If you don't know Sebastian yet, you've definitely already stumbled
across his work, because he made sure that you can admire https://extensions.contao.org and the Contao Manager in
dark mode, for example.
In addition to Sebastian, the other seven veterans, Andreas, Leo, David, Moritz, Fritz, Martin and myself took part
in the meeting, so that a total of eight people worked on Contao almost continuously for three days!
Appreciation
To our surprise, a package was left for us at Unperfekthaus. As it turned out, it was a gift from the Contao project
team, which we were delighted to receive! It is worth mentioning the creativity of the attached
letter, which we naturally did not miss. Many thanks for this, dear Marcus Lelle and whoever else was involved in the background! It's nice to know
that our work doesn't go unnoticed and that people are thinking of us!
Contao is an open source project and is therefore hardly any different from your local club where many
volunteers ensure that a great result is achieved at the end of the day.
You can also show your appreciation by supporting Contao financially and thus giving something back to the helping
hands for their work.
Many companies use Contao on a daily basis and can only finance the salaries of their employees thanks to Contao. Is
your company one of them? Then now would be a good time to think about becoming a Contao sponsor
or a Contao partner!
Starting point
At the last meeting, we focused intensively on stability and performance improvements for Contao 5.3 LTS and successfully
addressed complex bug fixes for a total of five security vulnerabilities. This was an essential step in strengthening the
security and reliability of the LTS release. Despite the fact that we focused more on these important improvements
resulting in fewer new features for Contao 5.4, this is by no means unusual. After the release of a new LTS version,
we actually receive significantly more bug reports via GitHub every time.
Nevertheless, with the integration of Turbo in the backend of Contao 5.4, we were able to implement a significant
innovation that serves as a solid foundation for future developments and modernize the appearance of Contao with new icons.
The motto for this meeting was clear; the 5.3 LTS is running stably and we can focus fully on new features and
improvements. High time to build on the foundations that have been laid. And one thing can be said: we definitely succeeded!
But read on and judge for yourself.
European Accessibility Act (EAA)
Germany is obviously not the only country where Contao is used, but of course the new guidelines also have an impact
on our work. Contao has always attached great importance to accessibility and where problems have been reported, we
have made appropriate improvements. In this respect, nothing has fundamentally changed in our attitude:
Accessibility is important, always has been and always will be - completely independent of the new Accessibility Act.
But what is changing now (and we think that's a good thing): The new directive brings new momentum to the discussion,
and we assume that more issues will be created on GitHub.
We were already able to anticipate some of them at this meeting. For example, Sebastian made sure that from Contao 5.5
onwards, all affected form field types in the form generator have the autocomplete
attribute and allow a
corresponding configuration. In addition, the Youtube and Vimeo content elements can now also be equipped with
title
attributes. Otherwise, Contao can of course provide good defaults for the frontend, but the implementation
of accessibility issues is and remains the responsibility of the frontend developers.
We have also made various accessibility improvements to the backend: Thanks to Sebastian, selected elements in the
“Edit multiple” dialog will be better highlighted in future and Fritz has made our tooltips mobile-friendly.
“Will this also be backported for 5.3 LTS?”
We hear this question again and again, so I would like to take this opportunity to write a few words about the meaning
and purpose of an LTS version, as we discussed this again at this developer meeting.
An LTS version, as we define it, is a Contao version that is supported over a longer period of time, with a focus on
stability and reliability. The purpose of the LTS version is to provide companies and users with a secure and stable
basis on which they can operate their systems in the long term without having to constantly upgrade to new versions.
What an LTS version is not: It is not there to replace updates to regular minor releases. Otherwise, we could
skip them directly. If you need the features of new minor releases, there is a very simple
way to get them: Update to the corresponding release.
In short: As soon as an LTS version has been released for the first time - for example, Contao 5.3.0
- all
subsequent changes that could potentially have a negative impact on stability and reliability are incorporated into
the next release so that they can go through the RC test phase again as usual.
This is obviously always the case with new features. Every new feature has potentially unwanted side effects and
must be tested accordingly. A new feature such as new icons in the backend is therefore never backported.
The situation is somewhat more difficult with bug fixes. Even if a problem has been categorized as a bug, sometimes
the decision is made not to fix it in an LTS version. Because side effects could potentially occur.
Example 1: Somewhere in a template a title
attribute is missing. This is a bug and the side effects are most
likely minimal. This could therefore be fixed in an LTS version.
Example 2: The tooltips in the backend are not mobile-friendly. Here too, one could argue that this is a bug and
that it should be fixed in an LTS version. However, the bugfix would consist of the introduction of a new script and
200 lines of modified code. The number of potential side effects is correspondingly greater and this contradicts the
purpose of an LTS version. Ergo, no backport.
Backend, Backend, Backend
Martin has continued to work on the breadcrumb story from the last meeting. You remember: With the newly enabled
nesting of content elements, we have opened the Pandora's box of nested navigation levels. The breadcrumb in the
backend is simply not up to the task, making it virtually impossible for users to know in which page context or
within which nested content element they are currently working. Among other things, this has resulted in a new
“Record Labeler Service”, which could be interesting for developers, and we are approaching (caution: subjective) a
solution that could be incorporated into Contao 5.5. I'm really looking forward to that!
The community expressed the wish to have more “operations” for tree views, which we already know from the content
elements, for example. Something like “Insert new article at the top” so that this function could be accessed with a
single click. Currently, this action requires two clicks. However, even more operations would make the list of our
icons on the right-hand side even longer and their spacing is already very small. That's why Andy has been working
on integrating a context menu that would allow us to display only the most prominent operations directly in the list
and place other, less frequently used but still practical little helpers in the context menu.
Sebastian has revised the filter menu so that the two “Apply filter” and “Delete filter” icons now have a label and
will be much wider and easier to click. Currently, you have to use the mouse very precisely to perform the desired
action. As my talent for fine motor skills is at a manageable level, I'm very pleased about this!
I spent two days working on the basics for a global backend search. Andy and I have invested days and weeks in the
new permission system for Contao 5.0, which (at least in my eyes) is the foundation for a search. A search that
shows me results that I am not allowed to see is somehow not very useful. So we are trying to catapult backend
usability into a new era via the upcoming versions of Contao.
Leo is always busy reviewing and merging the pull requests of the other participants and our Mr. Coding-Style, but he
has also been building new features for the backend. In the future, he would like to be able to set whether the
creation, editing or deletion of data records should be permitted for each DataContainer in the user group settings.
Currently, this is only possible for selected DataContainers, such as the news archives or calendar archives.
Template Studio
It's actually also a backend topic, but it deserves its own section because I'm really looking forward to it, and I'm
sure you'll love it: Moritz is building us a Template Studio!
You probably can't imagine anything about it at first, but here is a small feature list:
- You'll be able to edit and create Twig templates.
- It will be able to tell you which template overwrites which other template from a bundle or from the core.
- It will also know which template extends or includes another template, and it will be able to show it to you.
- You will be able to click on referenced templates in the editor itself and navigate directly to the template in question.
- It will warn you if you want to overwrite blocks that do not exist in the parent template.
- and much more.
It all sounds great, but somehow it also sounds like we're still a long way off? We're not, I promise!
Passkeys / FIDO2
Fritz has changed the status of his pull request from “Proof Of Concept” from the last meeting to “almost finished”.
So I assume that we will soon be able to log in to the Contao backend with Passkeys. Hype!
Worth mentioning: This feature is also based on other open source libraries to which Fritz has contributed.
Symfony Profiler improvements
Contao has a very powerful integration of various image libraries. It can not only resize images and responsively
deliver the appropriate image variant, but also convert image formats (e.g. from png
to webp
) and even generate
preview images for PDFs. However, this requires the appropriate tools on the server and until now it was relatively
tedious to find out why Contao does not offer a setting for selection or even which image library is used. In
the future, all this information will be conveniently available in the Symfony Profiler, which you can access as usual
via the debug mode.
And because Martin is Martin, he has also provided the profiler with some other useful information.
Miscellaneous
As always, there are various other improvements that I can't really write much about, so I'll just list them here
(which doesn't make them any less important!):
- Andy and Leo have made Contao ready for PHP 8.4. PHP 8.4 will not only bring great new features, but also better
performance!
- Leo, Martin and I have been working on Common Table Expressions. In particular, we would like to use
WITH RECURSIVE
for our current Database::getParentRecords()
and Database::getChildRecords()
and thus make tree
structures more performant.
- Dave has given our “Reset Password” module a rate-limiting function.
- Fritz and Martin improved the quality of downsampled images by testing other algorithms and changing
Contao's default. So from now on you can expect slightly sharper preview images!
- There will be a new, general
Cache Tag Invalidator
service, so that developers have an event when cache tags are
deleted, for example to invalidate their own, additional caches.
Screenshots?
I'm pretty sure some of you would have liked to see some screenshots of the planned new features. But I'll
leave that to Leo for the keynote at the Contao Conference on October 17 and 18 in Garching near
Munich. Tickets are still available until October 10th - come along, watch everything live and immerse yourself in
the Contao family!
That's all folks! I can't wait for the new versions of Contao, but now I have to prepare my presentation for the
conference - see you in two weeks!
– Yanick
Add a comment