Contao-News

Wir informieren Dich hier regelmäßig zu Updates, stellen Best-Practice-Arbeiten vor und berichten über Aktuelles aus dem Contaoversum.

Rückblick auf das zweite Core-Entwicklertreffen 2024

von Yanick Witschi – Aktuelles

Jedes Jahr trifft sich das Contao Core-Entwicklerteam zweimal für einen kurzen Code-Sprint von drei Tagen. Getroffen haben wir uns dieses Mal im Unperfekthaus in Essen. Obligatorischer Hinweis: Die Entwicklertreffen sind für die Weiterentwicklung von Contao entscheidend und daher mache ich wie immer darauf aufmerksam, dass die Contao Association diese Treffen finanziert. Als Supporter kannst du deinen Teil dazu beitragen.

Sebastian

Das Entwicklertreffen bietet immer auch Gelegenheit, Leute, die ausserhalb des Core-Teams zu Contao beitragen, zum Treffen einzuladen und diese näher kennenzulernen. Das haben wir in der Vergangenheit bereits mit Richard Henkenjohann 2020 gemacht und dieses Mal haben wir Sebastian Zoglowek eingeladen. Wer Sebastian noch nicht kennt, ist auf jeden Fall bereits über seine Arbeit gestolpert, denn er hat beispielsweise dafür gesorgt, dass du https://extensions.contao.org und auch den Contao Manager im Darkmode bewundern kannst.

Neben Sebastian nahmen die anderen sieben Veteranen, Andreas, Leo, David, Moritz, Fritz, Martin und meine Wenigkeit am Treffen teil, sodass also insgesamt acht Leute für drei Tage quasi ununterbrochen an Contao arbeiteten!

Wertschätzung

Zu unserer Überraschung wurde ein Paket für uns im Unperfekthaus abgegeben. Wie sich dann herausstellte, war dies eine Aufmerksamkeit des Contao-Projektteams, über das wir uns sehr gefreut haben! Man beachte die Kreativität des beiliegenden Schreibens, die uns natürlich nicht entgangen ist. Vielen herzlichen Dank dafür, lieber Marcus Lelle und wer auch immer da im Hintergrund noch involviert war! Es ist schön zu wissen, dass unsere Arbeit nicht unbemerkt bleibt und Leute an uns denken!

Contao ist ein Open-Source-Projekt und unterscheidet sich somit kaum von deinem lokalen Verein bei dem viele freiwillige Helfer:innen dafür sorgen, dass am Ende des Tages ein tolles Resultat dabei herausschaut. Wertschätzung kann man auch zeigen, indem man Contao finanziell unterstützt und somit den helfenden Händen etwas für ihre Arbeit zurückgibt.

Viele Unternehmen nutzen Contao täglich und können nur dank Contao die Gehälter ihrer Mitarbeiter:innen finanzieren. Gehört dein Unternehmen auch dazu? Dann wäre jetzt ein guter Zeitpunkt, darüber nachzudenken, Contao Sponsor oder Contao Partner zu werden!

Ausgangspunkt

Beim letzten Treffen haben wir uns intensiv auf Stabilitäts- und Performanceverbesserungen für die 5.3 LTS konzentriert und uns erfolgreich komplexen Bugfixes für ganze fünf Sicherheitslücken gewidmet. Dies war ein wesentlicher Schritt, um die Sicherheit und Zuverlässigkeit der LTS-Version zu stärken. Obwohl der Fokus stärker auf diesen wichtigen Verbesserungen lag und dadurch weniger neue Funktionen für Contao 5.4 integriert wurden, ist das keineswegs ungewöhnlich. Gerade nach dem Release einer neuen LTS-Version finden eigentlich jedes Mal deutlich mehr Bugreports den Weg via GitHub zu uns.

Trotzdem konnten wir mit der Integration von Turbo im Backend von Contao 5.4 eine bedeutende Neuerung umsetzen, die als solider Grundstein für zukünftige Weiterentwicklungen dient, und mit neuen Icons das Erscheinungsbild von Contao modernisieren.

