Issue Tackling and Pending Patches
For the first time the team managed to coordinate a release focused mostly on verifying reported issues on forge.typo3.org, and also lower the number of pending patches in our review queue.
CMS Product Manager Mathias Schreiber developed a tool for helping contributors keep track of current issues, called “Forger” (available on <link http: forger.typo3.org>forger.typo3.org). It also provides good statistics of what happened. A few insights for the number-crunchers:
- A total of 750+ patches were merged into the TYPO3 CMS core.
- More than 40 new small features, most of them TypoScript improvements were merged.
- The number of open tickets in our issue ticketing system was reduced from more than 4000 issues down to 2800.
- More than 500 pending patches were waiting for reviews, we managed to reduce the pending patches down to less than 320.
This is great, but we’re in the flow of getting even more done until the final LTS 7 release. So we’re sure we will have even more impressive statistics by the fall of 2015.
Responsive Backend
In our continuous efforts to bring the basis of the TYPO3 CMS Backend closer to the responsive functionality brought by Twitter Bootstrap, one of the key areas, the Backend FormEngine, is now fully responsive. Also, a new DatePicker has been introduced which integrates nicer in the new look & feel of the TYPO3 system.
The UI of the recycler module was also rewritten and is completely based on a responsive layout.
There is still much to do, but through the agile process of the releases it is easier to split up certain tasks into smaller finishable jobs that contributors pick up.
Cleaning up Content Elements while maintaining backwards-compatibility
A new API for using cObjects (Content Objects) was introduced which allows to extend TypoScript with custom cObjects. This was also a prerequisite to move old-school and outdated cObjects to the compatibility6 extension. Among them are cObjects like HRULER, CLEARGIF, OTABLE and CTABLE. With this, the old mailform and the simple search content element types were moved to the compatibility6 extension as well. Users needing the functionality have to install the compatibility6 extension in order to keep their installations working.
Integration of the Composer Autoloader
One major area the contributors worked on was a new autoloader for PHP classes that TYPO3 uses on a request. The previous complex logic is still kept for backwards-compatibility but the power and performance improvement that comes with new Composer-based class loader made lots of things easier. The new class loader takes full power of extensions that ship a composer.json and define a PSR-4 class standard. Any TYPO3 installation that is set up with Composer already benefits from the new changes completely. Any other installation that is set up the classic way by extracting a .zip file or tarball archive will use the Composer class loader for the TYPO3 extensions that are required for a minimal running system. For all other classes the still existing TYPO3 class loader does all the work.
This change also solves a lot of other side-effects related to caching. For this reason some parts were also backported to 6.2 LTS, which are included in the upcoming release of TYPO3 CMS 6.2.10.
Fluid, RTE and DataHandler Performance
Massive improvements were made in regards of rendering Fluid template files and ViewHelpers. A speedup of up to 50% of most shipped ViewHelpers was tracked and is noticeable in frontend and backend rendering.
The DataHandler, which is main processing engine for saving records, was improved as well when processing a lot of records in one request by lowering the memory footprint and speeding up function calls.
The continuous improvements on RTE HtmlArea by Stanislas Rolland were also incorporated into TYPO3 CMS 7.1.
Extended Testsuite & Cleaner Code
Unit tests and functional tests have been extended and are now also working on Windows machines, ensuring all functionality of the TYPO3 Core covered by tests working on Windows systems as well. Thanks to Nicole Cordes for the heavy work on this.
A lot of existing PHP code has been touched to ensure proper code style and coding guidelines.