TYPO3 6.0 - Back to the Future

Categories: Development Created by Helmut Hummel, Susanne Moog
Back on track, embracing the Future. Our ideas for the upcoming TYPO3 6.0 release.
We chose the code name "Back to the Future" for the TYPO3 6.0 release coming this fall for various reasons. First of all it's of course a fun and geeky reference to a <link http: www.imdb.de title tt0088763>movie. But it is also a reference to the history of TYPO3 v4 and the planned but not yet released complete rewrite of the CMS with the codename "Phoenix". With the version 4 branch now moving forward towards a new major version number, we can leave behind some self made limitations and get Back on track, embracing the Future. This in particular means that 6.0 will incorporate heavy code cleanups especially moving some modules to extbase, the modern and future proof framework which has been backported form the Phoenix code. Besides that we will improve and intense the collaboration with the Phoenix team when it comes to new features so that new concepts and APIs are the same or similar where it makes sense. This will make TYPO3 v6 more stable and maintainable and smoothes the transition path to Phoenix. During the TYPO3 Core Team Meeting as well as during the TYPO3 Developer Days 2012 we brainstormed some ideas what changes or features could make it into 6.0. We want to give you a short overview of the different topics, roughly sorted by the <link record:tt_news:1359>visions we have for that version. If you want to help with any of them, feel free to <link record:tt_news:1359>get in touch with us. Of course you can also work on something totally different, maybe you have some additional ideas or want to start a team on something else. Then also feel free to contact us, to get your project up and running. This list is neither complete nor is it final. It might be the case that some of these projects will not make it into 6.0 and need to be postponed to later versions. But for sure others will. If you already have a project you want to see in 6.0, just add it in the comments section and we will add it to the list.

Enhance User Experience

Improve Usability

(Patrick Broens, Helmut Hummel, Jens Hoffmann, Benni Mack)

The overall usability of the TYPO3 backend should be improved, especially for the editors. There will also be a code sprint on this topic, to get some hands-on work done t

jQuery Integration

We plan to replace prototype/scriptaculous with jQuery in the backend. jQuery is a solid and widely used and actively maintained JavaScript Framework. Incorporating jQuery is an important building block to be more agile with enhancements to the backend and thus streamlining the user experience.  Have a look at the projects page on forge for the status: forge.typo3.org/projects/typo3v6-jquery

New way to manage extensions

The current extension manager is criticized quite often for being unusable, slow and not able to do all the stuff you want to do with it while being able to do stuff you don’t want to do it. In this project we want to rethink the whole extension manager based on which features do you really need, how should they be implemented and what can be done in a different place altogether. The plan is to have the UX concept first and then get started implementing it. 

<link http: forge.typo3.org projects extensionmanager>forge.typo3.org/projects/extensionmanager

Deployment and Updates

(Tobias Liebig, Olly Hader, Michael Stucki)

TYPO3 updates for minor versions are easy enough to do. In fact they are so easy that they could probably be automated. We want to have an easy way ("push a button") to upgrade a TYPO3 extension. On the same subject we also want to have better console support for doing things in TYPO3 like installing or updating extensions making it possible to write shell scripts to automate these processes. 

<link http: forge.typo3.org projects show extension-deployment>forge.typo3.org/projects/show/extension-deployment

Support for Mobile Devices

(Steffen Ritter, Patrick Broens, Sven Wolfermann) More and more of the overall internet users are using mobile devices. The TYPO3 frontend is already able to serve mobile and responsive web sites but the TYPO3 backend is at the moment pretty much unusable on mobile devices. To showcase the frontend capabilities of TYPO3 we want to rewrite the introduction package adhering the principles of responsive web design. For the backend we want to achieve at least a basic support of tablet computers (especially concerning resizing / scrolling issues). 

External tool integration / REST API

(Thomas Maroschik, Helmut Hummel) The way content is added to websites is changing. We can imagine that in the future you want to use voice input for editing content, mobile interfaces, your play station or something entirely new. To make that possible we need to implement an API for the basic actions you do (like: editing, adding, deleting or reading content). Basically the plan would be to implement a REST API for these actions.

Improve and ensure code quality

Move towards more simplicity

In the last few years the backend got more and more complex. More features and system extensions were included in the Core while at the same time due to backwards compatibility not much was removed, resulting in a bigger TYPO3 with every release. With a new major version we get the chance to remove old and outdated code as well as extensions that nobody uses anymore or that are not maintained. We aim to have a public discussion about features and extensions that just bloat the core and want to decide together with the community how to get a smaller TYPO3. 

Infrastructure to monitor code quality