Die Devise für dieses Treffen war aber klar: Die 5.3 LTS läuft stabil und wir können uns wieder voll und ganz auf neue Funktionen und Verbesserungen fokussieren. Höchste Zeit, auf den gelegten Grundsteinen aufzubauen. Und eines sei dabei gesagt: Das ist uns auf jeden Fall gelungen!

Aber lest und urteilt selbst.

Barrierefreiheitsstärkungsgesetz (BFSG)

Mit dem BFSG wird die EU-Richtlinie zur Barrierefreiheit (European Accessibility Act, kurz: EAA) umgesetzt. Deutschland ist natürlich nicht das einzige Land, in dem Contao eingesetzt wird, aber selbstverständlich haben die neuen Richtlinien auch einen Einfluss auf unsere Arbeit. Contao hat schon immer grossen Wert auf Barrierefreiheit gelegt und sofern Probleme gemeldet wurden, haben wir entsprechende Verbesserungen angebracht. Insofern hat sich da grundsätzlich nichts an unserer Einstellung geändert: Barrierefreiheit ist wichtig, war schon immer wichtig und das bleibt auch so - völlig unabhängig von den neuen Gesetzgebungen. Aber was sich jetzt ändert (und wir finden, das ist gut so): Die neue Richtlinie bringt neuen Schwung in die Diskussion und wir gehen davon aus, dass vermehrt Issues bei GitHub angelegt werden.

Einigen konnten wir an diesem Treffen bereits vorgreifen. So hat Sebastian zum Beispiel dafür gesorgt, dass ab Contao 5.5 alle betroffenen Formularfeldtypen im Formulargenerator über das autocomplete-Attribut verfügen und eine entsprechende Konfiguration ermöglichen. Ausserdem können neu auch die Youtube- und Vimeo-Inhaltselemente mit title-Attributen ausgestattet werden. Contao kann für das Frontend selbstverständlich gute Defaults mitliefern, aber die Umsetzung von Accessibility-Themen ist und bleibt in der Verantwortung der Frontend-Entwickler:innen.

Auch dem Backend haben wir diverse Accessiblity-Verbesserungen verpasst: So werden ausgewählte Elemente im "Mehrere bearbeiten"-Dialog dank Sebastian in Zukunft besser hervorgehoben und Fritz hat unsere Tooltips mobile-tauglich gemacht.

"Wird das auch noch für die 5.3 LTS zurückportiert?"

Diese Frage hören wir immer wieder und deshalb möchte ich an dieser Stelle kurz noch ein paar Worte zum Sinn und Zweck einer LTS-Version loswerden, da wir das auf diesem Entwicklertreffen erneut diskutiert haben.

Eine LTS-Version, so wie wir sie definieren, ist eine Contao-Version, die über einen längeren Zeitraum hinweg unterstützt wird, mit dem Fokus auf Stabilität und Zuverlässigkeit. Der Sinn der LTS-Version ist es, Unternehmen und Anwender:innen eine sichere und stabile Basis zu bieten, auf der sie ihre Systeme langfristig betreiben können, ohne ständig auf neue Versionen umsteigen zu müssen.

Was eine LTS-Version nicht ist: Sie ist nicht dafür da, Updates auf reguläre Minor-Releases zu ersetzen. Sonst könnten wir diese ja direkt auslassen. Wer die Funktionen von neuen Minor-Releases braucht, hat eine ganz einfache Möglichkeit, diese zu erhalten: Auf das entsprechende Release aktualisieren.

Kurz: Sobald eine LTS-Version erstmals veröffentlicht wurde - also bspw. aktuell Contao 5.3.0 - werden alle nachfolgenden Änderungen, welche die Stabilität und Zuverlässigkeit potenziell negativ beeinflussen könnten, in das nächste Release einfliessen, damit sie dort wieder wie gewohnt die RC-Testphase durchlaufen können.

