Today in TYPO3 (2015, Nov 10)
November 10, 2015
Interviews with Frans Saris, Wouter Wolters, Tymoteusz Motylewski, Christian Kuhn and Michael Schams, some of the people behind the scenes, about their work and their passion for TYPO3.
A story about the people contributing to the release of TYPO3 CMS 7 LTS is bound to do injustice to the many people involved in making the latest Long Term Support version of TYPO3 possible. It is similar to when I handed out ‘Member of the TYPO3 Community’ towels for new community members and Karsten Damblekans shouted out, ‘Everyone deserves a towel’. Everybody participating in the community matters.
So I start with an apology not being able to cover all input from the past year. None the less I thought it would be interesting enough for the community to have some more background on what was achieved and how that was done.
I talked to Frans Saris, Wouter Wolters, Tymoteusz Motylewski, Christian Kuhn and Michael Schams about their work and their passion for TYPO3. It was a pleasure talking to each and everyone. The enthusiasm for the community is evident from the spirited conversations I had.
Frans works for Dutch company Beech.it. Beech is active in the TYPO3 community. Owner Edward Lenssen is one of the organisers of TYPO3camp Venlo that will see its fourth edition on April 22 and 23 of 2016. Beech.it is supportive of his work and allows him to go the extra mile for TYPO3. Participating in the development process is beneficial for a company from different angles.
Frans jumped into the wonderful world of TYPO3 contributors, three years back, with his itch to work on the File Abstraction Layer. FAL was a project initiated 10.000 BC to put a layer on top of TYPO3’s traditional file storage. One of the main problems with traditional file storage was file duplication with page copy actions resulting in Gigs of file overhead. FAL acts as an API and is a partial replacement for the Digital Asset Management module that was quite popular back then. FAL is not a full substitution and does not give for instance all the detailed modules DAM had. FAL knows several adaptors that work with cloud storage solutions like dropbox and Amazon.
The need for a media gallery based on FAL triggered his entry into the CMS core team. He has been working on a media gallery extension that is well-integrated with FAL. The media gallery can be found here: http://typo3.org/extensions/repository/view/fs_media_gallery. When asked about the state of FAL, Frans answers that it is not feature finished yet, but stable with the features it runs with currently. The permanent beta state is not uncommon for software.
Besides working on FAL in general, Frans has been mainly responsible for work on the image cropper. Future features that are under consideration are auto cropping for different outputs (devices)
Fluid frontend rendering was something he participated in as well. Frontend rendering is one of the biggest undertakings in the new version as part of separating the backend from the frontend. Felix Kopp introduced his idea for the API layer at the Active Contributor Meeting in Munich in 2014. Frans says, “With the new fluid_styled_content we say goodbye to a lot of TypoScript that was needed to get your content visible on the frontend. Instead of complex TypoScript structures we now provide a Fluid template for each available content element. This makes it much easier to provide/adjust the output to your own wishes. One hurdle less to get new integrators into TYPO3 CMS.”
Frans also made it possible to add online media (for example YouTube and Vimeo video's) to your content element in the same way as you can add images to a content element. To ease the process of adding these kind of movies the editor can just provide the URL of the video and TYPO3 fetches the needed information to render the video. FAL saves the "meta information" of a video in its structure, the video itself remains on YouTube / Vimeo. This way, the meta data can be handled within the file list module and other places just like any other asset (image, text file, whatever) and moved around in the faked "folder structure".
A lot of new people joined the core team, fueled by improved communication. Slack has been instrumental in this. Some people use all their spare time to work for TYPO3.
Like Frans, Wouter Wolters also joined the team some three years ago. Wouter works for Dutch company WIND Internet located in the North of the Netherlands. WIND Internet recently hosted a security code sprint in their office and Wouter also supports the security team. In fact he will be joining a sprint in Switzerland in a few weeks.
Because WIND Internet is doing quite some governmental websites (mainly municipalities). The TYPO3 instances find themselves subject to security audits on a regular basis. Security issues following out of these audits will be reported to the TYPO3 security team.
In general he is the front-line problem solver for the core-team and regularly finds issues in his review queue when waking up in the morning.
Wouter mentions that there have been 5040 commits since the release of TYPO3 6.2.0 and 354 contributors participated in TYPO3 7 development.
Wouter definitely sees a future for TYPO3 as a datahub and with a decoupled CMS architecture (aka “headless”) with a separate frontend component that communicates with the CMS via REST APIs.
Tymoteusz owns TYPO3 / Magento software house Macopedia, based in Poznan, Poland and serves many international clients. He just got off the phone with a Canadian client and as we speak about the new release is participating in a code sprint dedicated to a TYPO3 performance monitoring tool. Tymoteusz requested and was granted budget for doing the code sprint(s) for developing this tool last year. What better circumstances to ask him about his involvement in the TYPO3 project?
There are a number of tools that check code for a range of things like security, coding guidelines etc. after a commit. A tool that checks for performance regressions after each commit is a dream.
“The core team cares a lot about speed and performance”, Tymoteusz says, “In general TYPO3 7 can handle four times as many requests on the same hardware as the previous LTS”.
Tymoteusz put a lot of effort into making TYPO3’s internal search engine, Indexed Search, compatible with TYPO3 CMS 7. “There is so much legacy code in there, he says, “ that a rewrite seems inevitable at a certain point”. There are quite a lot of functions in there that presumably only Kasper, the original author and creator of TYPO3 CMS, knows the purpose of. The current rewrite is based on Extbase that is a framework for TYPO3 extension development, effectively replacing pibase. Indexed Search is currently based on two plugins and the goal is to unify those two for version 8. Tymoteusz is happy to be shipping something working for the current version.
Our conversation wanders of to version 8. Of course not the topic of this article, but so interesting I do not want to skip it. Timezones!
Most of you know how to use conditional typoscript statements based on time and date, either making your website dark at night or saying ‘hello’ to you in the morning. Tymoteusz explains that TYPO3 Timezone handling is about showing different time and date formats in the input boxes and dealing with publications dates of content when websites are intended for a different geographical location. A feature you would definitely want for an Enterprise CMS.
It is interesting to talk about how development of functionalities or modules works as the actual development of the core was so fast that it rendered the current development of TYPO3 Timezone handling unusable for the moment. You can find the concept of timezone handling here: https://goo.gl/BmrP6f
The current situation around the core team is empowering and the core team leadership enables people to contribute to TYPO3. The mere fact that some 1500+ people are on Slack.
We end our conversation looking at the next step. The process TYPO3 went through and currently is quite unique in software development. Even with embracing best (new) practices TYPO3 keeps providing a solid upgrade path with backwards compatibility thus creating long term relationships with integrators and users. Tymoteusz mentions that the release of this LTS is a first step and that step 2 needs to get together, to connect and go beyond the core team. Obviously there are many things in a community that warrant attention like marketing, communication and documentation.
If you want to contribute to either Indexed Search or the Performance Monitoring Tool, contact him on TYPO3 Slack (@tmotyl) or by good old-fashioned mail on: t.motylewski(at)macopedia.pl
Michael moved to Australia 8 years ago, lives in Melbourne and works as a Project Manager and IT Consultant for Cerebrum (Aust) Pty Ltd, who almost exclusively do TYPO3 website development - quite unique for Australia. Michael is also a member of Linux Users of Victoria and the co-author of the English TYPO3 Extbase book published earlier this year.
Patrick Lobacher originally produced the "TYPO3 CMS What’s New" slides highlighting new features of TYPO3 for his former agency. When Michael joined in they transformed this into a real community effort with a dedicated team that produces translations of the slides in 8 languages. They have been doing this since TYPO3 version 6.0 for more than 3 years now.
The "TYPO3 What's New Slides" use a well defined process: LaTeX builds the foundation and some standard tools are used to render LaTeX to PDF. The official TYPO3 documentation uses ReST (reStructuredText), but under the hood, it's ReST-to-LaTeX-to-whatever (the "whatever" could be HTML or PDF for example). Based on this fact, the "What's New Slides" use the same tools as the TYPO3-docs project does, but without the ReST stuff.
Over the last 12 months, the What's New Team published slides covering changes, new features and improvements for every 7.x Sprint Release. With the new LTS coming up the guys have something special up their sleeves to accommodate people to move from LTS to LTS, as many will probably do. TYPO3 CMS 7 LTS contains everything from version 7.0 to 7.6 - but be honest: who would read more than 300 pages of slides if the team would merge everything together in one huge PDF document? Editors are unlikely be interested in hooks and signals and do not need to know if a PHP class is PSR-2 conform and supports autoloading or not; but developers certainly do!
In order to provide everyone with the information they need, without removing any important slides, the TYPO3 CMS 7 LTS What's New slides come in six versions, separated into topics:
- Backend User Interface (targeting Editors predominately)
- TSconfig & TypoScript (for Integrators)
- In-Depth Changes (for Integrators and Developers)
- Extbase and Fluid (for Developers)
- Deprecated/Removed Functions (for Integrators and Developers)
- System Administration (System Administrators)
This way, everyone can pick their topic(s) depending on their role. This does not mean that the hard-boiled, dauntless and highly specialised people in the TYPO3 community are left out: feel free to grab all files and present them at your TYPO3 usergroup meeting. Having said that, you should allow for enough time - it will become a long talk, you have been warned!
No doubt that everyone in the team has worked very hard over the last months and years and a big "thank you" goes out to everyone who was involved in creating the CMS 7.x What's New Slides in one way or another: Andrey Aksenov, Paul Blondiaux, Pierrick Caillon, Sergio Catalá, Ben van 't Ende, Jigal van Hemert, Patrick Lobacher, Sinisa Mitrovic, Michel Mix, Angeliki Plati, Nena Jelena Radovic, Michael Schams and Roberto Torresani.
The What's New Team already started planning the next generation of slides: there will be further releases of TYPO3 CMS after 7 LTS which definitely require a compact summary of all the amazing new features and improvements. If you are interested in being part of that, do not hesitate and get in touch with Michael. Now is the best time to join the team, no matter which language you speak (and if you speak Klingon, your spot in the team is guaranteed!).
You can download the official TYPO3 CMS What's New Slides from the typo3.org website. An archive containing all previous versions is available on forge.typo3.org.
Christian is a contributor since April 2009. Together with Helmut Hummel he is lead system architect for TYPO3 CMS and does his work on an almost full-time basis on a budget provided by the TYPO3 Association. He also works for Portaltech Reply. Christian mentions he is involved in nearly all major structural core changes during the last years and coordinates some of the efforts to modernize the main pillars of the system. As such people often contact him for questions around the basis of the software.
I talked to Christian about the TYPO3 toolchain, ‘catharsis’, his contributions and the future of TYPO3.
Christian is well known for having created a fork in a time when forks were not done. Out of frustration with development speed and the ranting atmosphere, back then, he created his ‘catharsis’ fork. How different things look these days with all noses pointing in the same direction.
The ‘catharsis’ fork was an interesting move. At the time when I was involved as community manager in the TYPO3 project, I was visiting Peter Pröll in the Eifel to talk about the role of community management when word of the fork was spread. Needless to say this created quite a panic. Christian explains that forking enabled him to do disruptive work on the core he was not able to do until then. The situation was resolved very quickly, but could have well been a point that triggered a wake up call.
What for me was interesting after talking to Tymoteusz about his performance monitoring tool is the development toolchain TYPO3 uses. Testing runs on Travis CI. CI stands for Continuous Integration, a technique that is not only used for software projects, but also by website projects. After every code commit the code is tested and if a regression is found easily reverted to a previous state. The Travis TYPO3 CMS project gives a perfect overview of builds, branches and commits. Bigger projects like Twitter and Facebook operate like this and with available open source products like Travis CI this is also within reach of smaller projects. Currently 8500 unit tests are run and additionally there are some 600 functional tests in place. For the future the core team likes to implement more frontend testing.
In our conversation we try to identify the biggest challenges for this release. Christian mentions the major FormEngine rewrite he has been working on for the backend forms. This is basically the basis for the content management experience of the backend and one of the two main pillars of the core. What is now, descriptively, known as FormEngine used to be called TCE forms - TYPO3 Core Engine and the other pillar was known as TCE main. TCE main is now called DataHandler.
We mainly talk about separation of concerns, which means splitting things into smaller bits. Christian says, “If a code snippet does two things, it is one to many.” An excellent example is how it is now do-able to integrate CK-editor as Rich Text Editor. Christian gives a lot of examples, like user settings and the scheduler that do things similar tasks done by FormEngine, but they are not using it yet. The refactoring will later enable FormEngine to be used in such areas.
There is not much that remains untouched in this new release and we can be proud of having maintained a solid upgrade path throughout all these years, like we discussed earlier in this article with Tymoteusz.
One of the things that are essential to remain a player in the content management area is to conform to standards as in ‘using common interfaces’. In PHP we have the PHP Framework Interop Group (PHP-FIG) taking care of PHP Standards Recommendations (PSR). PHP-FIG is an 'interest group' of established PHP projects whose goal is to talk about commonalities between projects and find ways to work better together. A lot of big PHP projects are jumping onto this train. In ‘This Week in TYPO3 (2015, Week 34)’ we already mentioned PSR-2 as standard for coding guidelines. The team has also implemented PSR-7 as standard for HTML messaging (request response handling). TYPO3 is one of the first open source projects to implement the PSR-7 standard.
We end our hangout with how every action in the core seems to be about cleaning up the mess and untangling the spaghetti. It is sometimes hard to realise that TYPO3 has its roots in 1997 and that coding was a whole different ballgame back then. Kasper’s original concepts are still insanely powerful as Christian puts it. The main structures and ideas is what kept us alive over all those years, now we just need to modernise a bit to let it shine even more.
Extra thanks go out to Christian Kuhn and Wouter Wolters for technical proofreading and editing.
Check out the events calendar for a user group meeting, code sprint or other event near you: typo3.org/events/. Do not hesitate to share you TYPO3 activities in 'This Week in TYPO3'. Just let me (@benvantende) know what you are up to.