(Helmut Hummel, Andy Grunwald, Christian Trabold) We want to build and provide an infrastructure that makes it easy to execute unit and functional tests on development systems and have them automatically executed on every commit to our review system (Gerrit). The first steps for the latter are done already. We have a Jenkins server (ci.typo3.org) that does a syntax check for every commit and also checks for CGL violations. Additionally executing unit tests on each commit are basically working, using the travis ci infrastructure (<link http: travis-ci.org>travis-ci.org). The plan is to get this running at least for the end of the 6.0 development and ship a “green build” to the users with this release.

Secure the building

(Georg Ringer, Helmut Hummel) To improve security even more we want to provide an easy to use and easily understandable API for security features (for example "encodeForHtmlAttribute", "encodeForJavaScript" or "validateFilename").

Encourage and strengthen Collaboration

Let's get into the FLOW

(Olly Hader , Patrick Broens, Georg Ringer, Christian Kuhn, Sebastian Kurfürst / Thomas Maroschik / Tolleiv Nietsch, Christian Müller)

As we have a really cool shiny PHP framework in our community now we want to take even more steps to make use of the benefits of this framework. That includes porting more backend modules to extbase and fluid, which will in the long term make restructuring the backend interface much easier. Have a look at the core mailing list in the thread “[TYPO3-core] Call for help: Migrate core extensions to extbase”.

Additionally we want to develop a common package repository for FLOW3 packages and TYPO3 extensions.

Miscellaneous

It's getting cloudy - or what file abstraction can do for you