Bei neuen Funktionen ist das offensichtlich immer der Fall. Jede neue Funktion hat potenziell ungewollte Nebeneffekte und muss entsprechend getestet werden. Eine neue Funktion wie bpsw. neue Icons im Backend wird entsprechend nie zurückportiert.

Bei Bugfixes ist die Situation etwas schwieriger. Denn, auch wenn ein Problem als Bug kategorisiert wurde, so gibt es manchmal die Entscheidung, diesen in einer LTS-Version dennoch nicht mehr zu beheben. Weil eben potenziell Nebeneffekte auftreten könnten.

Beispiel 1: Irgendwo in einem Template fehlt ein title-Attribut. Das ist ein Bug und die Nebeneffekte sind mit höchster Wahrscheinlichkeit äusserst gering. Das könnte also in einer LTS-Version behoben werden.

Beispiel 2: Die Tooltips im Backend sind nicht mobile-tauglich. Auch hier könnte man argumentieren, dass es sich hierbei um einen Bug handelt und dieser entsprechend in einer LTS-Version behoben werden soll. Der Bugfix würde aber aus der Einführung eines neuen Scripts und 200 Zeilen geändertem Code bestehen. Die Anzahl potenzieller Nebeneffekte ist entsprechend grösser und das steht im Widerspruch zum Sinn und Zweck einer LTS-Version. Ergo, kein Backport.

Backend, Backend, Backend

Martin hat an der Breadcrumb-Geschichte vom letzten Treffen weitergearbeitet. Ihr erinnert euch: Mit der neu ermöglichten Verschachtelung von Inhaltselementen haben wir die Büchse der Pandora der verschachtelten Navigationsebenen geöffnet. Das Breadcrumb im Backend ist der Aufgabe schlichtweg nicht gewachsen, sodass es für Benutzer:innen quasi unmöglich ist, zu wissen, in welchem Seiten-Kontext oder eben innerhalb welches verschachtelten Inhaltselements sie gerade arbeiten. Daraus entstanden ist unter anderem auch ein neuer "Record Labeler Service", der für Entwickler:innen interessant sein könnte und wir nähern uns (Vorsicht: subjektiv) einer Lösung, die in Contao 5.5 einfliessen könnte. Darauf freue ich mich sehr!

Aus der Community kam der Wunsch, weitere "Operationen" bei Baumansichten zu haben, die wir z.B. aus den Inhaltselementen auch schon kennen. Sowas wie ein "Neuer Artikel zuoberst einfügen", damit diese Funktion auf einen Klick erreichbar wäre. Aktuell erfordert diese Aktion zwei Klicks. Noch mehr Operations würde aber die Liste unserer Icons auf der rechten Seite noch länger machen und deren Abstand ist ohnehin schon sehr gering. Deswegen hat Andy an der Integration eines Kontextmenüs gearbeitet, die uns erlauben würde, nur die prominentesten Operationen direkt in der Liste anzuzeigen und weitere, seltener gebrauchte aber trotzdem praktische Helferlein, im Kontextmenü unterzubringen.

Sebastian hat das Filtermenü überarbeitet, sodass die beiden "Filter anwenden"- und "Filter löschen"-Icons jetzt ein Label haben und einfach deutlich breiter und einfacher zu klicken sein werden. Aktuell muss man die Maus sehr genau bedienen, damit man die gewünschte Aktion ausführen kann. Da sich mein Talent für Feinmotorik auf überschaubarem Niveau bewegt, freue ich mich darüber sehr!

Ich habe mich zwei Tage lang mit den Grundlagen für eine globale Backend-Suche beschäftigt. Andy und ich haben für Contao 5.0 Tage und Wochen in das neue Permission-System investiert, was (zumindest in meinen Augen) die Grundlage für eine Suche ist. Eine Suche, die mir Resultate anzeigt, die ich nicht sehen darf, ist irgendwie mässig sinnvoll. Also versuchen wir, die Backend-Usability über die kommenden Versionen von Contao in ein neues Zeitalter zu katapultieren.

