TYPO3 CMS 6.2 LTS alpha3 released

Categories: Development, Community Created by Ernesto Baschny
The TYPO3 CMS Team and the TYPO3 Community are happy to announce the availability of a new sneak preview of the upcoming 6.2 LTS release: 6.2 alpha3.
Lot of time has passed since the release of alpha2 (July 11st, 2013). In fact we were supposed to have released a Beta version by now, but decided to postpone that until Mid-October. This developer snapshot together with these release note provides the TYPO3 enthusiasts with the right ingredients to see where the development is heading.

Overview

We finally raised the hard PHP version requirement to 5.3.7 (<link http: forge.typo3.org issues _blank>#50529). This means TYPO3 6.2 alpha3 will not work anymore on Debian Squeeze (oldstable) and on Redhat Enterprise and CentOS 6.4. Support for ImageMagick 4 and 5 was also finally dropped in the Core. Meanwhile the Release Team decided that all still supported TYPO3 Versions (4.5, 4.7, 6.0, 6.1 and of course 6.2) should work with MySQL up to 5.5 and PHP up to 5.5. What's new with alpha3 since alpha2? Most prominent changes:
  • New Documentation Module
  • Install Tool Usability, Stability and New Features
  • Extension Manager with the new Distribution Management System
  • Salted Password by Default
  • Usability Improvements
  • Functional Tests / Quality Assurance
Unique new changes in 6.2 alpha3 since alpha2 We count 199 unique new issues solved since alpha2. Apart from that, the team was able to commit 186 other bugfixes which were also backported to older releases (6.1, 6.0, 4.7, 4.5)! That's a huge effort, thanks to everyone involved! Refer to the <link https: git.typo3.org packages typo3.cms.git shortlog refs tags typo3_6-2-0alpha3>git log for full details. And now on to some details:

Documentation Module

A new backend module was created by Xavier Perseguers: The documentation module (<link http: forge.typo3.org issues _blank>#50486 with some follow-ups: <link http: forge.typo3.org issues _blank>#50841, <link http: forge.typo3.org issues _blank>#51114, <link http: forge.typo3.org issues _blank>#50728, <link http: forge.typo3.org issues _blank>#50536). This followed closely the migration of our system extensions manuals to the reST syntax (<link http: forge.typo3.org issues _blank>#50052, <link http: forge.typo3.org issues _blank>#50081), which is the official format for the TYPO3 documentation.

Install Tool

The Install Tool was again an area that received lots of attention and new features, after it has been so well refactored before alpha2.

Usability Improvements

Most prominent changes: The left menu is at a fixed position and doesn't scroll away (<link http: forge.typo3.org issues _blank>#50910). In backend mode, it also has a the well known "two stripes" module headers (<link http: forge.typo3.org issues _blank>#51952, <link http: forge.typo3.org issues _blank>#51989) for consistency. We removed the misleading "checkmark" icons from the buttons (<link http: forge.typo3.org issues _blank>#51407), improved the usability for foldout sections (<link http: forge.typo3.org issues _blank>#49188) and fixed some alignment issues (<link http: forge.typo3.org issues _blank>#50951), and did some spelling and textual changes (<link http: forge.typo3.org issues _blank>#51946, <link http: forge.typo3.org issues _blank>#51995, <link http: forge.typo3.org issues _blank>#51408, <link http: forge.typo3.org issues _blank>#52314). In the main menu the count of failed system checks (<link http: forge.typo3.org issues _blank>#51410, <link http: forge.typo3.org issues _blank>#51997) and the number of folder structure errors (<link http: forge.typo3.org issues _blank>#52368) are displayed as red badges informing you that there is something worth checking. The "All Configuration" section got some major improvements. It's main sections are now sorted alphabetically (<link http: forge.typo3.org issues _blank>#47740). The "Write Configuration" button at the bottom of the huge form (also on "Configuration Presets") now stick to the bottom of the screen so that it's always visible. The toggle groups and the configuration items were optimized visually (<link http: forge.typo3.org issues _blank>#38701). For settings that expect a PHP error code as an integer, the corresponding string representation of this integer is displayed below (<link http: forge.typo3.org issues _blank>#51376). For our fellow Internet Explorer 9 and 10 users, the Install Tool now looks almost identical as in other modern browsers (<link http: forge.typo3.org issues _blank>#52413). We are still working on overall wording of the install tool to make it more compact and easy to grasp. The UX team also brought our attention to many details we want to fix in the next phase. See <link http: forge.typo3.org issues _blank>#51965.

Old settings gone

We removed some long obsolete and not supported settings and also it's usage: GFX/im_mask_temp_ext_noloss (<link http: forge.typo3.org issues _blank>#52012), GFX/im_combine_filename (<link http: forge.typo3.org issues _blank>#52011), BE/TSconfigConditions (<link http: forge.typo3.org issues _blank>#52013), GFX/im_no_effects (<link http: forge.typo3.org issues _blank>#52010), GFX/im_imvMaskState and GFX/im_negate_mask (<link http: forge.typo3.org issues _blank>#52088). With this, we also officially removed support for ImageMagick 4 and 5 in the code.

Configuration presets

A major new feature is a new "Configuration presets" section (<link http: forge.typo3.org issues _blank>#51454, <link http: forge.typo3.org issues _blank>#52007). It provides prepared bundles of settings, allowing to enable them on click while respecting system capabilities. We start with presets for "Charset conversion", "Image handling" (which autodetecs GraphicsMagick or ImageMagick 6), a chooser for "Development" and "Production" settings and "Extbase object cache" settings. During first installation the available preset with highest priority are automatically configured, so that the most common scenarios are automatically setup without requiring user interaction.

Broken extensions are no longer a pain

We have a nice new feature for dealing with broken extensions. Who never faced the situation that a broken ext_localconf.php from some extension (i.e. a PHP syntax error) crashed your whole installation and there was no way to fix that despite logging in to the server via SSH or FTP? No longer this is a problem, because the Install Tool provides easy tools to deal with that. Under "Important Actions" you have the "Test Extensions" Tool (<link http: forge.typo3.org issues _blank>#49760, <link http: forge.typo3.org issues _blank>#51379) which then lets you uninstall extensions that were tested to be broken (<link http: forge.typo3.org issues _blank>#50940, <link http: forge.typo3.org issues _blank>#51368). If in any action of the Install Tool it would crash because of a broken extension (i.e. Upgrade Wizard or Database Compare), it will now redirect to this action too (<link http: forge.typo3.org issues _blank>#51499).

Step Installer Improvements

The new Step Installer kicks in when there is no configuration yet (the former "1-2-3 Installer") but it also pops up when some configuration is not right yet and needs further attention (i.e. after an Upgrade). The database configuration (first Step in the Step Installer) got some more love and improvements for stability and flexibility. The whole database selection step was improved (<link http: forge.typo3.org issues _blank>#51931). It now also has enhanced support while upgrading: Database selection (<link http: forge.typo3.org issues _blank>#51357) and "port" setting detection (<link http: forge.typo3.org issues _blank>#49186) - required for the mysqli PHP API. The database configuration settings are more robust (<link http: forge.typo3.org issues _blank>#51433) and also allow the use of empty username/password settings (<link http: forge.typo3.org issues _blank>#51540, <link http: forge.typo3.org issues _blank>#51956). Common security-practices suggest to choose a username different than "admin". Thus, as a new security enhancement, we now ask the installing user for the admin-username of his choice during initial setup (<link http: forge.typo3.org issues _blank>#50949).

Clear all cache

In "Important Actions" we now have a button "Clear all cache" which might come in handy if the cache is broken and you cannot login to the backend anymore (<link http: forge.typo3.org issues _blank>#50495).

Extension Manager

The major new addition of the EM is the concept of Distribution Management. This will allow the Core Team to provide it's "packages" (Introduction, Government etc) in a more flexible and simple way: as extensions in TER. This new feature will also allow others to provide their own "Distributions" through TER in near future. Read more about the concept behind it in the <link http: wiki.typo3.org blueprints distributionmanagement>Distribution Management Blueprint. The following additions compose the current Distribution Management:
  • Added the "Distribution Management" to extension manager (<link http: forge.typo3.org issues _blank>#51537). See the "Get preconfigured distribution" in the function select box on top. Currently no distribution will be shown, as there are none yet on TER.
  • Enabled automatic t3d import for extensions (<link http: forge.typo3.org issues _blank>#51437). This allows extensions to ship a "ready made" page tree with content, plugins and settings.
  • Enabled automatic file import for extensions (<link http: forge.typo3.org issues _blank>#51466). This allows extensions to ship a whole file structure with the images and files required by the content.
  • Added the possibility to use an extension as extension repository, so that the distribution extension itself can ship with the required extensions (<link http: forge.typo3.org issues _blank>#51835).
Some other enhancements of the Extension Manager since alpha2 are:
  • A new CLI command to install and uninstall extensions by key (<link http: forge.typo3.org issues _blank>#51629), i.e. php typo3/cli_dispatch.phpsh extbase extension:install news
  • To enhance usability, the "upload extension" form is now also displayed in the Get Extensions section (<link http: forge.typo3.org issues _blank>#51776).
  • Add a timestamp when downloading an extension (<link http: forge.typo3.org issues _blank>#50441).
  • The Extension Manager icon was optimized (<link http: forge.typo3.org issues _blank>#51014).

Salted Passwords

On the security topic, we had the goal for 6.2 to get rid of straight MD5 hashes for passwords in the database for backend users. We acomplished this in this alpha3 release with the great work done by Nicole Cordes: The extension "saltedpasswords" is now required (cannot be deinstalled) and enabled by default for backend users (<link http: forge.typo3.org issues _blank>#51352, <link http: forge.typo3.org issues _blank>#51465, <link http: forge.typo3.org issues _blank>#51355, <link http: forge.typo3.org issues _blank>#51404, <link http: forge.typo3.org issues _blank>#51354, <link http: forge.typo3.org issues _blank>#51356). The Install Tool (and the Step Installer) creates Admin Users using saltedpasswords (<link http: forge.typo3.org issues _blank>#31407, <link http: forge.typo3.org issues _blank>#50612). And finally the Install Tool password itself ('installToolPassword') is also stored with a salted hash (<link http: forge.typo3.org issues _blank>#50613).

UX / Usability

  • A nice Responsive website preview was added (<link http: forge.typo3.org issues _blank>#51148). The current hardcoded presets are meant to be configurable in future versions (see <link http: forge.typo3.org issues _blank>#51865).
  • The Recycler now has a filter for timestamp, so that you can more easily find the records deleted at a certain timestamp (<link http: forge.typo3.org issues _blank>#52324).
  • We extended the Share font family (used in the new backend headlines) with eastern european characters (<link http: forge.typo3.org issues _blank>#49996).
  • The "Create multiple pages" Wizard now has an option to mark them with "Hide in menus" (<link http: forge.typo3.org issues _blank>#51017).
  • The "New content element" icon is always visible if the column is empty (<link http: forge.typo3.org issues _blank>#51480).
  • We removed the obsolete "Clear language cache" menu item (<link http: forge.typo3.org issues _blank>#52312)
Some visual streamlining:
  • Links now underlined on hover (<link http: forge.typo3.org issues _blank>#50997)
  • For backend modules, a new CSS class "lead" for introductions was added (<link http: forge.typo3.org issues _blank>#51022).
  • Backend User Module: headlines (<link http: forge.typo3.org issues _blank>#51147), spacing (<link http: forge.typo3.org issues _blank>#51016), listing improvements (<link http: forge.typo3.org issues _blank>#50994).
  • Logout button styling (<link http: forge.typo3.org issues _blank>#50227)
  • Introduced relative line-heights (<link http: forge.typo3.org issues _blank>#51000)
  • Fixed position of TYPO3 logo text (<link http: forge.typo3.org issues _blank>#51015)
  • Removed gap underneath some tabs (linkvalidator <link http: forge.typo3.org issues _blank>#49997 and workspaces <link http: forge.typo3.org issues _blank>#49133)
  • Better distinction of palette fields in forms (<link http: forge.typo3.org issues _blank>#50460)
  • A new icon for Reports extension (<link http: forge.typo3.org issues _blank>#51993)

Categorization API

The category system is included since TYPO3 6.0. We worked on some new features: The categories can now be manually sorted (<link http: forge.typo3.org issues _blank>#51590). On the API side, we now allow multiple category fields per table (<link http: forge.typo3.org issues _blank>#51921):
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::makeCategorizable('myext', 'tt_content', 'category1');
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::makeCategorizable('myext', 'tt_content', 'category2');
As a new frontend feature, a new categories-based menu is available (<link http: forge.typo3.org issues _blank>#51161):
20 = HMENU
20 {
  special = categories
  special.value = 1,2
  1 = TMENU
  1.NO {
    ...
  }
}
By the way: Did you know that our official documentation is updated while we develop? Check out the section on <link http: docs.typo3.org typo3cms typoscriptreference latest contentobjects hmenu>Categories HMENU in the TypoScript Reference. It's already documented!

Frontend Rendering / TypoScript

A nice addition for integrators: INCLUDE_TYPOSCRIPT now is able to recursively add all files from a directory (and it's subdirectories) (<link http: forge.typo3.org issues _blank>#34621). For example:
<INCLUDE TYPOSCRIPT: source="DIR:directorypath" extensions="ts"> 
If the additional property extensions=".." is provided, only files with these file extensions are included. This allows e.g. to include both setup and constants from the same directory tree, using different file extensions for each. Several other frontend rendering related enhancements:
  • Enhanced HTML5 output of lib.stdheader (<link http: forge.typo3.org issues _blank>#47575)
  • Added allWrap.splitChar on all includeJS/includeCSS properties (<link http: forge.typo3.org issues _blank>#51782)
  • stdWrap .replace: added optionSplit-support (<link http: forge.typo3.org issues _blank>#42287)
  • If you have two Fe-Login forms on one page, you can now configure that only one of them react to the "Forgot Password" request (<link http: forge.typo3.org issues _blank>#34597)
  • Enhanced youtube media URL wizard to support more URL variants (<link http: forge.typo3.org issues _blank>#51728)

Improved Code Quality

Unit / Functional Tests

We finally introduced the framework for functional testing our TYPO3 Core (<link http: forge.typo3.org issues _blank>#51166). This was a huge efford and work that now enables us to write tests which require valid database entries, users, simulating frontend, etc. This is the groundwork required to tackle important issues, bugs and conceptual issues, for example in the area of Workspaces or Language handling. Read more about how it works in the <link http: wiki.typo3.org functional_testing>Functional Testing documentation. Another very satisfying achievement from our Quality Team is that we can now proudly count over 6.000 Unit Tests in our Core. Most newer functionality is covered by Unit Tests, and we are adding more and more tests for older functionality. Adding to that, you might want to know that we run the whole Unit and Functional Test suite automatically after *every* commit to the Core and in different scenarios (PHP 5.3, 5.4 and 5.5), so that we can be sure that nothing breaks. This is done by the nice service called <link https: travis-ci.org typo3 typo3.cms>Travis-CI. In the last couple of months we optimized the workflow and we can proudly see that once some commit breaks Travis, the whole team works together on fixing it as soon as possible. Goal is to be "always green".

Code Cleanups

The 6.2 development branch now contains much cleaner code. We removed some long standing old files and classes, used more modern PHP technologies in order to improve maintainability, stability and provide more "Best Practice" examples on how Extensions should be written. Considering the huge codebase this is a never ending work, but still we managed to improve many things since alpha2:
  • The API method ContentObjectRenderer->getTreeList() return value was adjusted (<link http: forge.typo3.org issues _blank>#51503) (might break something if you use that!)
  • The pagegen.php script no longer exists (was merged into index_ts.php) (<link http: forge.typo3.org issues _blank>#51254)
  • Go with more modern PHP technology: Use PHP lambda functions instead of create_function (<link http: forge.typo3.org issues _blank>#51937), remove workaround for PHP bug in validEmail() (<link http: forge.typo3.org issues _blank>#51386), make use of "use"-statement for BackendUtility (<link http: forge.typo3.org issues _blank>#51158).
  • Require-statements should use absolute paths (<link http: forge.typo3.org issues _blank>#49991)
  • Cleanup entry classes in typo3/ part2 (<link http: forge.typo3.org issues _blank>#49454)
  • Cleanup ext:rsaauth (<link http: forge.typo3.org issues _blank>#51596), ext:taskcenter (<link http: forge.typo3.org issues _blank>#51594), ext:sys_action (<link http: forge.typo3.org issues _blank>#51595), ext:perm (<link http: forge.typo3.org issues _blank>#51597), ext:sv (<link http: forge.typo3.org issues _blank>#51593), ext:func (<link http: forge.typo3.org issues _blank>#49989), ext:info and ext:info_pagetsconfig (<link http: forge.typo3.org issues _blank>#49992)
  • dbal: Remove obsolete CSS HTML template (<link http: forge.typo3.org issues _blank>#51469)
  • Move TCA and ext_tables.sql from ext:cms to ext:frontend (<link http: forge.typo3.org issues _blank>#51251). The new extension "frontend" should be the home of everything that is related to the frontend rendering - i.e. former tslib - opposed to the "backend" extension.
  • Adapt skinning extension stylesheet paths (<link http: forge.typo3.org issues _blank>#51134)
  • Cleanup BackendUtitlity::displayWarningMessages (<link http: forge.typo3.org issues _blank>#51434)
  • Properly double-backslash some backslashes in strings (<link http: forge.typo3.org issues _blank>#47198)
  • Avoid double parsing of includes [tstemplate] (<link http: forge.typo3.org issues _blank>#50473)
  • Use real boolean parameters for sL (<link http: forge.typo3.org issues _blank>#51143), pi_getLL (<link http: forge.typo3.org issues _blank>#50469), getLL (<link http: forge.typo3.org issues _blank>#50393) and trimExplode (<link http: forge.typo3.org issues _blank>#50402)
  • Use new paths for tstemplate classes (<link http: forge.typo3.org issues _blank>#49993)
  • Remove obsolete comments "revised in TYPO3 3.6" (<link http: forge.typo3.org issues _blank>#50409)
  • Fix phpDoc comment for addStaticFile() (<link http: forge.typo3.org issues _blank>#51939)
  • phpdoc: Use boolean/integer instead of bool/int (<link http: forge.typo3.org issues _blank>#50253)

API

On the API side, we backported the ApplicationContext concept from Flow (<link http: forge.typo3.org issues _blank>#49988, <link http: forge.typo3.org issues _blank>#50983). The context is set using the TYPO3_CONTEXT environment variable. Read more about this new API in the <link http: docs.typo3.org typo3cms coreapireference latest apioverview bootstrapping>Core API Reference. In order to provide features currently only possible with Hooks, we decided to allow SignalSlots to modify it's arguments through the return value (<link http: forge.typo3.org issues _blank>#51138). This will need some further refinements until release, as the concept is not 100% bullet proof yet. Configuration of Backend layouts (TypoScript syntax) now support conditions (<link http: forge.typo3.org issues _blank>#47588), allowing configurations like:
backend_layout {
  colCount = 2
  rowCount = 1
  rows {
    1 {
      columns {
        1 {
          name = Main
          colPos = 0
        }
        2 {
          name = right
          colPos = 1
        }
      }
    }
  }
}
[PIDupinRootline = 509]
backend_layout.rows.1.columns.2 >
[GLOBAL]
The Form Extension got a "Redirect" postprocessor, allowing you to redirect to a certain page after Form submission (<link http: forge.typo3.org issues _blank>#38094). A new feature of TCA: allow to disable cascading deletion of child elements (<link http: forge.typo3.org issues _blank>#50391): $conf['behaviour']['enableCascadingDelete'] == FALSE.

FAL

  • We now have a "Missing files" report (<link http: forge.typo3.org issues _blank>#51097) which shows indexed files that are no longer present in the file system.
  • The UX concept for overriding attributes of files (title, alt-attribute) in specific instances (i.e. when using them in Content Elements) was enhanced (<link http: forge.typo3.org issues _blank>#49685, <link http: forge.typo3.org issues _blank>#51818)
  • Added a register:FILE_NUM_CURRENT to the FILES Content Object (<link http: forge.typo3.org issues _blank>#49480)
  • Added fileReferenceUid to content rendering (<link http: forge.typo3.org issues _blank>#49535)
  • Added register:titleText and register:altText when rendering file links (<link http: forge.typo3.org issues _blank>#44182)

Extbase / Fluid

  • You can now use the @inject syntax in Extbase classes to get dependencies injected into your properties at runtime (<link http: forge.typo3.org issues _blank>#46598). This is already being used by Core Extensions like Extension Manager (<link http: forge.typo3.org issues _blank>#50482) and About Module (<link http: forge.typo3.org issues _blank>#52270).
  • During the Extbase Workspaces Code Sprint in Stuttgart work was kick-started to introduce (read-only) Workspaces support in Extbase. The first step was to prepare the generic persistence for the overlay handling by signals (<link http: forge.typo3.org issues _blank>#51106).
  • Undefined switchable controller actions are now removed (from Flexforms) (<link http: forge.typo3.org issues _blank>#31198).
  • Some smaller changes in Fluid: In the paginate view helper the next/last button is not linked on the last page (<link http: forge.typo3.org issues _blank>#51395). The textfield and textarea fields get autofocus attribute (<link http: forge.typo3.org issues _blank>#48689).

Other notable changes

  • The third party SwiftMailer library (providing our TYPO3\CMS\Core\Mail API) was updated to 5.0.1 (<link http: forge.typo3.org issues _blank>#51406). This brings not only new functionality and stability, but also a whole new license (MIT), which is now fully compatible with our GPLv2 license.
  • The Core now supports custom translation servers for extensions (<link http: forge.typo3.org issues _blank>#50467) so if you have custom extensions and want to provide localization packages, you can host your own Pootle translation server. See issue description on how to use that feature.
  • The oldest feature request that was implemented since alpha2 is <link http: forge.typo3.org issues _blank>#21892, from over three years ago. It brings a new API method BackendUtility::replaceMarkersInWhereClause.

Downloading and Upgrading

You can download TYPO3 6.2.0alpha3 on our download page in the tab "TYPO3 CMS 6.2 LTS Preview".

MD5 Sums of packages

631ff57105b864967238577ce1b27581 typo3_src-6.2.0alpha3.tar.gz
d84abb81ed81cf7fc6538cacbb91d54b typo3_src-6.2.0alpha3.zip

Upgrading notes

Please note that we haven't shipped an Introduction Package and a Government Package with alpha3. One way to use the introduction package with alpha3, is:
  • Install 6.2 alpha1 Introduction Package
  • Remove typo3_src and replace it with a "fresh copy" of alpha3 source package (or simply checkout current "master" from git instead)

What's next?

The following events are planned already for the weeks to come:
  • <link http: wiki.typo3.org t3cms_code_sprint_2013_hannover>TYPO3 CMS Code Sprint in Hannover next week
  • Release of Beta1 (Feature Freeze) on October 15th (see <link http: forge.typo3.org projects typo3cms-v62 wiki>the Roadmap)
  • Status Report on 6.2 and the TYPO3 CMS Team at <link http: t3con13de.typo3.org>T3CON in Stuttgart