TYPO3 CMS 7.1 - Focused on cleaning the house

Categories: Development Created by Benni Mack
With the launch of an all-new 7.0 release, the TYPO3 community is already actively developing the next version in the CMS7 release cycle. Let's dive in the current status and have a look on the next release.

What happened before

This is a short summary of what happened in the last months:
  • After the TYPO3 CMS 6.2 release, the contributors agreed on having a different release cycle scheme (see our new <link>release guidelines) instead of the common 6 month development period. This means there will be new TYPO3 versions (so-called Sprint Releases) every 6-8 weeks, keeping an agile workflow with a merge phase and a stabilization phase (usually the last two weeks). Every version focusses on one bigger topic.
  • In September 2014 we kickstarted the CMS7 development phase which will see multiple versions until the final LTS release scheduled for fall 2015. A roadmap on what we have on our list can be found <link>here.
  • CMS7 will focus on refreshing the backend interface and its technologies underneath, unification of code and improvements on the toolset we already use heavily while deprecating logic that is unmaintained within the TYPO3 Core. We call it “Embrace and Innovate".
  • The first sprint release, <link record:tt_news:1837>CMS version 7.0 was released on December 2nd with the topic of "Backend UI overhaul - part 1"

What now? Housekeeping.

We didn’t stand still and already have plans for 7.1 which we started right after the 7.0 release. As for the focus of 7.1, it’s all about “housekeeping”, cleaning up any area of the TYPO3 core. This is a continuous job, but this time, we focus on it.

CSS changes

There are some leftovers after the big 7.0 rebrush. Removing those and migrating all open CSS changes to LESS helps to improve the development in the future. The FormEngine in the backend still needs some adaptions to Bootstrap output, which is also planned for 7.1.

Lower footprint

Unnecessary complexity is quite often part of a technical debt that evolved over the years. We already managed to move all pre-6.2 class aliases to the compatibility6 extension which should only be loaded when necessary after a migration of a website. For new sites built on CMS7, this extension is not needed. The last dependencies on the JavaScript frameworks Prototype and script.aculo.us are planned to be rewritten so the JavaScript loading in the Backend is unified. There are, of course, quite some other JavaScript gimmicks coming up that reduce the loading time and to improve and stabilize the TYPO3 Backend. Also, Stanislas Rolland is working on a very big job - migrating the built-in RTE HtmlArea to a better default, lowering the memory footprint by not using ExtJS as a basis. You can already see the speed improvements in our daily-fresh Git repository.

Keeping the household together

Over the past 10 years there were tons of changes, but also quite some reports for features, possible bugs and improvements. After the 7.0 release, this list contained over 4000 tickets in forge that needed to be processed, either via patches or as a decision that this change won’t happen for any reason. Additionally, there are almost 500 pending reviews in our review queue Gerrit. We already managed to get this list down to 3550 open issues and 415 pending reviews, but the goal is to minimize the open and long-standing feedbacks from the community and developers as small as possible. Any helping hand is welcome.

In need of a forger

For this huge task, a new Flow-based project called <link http: forger.typo3.org>Forger was developed by Mathias Schreiber. It serves as an entrypoint and data aggregator for open tickets and almost-mergable reviews so contributors can get their hands dirty faster. Additionally, all code files need to be properly documented, so looking inside the code looks just as up-to-date as reading the documentation. There are still a lot of PHP files which are not in use anymore at all. They will either be deprecated, or moved to the compatibility6 extension.

Unification / Convention over Configuration - Part 1

A lot of similar things are still done "their own way" within TYPO3 CMS. An example would be the Wizards functionality: Web => Functions => Wizards includes two modules which are distributed over three extensions. This behavior is also different to what e.g. the Web => Info module is using. Streamlining the usage of the this code also helps to have a proper TYPO3 core where extensions can see how the core is doing things the right way. One part of the “Convention over Configuration” or “Strong Defaults” that will be tackled for 7.1 development is the registration of backend modules, which currently is possible via several different ways within ext_tables.php. The registration for modules should be unified and loaded via Convention, meaning that if your extension supports the new module registration, a new and cleaner API is automatically handling the aggregation and caching process. We consider this a huge improvement in terms of API handling, and performance in the Backend. Any sponsoring for coding is appreciated in this area.

File Abstraction Layer

One of the most requested topics for 6.2 and 7.x is solving the open topics within the File Abstraction Layer. Over the past year quite some improvement proposals came up. A dedicated code sprint with Frans Saris from the Netherlands as the coordinator of this area is planned in Essen, Germany by the end of January 2015.

Dates

We hope you like what you see (in 7.0) and read here. The development crew is actively coding, the patches are flowing. We have two code sprints coming up in two different cities at the same time - you can choose to join, just fill in the wiki pages and contact the responsible persons. Find more information here:
  • <link http: wiki.typo3.org cms_codesprint_2015>Code Sprint Berlin - January 29th to February 1st, 2015
  • <link http: wiki.typo3.org code_sprint_fal>Code Sprint Essen (FAL cleanups) - January 29th to February 1st, 2015
Feel free to contact <link>Anja Leichsenring if you want to join or are interested in helping out in any way.
The plans for the 7.1 release are: 
  • End of merging phase: Feb 3rd, 2015 (no new features, only stabilization bugfixes in the focus area)
  • Release of 7.1: Feb 17th, 2015
With the release of 7.1, the support for 7.0 is dropped. We will provide easy upgrade paths from 7.0 to 7.1, everybody is encouraged to try out the latest version. We are still looking for sponsors to finance the development of these areas (Module Registration, File Abstraction Layer, JavaScript Rewrites, also for RTE), and also for sponsoring the other topics in our upcoming releases. If you’re interested in giving money to boost the development, this is your chance - please contact me. Additionally, if you want to jump in and join the development, have any questions, contact <link>Mathias Schreiber or <link>me for further details on 7.1.