Leo ist bekanntlich immer damit beschäftigt, die Pull Requests der anderen Teilnehmer zu reviewen und zu mergen und unser Mr. Coding-Style, aber auch er hat an neuen Funktionen für das Backend gebaut. Er möchte nämlich, dass man in Zukunft in den Einstellungen der Benutzergruppen für jeden DataContainer einstellen kann, ob das Anlegen, Bearbeiten oder Löschen von Datensätzen erlaubt werden soll. Aktuell ist das nur für ausgewählte DataContainer möglich, wie etwa für die News-Archive oder die Kalender-Archive.

Template-Studio

Eigentlich auch ein Backend-Thema aber es verdient einen eigenen Abschnitt, weil darauf freue ich mich mega und ich bin mir sicher, ihr werdet es lieben: Moritz baut uns ein Template-Studio!

Kann man sich erstmal nichts darunter vorstellen, aber hier eine kleine Feature-Liste:

  • Ihr werdet da Twig-Templates bearbeiten und anlegen können.
  • Es wird euch sagen können, welches Template welches andere Template aus einem Bundle oder aus dem Core überschreibt.
  • Es wird auch wissen, welches Template ein anderes Template erweitert oder inkludiert und es wird es euch anzeigen können.
  • Ihr werdet im Editor selbst auf referenzierte Templates klicken und direkt zum besagten Template navigieren können.
  • Es wird euch warnen, wenn ihr Blöcke überschreiben wollt, die es im Parent-Template gar nicht gibt.
  • uvm.

Klingt alles toll aber irgendwie auch, als wären wir noch weit davon entfernt? Sind wir nicht, versprochen!

Das Bild zeigt einen alten Holztisch im Unperfekthaus, an dem sich Moritz und Martin gegenübersitzen. Beide sind konzentriert bei der Arbeit.

Passkeys / FIDO2

Fritz hat den Status seines Pull Requests von "Proof Of Concept" vom letzten Treffen zu "fast fertig" gebracht. Ich gehe also davon aus, dass wir uns im Backend von Contao bald schon mit Passkeys anmelden können. Hype!

Erwähnenswert: Auch dieses Feature baut auf weitere Open-Source-Bibliotheken auf, zu denen Fritz beigetragen hat.

Symfony Profiler Verbesserungen

Contao hat eine sehr mächtige Integration verschiedener Bild-Bibliotheken. Es kann nicht nur Bilder verkleinern und responsiv die passende Bildvariante ausliefern, sondern auch Bildformate konvertieren (bpsw. von png zu webp) und sogar Vorschaubilder für PDFs generieren. Dafür braucht es aber entsprechende Tools auf dem Server und bisher war es relativ mühsam herauszufinden, warum Contao einem eine Option nicht zur Auswahl anbietet oder welche Bild-Bibliothek überhaupt zum Einsatz kommt. All diese Informationen werden sich in Zukunft bequem im Symfony Profiler finden, den ihr wie gewohnt über den Debug-Modus erreicht.

Und weil Martin Martin ist, hat er den Profiler auch direkt noch mit ein paar weiteren nützlichen Informationen ausgestattet.

Verschiedenes

Wie immer gibt es auch noch verschiedene weitere Verbesserungen, zu denen ich nicht wirklich viel schreiben kann, deswegen hier einmal einfach aufgelistet (was sie nicht weniger wichtig macht!):

  • Andy und Leo haben Contao für PHP 8.4 ready gemacht. PHP 8.4 wird nicht nur grossartige neue Funktionen mit sich bringen, sondern auch mehr Performance!
  • Leo, Martin und ich haben uns mit "Common Table Expression"s beschäftigt. Insbesondere möchten wir gerne WITH RECURSIVE nutzen für unsere aktuellen Database::getParentRecords() und Database::getChildRecords() und damit Baumstrukturen performanter machen.
  • Dave hat unserem "Passwort zurücksetzen"-Modul eine Rate-Limiting-Funktion geschenkt.
  • Fritz und Martin verbessern die Qualität der verkleinerten Bilder, indem sie andere "Downsampling"-Algorithmen durchgetestet und den Default von Contao verändert haben. Ihr könnt also ab sofort mit etwas schärferen Vorschaubildern rechnen!
  • Es wird einen neuen, generellen Cache Tag Invalidator-Service geben, damit Entwickler:innen einen Event haben, wenn Cache-Tags gelöscht werden, um dann bspw. eigene, weitere Caches zu invalidieren.

