Heads first into a new year - January 2012

Categories: Development Created by Karsten Dambekalns

After an exciting 2011 we have meanwhile completed the first month of 2012. Just like probably everyone else we have some ideas for doing things better than in the past, and this includes communication.

One building block of this will be monthly reports of what has happened in the FLOW3 and Phoenix team, based on the protocols of our daily scrum meetings (if you want to get a glimpse of such a meeting, <link https: talkgadget.google.com hangouts extras talk.google.com t3px-team-hangout _blank>feel free to join daily at 11:30 - and let's see how many users that can handle…). The first of those monthly reports is what you are reading now.

Phoenix

One thing the whole team is committed to is to work more on Phoenix in 2012, and currently Sebastian, Rens, Christian and Markus have a dedicated "Phoenix day" every Friday.

The Aloha editor used in Phoenix was updated to the an up-to-date development state and we swapped SproutCore against <link http: yehudakatz.com announcing-amber-js _blank>Amber.js and later <link http: yehudakatz.com amber-js-formerly-sproutcore-2-0-is-now-ember-js _blank>Ember.js, to make sure we are not affected by any negative side-effects Facebook's acquisition of the Strobe team behind SproutCore might have.

Markus worked on fixing some issues in the pagetree of the Phoenix content view, like moving nodes and is trying to untangle the ExtJS version mess between TYPO3 4.6, 4.7 and Phoenix.

Aske finalized a framework for adding modules to the Phoenix management view UI and it was submitted after a true review frenzy. With that framework in place we can now continue to add functionality to Phoenix in a modular and easy way.

Based on the I18n support coming to FLOW3 1.1 Rens created some basic support for handling localized content in Phoenix. Coupling that with some routing magic as well as content negotiation from the new HTTP stack (see below) will bring multi language support in Phoenix a big step further.

TypoScript is, as you will agree, one of the core concepts of the TYPO3 CMS. Our current way of rendering TypoScript was turned inside out by Sebastian together with others from the team and a new rendering concept was prototyped. It promises to combine an easier rendering workflow with more power for the TypoScript developer. And it will decouple TypoScript rendering completely from TYPO3CR nodes, offering the opportunity to use TypoScript to render any object's data.

FLOW3

One of the hot topics in January was the work on a standards-compliant HTTP stack for FLOW3. This means the current request handling in the MVC stack is refactored and cleaned up thoroughly, to be based on a clean implementation of the HTTP protocol. The reasons for this are manifold. One is that it makes (functional) testing a lot easier if you can build any HTTP request you like to fire at the framework in a test. Another is that it allows for easy full-on support for cache headers to be sent, so that caches like Varnish can work really well with anything based on FLOW3 out of the box. And of course it serves as the base for one of our favorites, Edge-Side Includes (ESI).

The way validation will work in FLOW3 1.1 was changed in what you might call a breaking change: all validators by default consider empty strings and NULL as valid as well, enabling you to easily have optional properties that are validated as soon as there is something to validate. That change as well as a bunch of fixes to the Fluid templating engine are the result of a project Bastian and Sebastian are working on until end of February, and which will bring awesome forms support to FLOW3 and Fluid.

We did a reality check regarding what to expect when upgrading a FLOW3 1.0 project to the upcoming 1.1 release we upgraded our Conference application. Apart from delivering a lot of notes for upgrading instructions to come with FLOW3 1.1 this was a major building block for the preparation of the T3CON12 Québec website that is being reviewed for launch as I write this.

With past releases that needed users to adjust their code we delivered handmade update scripts (for example to adjust namespaces to vendor names or the adapt to the changed annotation syntax). With use of FLOW3 being more widespread than ever, we figured a more streamlined approach to deliver those scripts is in order. Inspired by the proven concepts of the database migrations a code migration tool was worked on that allows to adjust code and configuration files in packages.

The <link http: www.doctrine-project.org blog doctrine-2-2-final _blank>Doctrine project released version 2.2 of it's Common, DBAL and ORM libraries towards the end of January and the related FLOW3 packages were updated accordingly. The changes are under review but will be merged for FLOW3 versions 1.0.3 and 1.1.

This and that

Sebastian, together with Thomas Maroschik, worked on a prototype implementation for a new extension and package repository. A whitepaper to serve as base for further discussion was also prepared. This project is not limited to FLOW3 but will also server the TYPO3 CMS community.

Bastian updated the voting app you might have used to vote on the TYPO3 Associations EAB and BCC to the current FLOW3 version.

Sebastian implemented <link https: github.com sandstorm sandstormmedia.fuzzer _blank>Fuzzer as a tool to improve Unit Tests, check it out and read some <link http: www.infosun.fim.uni-passau.de st papers tr-99-01 esec99.pdf _blank>background information in this PDF.

A template for documenting Fluid ViewHelpers in reStructuredText was developed by Markus and the outdated toolchain to transform the viewhelper documentation from PHP documentation comments to DocBook XML was changed to emit reStructuredText instead. Using a modular approach validators, type converters and other code parts can be documented as well, simply by adding a corresponding parser/formatter pair.

The security team brought up the question of how FLOW3 and Phoenix security issue reports should be handled - before we actually have them coming in. The issue was discussed and we decided to stick to the well-known single email address for reporting security issues we have and wait with introducing more red tape until it is actually needed. Having the security team co-leader in the FLOW3 team also ensures efficient communication.

Within 2012 the world will see a new standard for Web Experience Management (WEMI) coming out of OASIS. The TYPO3 Association is now an OASIS member and our team briefed Daniel Hinderink on our view of how Phoenix relates to the goals of the WEMI initiative.

The End

That's it for the first report in 2012. I hope this and the following reports will give the insight into what we are doing to those who missed that in the past. Also, I'm looking forward to feedback on the report as well as our work.