TYPO3 Neos and Flow - September 2012

This time I should be using the old names "Phoenix" and "FLOW3" still, as this is about last month - but let's cut the red tape this time, ok? So, what has happened in September?

TYPO3 Neos

Let us begin with what happened at the beginning of October, strictly speaking out of scope for this article: TYPO3 Phoenix now has a name and asks you to call it TYPO3 Neos now. Neos, being the greek word for new, fresh, revolutionary, uncommon, is the result of years of brainstorming and still only came to our minds at the Phoenix code sprint in Copenhagen in September. Sometimes it takes a special moment to materialize the combined feelings of a whole group of people into one single word.

This leads us back to the beginning of September and the code sprint we (Marc Neuhaus, Rens Admiraal, Christian Müller, Berit Hlubek, Robert Lemke, Karsten Dambekalns, Bastian Waidelich, Henri Bergius, Christopher Hlubek, Aske Ertmann, Andreas Förthner, Christian Jul Jensen, Sebastian Kurfürst, Markus Goldbeck, Ben van't Ende) had in Copenhagen. More details on it are available in a separate news article, but let me point out some important things: the code sprint meant huge progress in our codebase and functionality - and it was an emotional roller coaster ride. While spritis were high the whole week, the measurement of confidence in being able to finish what had planned fluctuated between 0 and 100 per cent multiple times.

A good example is the integration of VIE and Create.js, both technologies rooted in the IKS project, that Rens, Sebastian and Christopher worked on mostly. Henri Bergius, the father of Create.js was with us in Copenhagen, and still it took us until the middle of the week to realize we were actually on track with our plans. VIE and Create.js are what powers content editing in Neos now, decoupling things so we can use the Aloha or Hallo editors depending on the needs.

Markus was busy working on the page tree and inspector panels in the Neos interface, not excatly an easy task while the rest of the team changes some of the underlying codebase. Also the changes needed to integrate Composer (something Julle had focused on) had an impact on all packages used, so we merged them rather late in the month. And then needed to change the name, which we did in even later commits and partly in hidden repositories - after all, we did not want to spoil the keynote surprise for T3CON12. Or would you like to know in advance, what is under the Christmas tree?

Something fresh in Neos is the wireframe mode, which allows you to start working on content before your have a design (not to mention template) ready. As a surprised Rasmus said after the T3CON12 keynote: "this is a game changer" - so thanks to Christian for actually bringing that idea to life.

Almost everyone from the team contributed to a huge amount of changes - small and big - during and after the code sprint, enhancing the user interface. From flyout menus to default styles, button colors to form layout - we pushed consistency as far as we could and tried to hide the lack of a visual design as much as possible, with Berit focusing on module styling, Robert and Christian redoing the login screen, and Mattias working on editor handles. If I forgot anything worth mentioning, sorry! I owe you a beer then…

Robert looked into plugin integration to make sure everything still worked as intended. Marc refactored the Expose package (another name found last month!) to be based more on TypoScript and integrated it into Neos with Sebastian. Ah, TypoScript - it was enhanced and simplified further, mostly by Robert and Sebastian. Content types were tweaked and moved to a seperate package by Christian. Aske and Karsten worked on implementing and tweaking copy and move in TYPO3CR.

Phew…

A last hint for those who actually develop JavaScript in a Neos context - make sure to set the setting TYPO3.TYPO3.loadMinifiedJavascript to FALSE in your Settings.yaml. by default we are using minified JS now, something which you do not want to have to open in your editor or debugger. :)

TYPO3 Flow

We had planned to integrate Composer for quite some time now, and in September it became reality thanks to Julle being stubborn enough to conquer it. For the users of Flow this makes dependency handling a lot easier, although existing code needs to be moved around a little - full PSR-0 compatibility is needed to get the best out of Composer and an important step towards better interoperability between all sorts of PHP frameworks and libraries.

As with the Composer-induced PSR-0 changes, the renaming of FLOW3 to Flow again means a lot of code changes. To make all of this as easy as possible for the users Karsten created a code migration and some extra tooling, both of which turned out to work really well on all of our packages and will be documented in the upgrade instructions to TYPO3 Flow 2.0.

Yes, 2.0 is the next version of TYPO3 Flow - the planned 1.2 has been renumbered since the integration of Composer is a huge feature. At the same time it means breaking changes, just as the rename, so we figured a new major version number makes sense. Thanks to all those who suggested that change!

Something that Robert finished based on work done by Bastian is custom error handling for Flow. It is possible to react flexible on exceptions, for example using custom templates, to provide a better user experience.

Christian and Andreas worked on CSRF protection and a generic authentication controller, Andreas further continued to enahnce content security.

The End

This month broke all time highs on a lot of metrics. Team spirit, git commits, lack of sleep, issues closed, bugs fixed, talks prepared - it has been a full month of dedicated team work towards a conference that left us all exhausted but happy. Thanks to everyone!

That's it for September. Now on with October, which means wrapping up T3CON12 and listening to the feedback you people out there hopefully give us.