27/01 2012
A Quick Look Into the Future

A small taste of the direction FED is taking.

Dear developers,

FED now has a proper team of skilled developers! This is cause for celebration indeed. I expect great things from having so many extra eyes and brains on the project. So a warm welcome to Georg Ringer, Stefan Neufeind, Daniel Schöne, Dominic Garms and Frank Gerards. If you are a developer who works with FED and would like to contribute I would be more than happy to include you on the team. Any help with code reviews on Gerrit is also highly appreciated.

You may have noticed that the release cycles have started slowing down. This does not mean that no work is being done, quite the opposite. The team is working hard on improving the existing features and making FED even more stable and accessible to both developers and content editors.

The release schedule will change slightly in the future with the main purpose of ensuring stability and clearly schedule exactly when deprecations can occur and more importantly, to schedule exactly when deprecated code may be removed. It is my hope that with this new release schedule you can expect to only need to change your code, if you need to change it at all, at the same time as new versions of Extbase and Fluid are released.

Note: Content Editors will not be affected by any of the changes advertised here. If you are a Content Editor using FED elemens and you read this, let your developer know about this article.

The new schedule matches Extbase/Fluid closely with one exception. The release ruleset is:

  • Major versions must follow Extbase/Fluid
  • Minor versions must follow Extbase/Fluid
  • Bugfix versions do not follow Extbase/Fluid but are released whenever necessary. The exception here is that bugfix versions may include migrated code, but if code has been migrated, proxy classes are in place for backwards compatibility.
  • Deprecations can happen in bugfix versions but will be collected and published when a new minor version is released, then finally removed when the next minor version is released. This means that only when the minor version number changes will you (possibly) need to update your code and remove usage of deprecated code.

 

This ruleset will be broken one last time before being put into full effect (and in advance, I'm sorry about this but it's better to peel the bandage off quickly).

This final rule breaking will have an impact on all of your Fluid Content Elements as well as your Fluid Page Templates - and it will happen in the very next version of FED. To prepare you for these changes here is a list of the most important changes that are taking place, how they affect the future and finally what you should do to prepare for the changes:

  1. The new project Flux will soon contain all the Dynamic FlexForm features along with the content preview feature. This has already been ported and can be used separately - but some logic still remains in FED. In the future the nested content element feature will also be ported, enabling any type of Fluid based plugin to carry child content elements, just like FED's Fluid Content Elements. To prepare for this change that is coming up, a new TER version will be released shortly containing bugfixes and a very important migration. Please note that this TER version, which will be 1.4.11, will contain a breaking change which requires you to upgrade all your Fluid Content Elements and Page Templates, replacing any fed:page, fed:fce and fed:flexform usage with flux:flexform. An upgrade script which can do most of this automatically will be included.
  2. Localization support in FED will be improved greatly. This will be a work in progress, the main part of which is scheduled for version 1.5 at the earliest, but 1.4.11 will contain some of the first measures taken to make FED entirely localization capable. The feature which has received the initial localization treatment is the Fluid Content Element feature - this is because Flux now has localization support and will carry the nested content elements feature from now on. This means that if you have a project coming up which requires fully localized Fluid Content Elements, you may want to wait for version 1.4.11.
  3. The ExtJS features will be deprecated in version 1.5 and are scheduled for complete removal in version 1.6. New approaches are being discussed - not necessarily for FED but perhaps in general - to use SproutCore/Ember. If you use the ExtJS features in FED you should make efforts to port the code into your own project. You do not need to rush - but when TYPO3 4.8 nears release you should be ready for this removal.
  4. If time allows, 1.5 will deprecate the Widget-style ViewHelpers which will have a new home in the "Fluidwidget" extension. If it is not possible to complete this task before 1.5 is due to be released this task will simply be delated one minor version (deprecation happens in 1.6 instead of 1.5, removal happens in 1.7 instead of 1.6). The Widgets will along the way be improved and ported to a template-and-partial based structure to allow even more customization through custom templates for each and every Widget. A list will be made of all the Widgets which will move. Backwards compatibility with your templates will be kept until version 1.6 is released, at this time the Widgets will be removed. You are encouraged to start using the Fluidwidget versions of the Widgets as soon as this becomes possible.

 

These are the main four items to watch out for. After the 1.4.11 release we will have a much more stable version of FED and gain the ability to use the dynamic FlexForm features from FED in any way we choose (plugins, content element and table fields), in our own extensions - without having to install FED unless needed.

Along the road to version 1.5 I will keep you all updated with the progress and let you know what to expect as early as possible.

I hope that version 1.4.11 will be the final birthing pains before the long, happy, stable future of FED. And I hope that you will receive it - and the new FED team members! - in good spirit.


To boldly go,
Claus