(Benni Mack, S

Another important topic at the moment is support for cloud storages. With the File Abstraction Layer we will get an abstraction that makes it easily possible to use different file storages. The whole file abstraction layer is already included in the master branch but has to be tested and can be extended. There will be an extension that illustrates the principle of using another storage, for example WebDav. Everyone can then easily implement their own storage solutions. 

Revamp the Logging

This project aims
  • streamline them into on single logging API,
  • optimize the user interface of the Log module,
  • create and maintain suitable documentation for the different target groups
  • cleanup logging configuration.
 If you want to help out in this topic, contact us or join the team directly on forge <link http: forge.typo3.org projects typo3v4-logging>forge.typo3.org/projects/typo3v4-logging

We chose the code name "Back to the Future" for the TYPO3 6.0 release coming this fall for various reasons. First of all it's of course a fun and geeky reference to a <link http: www.imdb.de title tt0088763>movie. But it is also a reference to the history of TYPO3 v4 and the planned but not yet released complete rewrite of the CMS with the codename "Phoenix". With the version 4 branch now moving forward towards a new major version number, we can leave behind some self made limitations and get Back on track, embracing the Future. This in particular means that 6.0 will incorporate heavy code cleanups especially moving some modules to extbase, the modern and future proof framework which has been backported form the Phoenix code. Besides that we will improve and intense the collaboration with the Phoenix team when it comes to new features so that new concepts and APIs are the same or similar where it makes sense. This will make TYPO3 v6 more stable and maintainable and smoothes the transition path to Phoenix. During the TYPO3 Core Team Meeting as well as during the TYPO3 Developer Days 2012 we brainstormed some ideas what changes or features could make it into 6.0. We want to give you a short overview of the different topics, roughly sorted by the <link record:tt_news:1359>visions we have for that version. If you want to help with any of them, feel free to <link record:tt_news:1359>get in touch with us. Of course you can also work on something totally different, maybe you have some additional ideas or want to start a team on something else. Then also feel free to contact us, to get your project up and running. This list is neither complete nor is it final. It might be the case that some of these projects will not make it into 6.0 and need to be postponed to later versions. But for sure others will. If you already have a project you want to see in 6.0, just add it in the comments section and we will add it to the list.
Oops, an error occurred! Code: 202404200904004884c4fb Event: 5c0258bc88ad426496c600d2bb87815e

Improve Usability

(Patrick Broens, Helmut Hummel, Jens Hoffmann, Benni Mack)

The overall usability of the TYPO3 backend should be improved, especially for the editors. There will also be a code sprint on this topic, to get some hands-on work done together. 

New way to manage extensions

The current extension manager is criticized quite often for being unusable, slow and not able to do all the stuff you want to do with it while being able to do stuff you don’t want to do it. In this project we want to rethink the whole extension manager based on which features do you really need, how should they be implemented and what can be done in a different place altogether. The plan is to have the UX concept first and then get started implementing it. 

<link http: forge.typo3.org projects extensionmanager>forge.typo3.org/projects/extensionmanager

jQuery Integration

We plan to replace prototype/scriptaculous with jQuery in the backend. jQuery is a solid and widely used and actively maintained JavaScript Framework. Incorporating jQuery is an important building block to be more agile with enhancements to the backend and thus streamlining the user experience.  Have a look at the projects page on forge for the status: <link http: forge.typo3.org projects typo3v6-jquery>forge.typo3.org/projects/typo3v6-jquery

Deployment and Updates

(Tobias Liebig, Olly Hader, Michael Stucki)

TYPO3 updates for minor versions are easy enough to do. In fact they are so easy that they could probably be automated. We want to have an easy way ("push a button") to upgrade a TYPO3 extension. On the same subject we also want to have better console support for doing things in TYPO3 like installing or updating extensions making it possible to write shell scripts to automate these processes. 

<link http: forge.typo3.org projects show extension-deployment>forge.typo3.org/projects/show/extension-deployment

Support for Mobile Devices

(Steffen Ritter, Patrick Broens, Sven Wolfermann) More and more of the overall internet users are using mobile devices. The TYPO3 frontend is already able to serve mobile and responsive web sites but the TYPO3 backend is at the moment pretty much unusable on mobile devices. To showcase the frontend capabilities of TYPO3 we want to rewrite the introduction package adhering the principles of responsive web design. For the backend we want to achieve at least a basic support of tablet computers (especially concerning resizing / scrolling issues). 

External tool integration / REST API

(Thomas Maroschik, Helmut Hummel) The way content is added to websites is changing. We can imagine that in the future you want to use voice input for editing content, mobile interfaces, your play station or something entirely new. To make that possible we need to implement an API for the basic actions you do (like: editing, adding, deleting or reading content). Basically the plan would be to implement a REST API for these actions.
Oops, an error occurred! Code: 202404200904002101c6ab Event: 79aad92742f0410db5577778c2078808

Move towards more simplicity

In the last few years the backend got more and more complex. More features and system extensions were included in the Core while at the same time due to backwards compatibility not much was removed, resulting in a bigger TYPO3 with every release. With a new major version we get the chance to remove old and outdated code as well as extensions that nobody uses anymore or that are not maintained. We aim to have a public discussion about features and extensions that just bloat the core and want to decide together with the community how to get a smaller TYPO3. 

Infrastructure to monitor code quality

(Helmut Hummel, Andy Grunwald, Christian Trabold) We want to build and provide an infrastructure that makes it easy to execute unit and functional tests on development systems and have them automatically executed on every commit to our review system (Gerrit). The first steps for the latter are done already. We have a Jenkins server (ci.typo3.org) that does a syntax check for every commit and also checks for CGL violations. Additionally executing unit tests on each commit are basically working, using the travis ci infrastructure (<link http: travis-ci.org>travis-ci.org). The plan is to get this running at least for the end of the 6.0 development and ship a “green build” to the users with this release.

Secure the building

(Georg Ringer, Helmut Hummel) To improve security even more we want to provide an easy to use and easily understandable API for security features (for example "encodeForHtmlAttribute", "encodeForJavaScript" or "validateFilename").
Oops, an error occurred! Code: 20240420090400e988d9bc Event: 6225fb39eddc448e81c96dc291ce50fc

Let's get into the FLOW

(Olly Hader , Patrick Broens, Georg Ringer, Christian Kuhn, Sebastian Kurfürst / Thomas Maroschik / Tolleiv Nietsch, Christian Müller)

As we have a really cool shiny PHP framework in our community now we want to take even more steps to make use of the benefits of this framework. That includes porting more backend modules to extbase and fluid, which will in the long term make restructuring the backend interface much easier. Have a look at the core mailing list in the thread “[TYPO3-core] Call for help: Migrate core extensions to extbase”.

Additionally we want to develop a common package repository for TYPO3 Flow packages and TYPO3 extensions.

Oops, an error occurred! Code: 20240420090400d7f83896 Event: baaeafeccc7449c796cd91540e4daca5

It's getting cloudy - or what file abstraction can do for you

(Benni Mack, Steffen Ritter)

Another important topic at the moment is support for cloud storages. With the File Abstraction Layer we will get an abstraction that makes it easily possible to use different file storages. The whole file abstraction layer is already included in the master branch but has to be tested and can be extended. There will be an extension that illustrates the principle of using another storage, for example WebDav. Everyone can then easily implement their own storage solutions. 

Revamp the Logging

This project aims to:
  • streamline them into on single logging API,
  • optimize the user interface of the Log module,
  • create and maintain suitable documentation for the different target groups
  • cleanup logging configuration.
 If you want to help out in this topic, contact us or join the team directly on forge <link http: forge.typo3.org projects typo3v4-logging>forge.typo3.org/projects/typo3v4-logging