TYPO3 6.0 - Back to the Future

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 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 visions we have for that version.

If you want to help with any of them, feel free to 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 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.

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.

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.

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 (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

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.

Miscellaneous

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

A JSON-REST API would be great for e.g.:
- custom Frontend Editing features implemented in JavaScript
- connecting mobile Apps (eg. written in JavaScript) to TYPO3

Web-app development is JavaScript Apps development. A JSON-REST API would enable TYPO3 to connect with the JavaScript world. TYPO3 would certainly benefit from this connectivity.

Frank Gerards21-05-12 10:53

Hi,

is there a plan to re-write the "User" Module, i.e. make it capable of showing more than 1000 users ?

Mathias Schreiber21-05-12 19:31

@Matthias Wehrlein

Just make pros and cons so folks can decide.

Fabian Thommen15-06-12 17:46

Hi All

First: Please don't get me wrong. We use typo3 since V 3.8 and thanks for all the work!

But:

I'm am little upset. For me the development of typo3 looks more and more like pure Happy Engineering. If you read the above list, its almost just about technology.

"The current extension manager is criticized quite often", so just let write an new one. For me the extension manager is working all right. My problem is fare more the Quality of the Extensions, the incomplete Documentation, the undefined live-cycle, 2 year old Bugs, even in heavy used extension.

There should be 5000 Extension, but lets be honest, only 10-20 of it are usable.

Another point is the live cycle management of the core: There is typo3 LTS 4.5. Nice Idea to make an LTS, but whats next? There is no information! Is the next LTS Version?

typo4 V6? Is it 4.9? Is there an direct upgrade Path? Do I have to upgrade over 4.6/4.7/4.8?

Now there is V 4.7, soon V6 and whats about Flow3/Phoenix? Members of the typo3 Association like us sponserd the development for Flow3/Phoenix for years. (To be precise we are just member since last year, but the others)

For me it looks like typo3 v4 will never substituted by Flow3/Phoenix. It's an complete different framework. But typo3 has to evolve! Typo3 V6 does not look like an solution for me.

Christian Oettinger07-01-13 13:25

Hi all,

I also use TYPO3 quite a long time (3.6) and am very happy with it. And I do not agree with Fabian in many aspects: The engineering brought us all a (quite useable indeed) FLOW3 and of course extbase for TYPO3. So there is happening a lot and it is great. Yeah, the Phoenix-Story is strange, seen from the outside, but TYPO3 is definetely evolving.

But I also have to agree with Fabian in some other points. I know how difficult this is, but I see the engineering team being often rather far away from my reality.

- It's great if v6 is unit-tested with 5000 test. But it's of no use for me when I can not clean my cache files when they contain an error (Bug #42887) – and this not seen as a problem by the developing team. Here the ideas of what is important are very far way from each other.
- It is great if everything is organized by cool tools but it is not so great if I am stopping to help the community because of that. For the tools make my life complicated and I have to learn another one (without any help) repeatedly.
- Extbase gets better and better but it changes so quickly and so irreproducible for someone form outside that it is hard to work with it in reality (which I do).
- It's great if the old versions are looked over, but it may become a problem if you have so many branches and versions (not to mention the documentation or extension problem which is dependent from that).
- It's great when extensions evolve, are rewritten in extbase, have new functionality. But it's not, if I have to downgrade again because a very basic thing is not possible any more thanks to clever new way (e.g. records on different pages but in one folder for indexed search with crawler) or if they are virtually unusable for my clients (powermail).

All this is quite normal and OK, but seen all together it forms a picture. And here I am d'accord with Fabian: I see happy engineering. Although I constantly learned and sill do, it is not getting easier. I can not imagine how someone can be able to start as I did. Without being already deep inside.

I think this is a bit danger, TYPO3 is about to lose contact to the diversity and variety of people who use it. For it's going more and more in one, only one direction. Maybe it's going to loose the connection to the kind of people who made it big by that. Maybe not. For sure it wins some other people. Maybe it even is the right way.

But it's sad, because versatility has been one of the things that made TYPO3 great.
Versatility in thinking also.

Fedir RYKHTIK04-09-13 12:09

2 Matthias Wehrlein :

For an Open Source project the aim is to have maximum contributions possible. jQuery is 10 times more popular than any FooBar library. More professionals. More commits.