Screenshots?

Ich bin mir ziemlich sicher, einige von euch hätten gerne ein paar Screenshots zu den geplanten neuen Funktionen gesehen. Das überlasse ich aber Leo für die Keynote auf der Contao-Konferenz am 17. und 18. Oktober in Garching bei München. Es gibt noch Tickets bis zum 10. Oktober - komm vorbei, schau dir alles in live an und tauche ein in die Contao-Familie!

That's all Folks! Ich kann die neuen Versionen von Contao kaum erwarten, aber jetzt muss ich erstmal meinen Vortrag für die Konferenz vorbereiten - wir sehen uns in zwei Wochen!

– Yanick

Alle News anzeigen

Kommentare

Kommentar von Marcus Lelle |

Hey Yanick,

super Bericht, wie immer. Danke, dass du uns damit immer so cool an eurer Arbeit teilhaben lässt.

Es ist schön, dass euch das Paket so erfreut hat. Es kam von Herzen und war ein Gemeinschaftsprojekt des PM-Teams.

Die neuen Features und Verbesserungen klingen alle spannend. Da ist ja wieder einiges im Köcher für die 5.5 und weitere Versionen. Leo wird auf der Keynote sicherlich einiges optisch noch verdeutlichen.

Hey Community, kommentiert doch hier mal unter dem Artikel, was ihr so über die Neuigkeiten denkt, ob ihr Wünsche habt für die 5.5 oder auch die 5.6, die hier vielleicht noch nicht erwähnt werden.

Ich fang dann mal an:
Bei der Barrierefreiheit denke ich auch, dass Contao selbst nur die Basics liefern sollte und uns möglichst bei unseren Lösungen unterstützen sollte (wie es in der 5.4 schon mit dem area label ist).
Alles Weitere sehe ich da eher in Individualisierung oder in Erweiterungen. Wenn hier möglichst viele etwas Bestimmtes brauchen, können wir uns ja für die Finanzierung zusammentun.

Thema Backporting:
Es gibt ja immer wieder Features neuerer Funktionen, die auch in älteren noch unterstützten Versionen gut zu gebrauchen sind. Auch hier sehe ich dann für eine Zeit lang eben Erweiterungen, die man je nach Bedarf einsetzen kann.

Auf Passkeys/FIDO freue ich mich schon am meisten. Eher für "meine" Admin-Zugänge. Bei den Redakteuren muss ich da noch viel Überzeugungsarbeit beim Thema Sicherheit leisten.

Super, dass Dave an Passwort vergessen arbeitet. Eine solche Funktion auch für das BE wäre ein Highlight für mich. Vielleicht kann es ja auch hier zu einer Zusammenarbeit mit Marko Cupic kommen wie beim Altcha.

Template Studio klingt nach etwas, was die Arbeit mit Twig nochmal deutlich vereinfachen könnte, so dass sich da noch mehr Leute rantrauen.

Ich könnte vermutlich noch einiges erwähnen. Aber ein Kommentar soll ja nicht länger als der Artikel selbst werden.

Danke, danke, danke, für jede Kleinigkeit und die großen Gedanken, die ihr euch um Contao macht.

Vorwärts immer - rückwärts nimmer!

Kommentar von Niels Hegmans |

Vielen Dank!

Kommentar von Jan K. |

Vielen lieben Dank für die tollen Erneuerungen und die bisherige großartige Arbeit.

Einen Kommentar schreiben

Bitte rechnen Sie 2 plus 1.