TYPO3 CMS 6.2 LTS alpha3 released
October 01, 2013
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.
We finally raised the hard PHP version requirement to 5.3.7 (#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 git log for full details.
And now on to some details:
A new backend module was created by Xavier Perseguers: The documentation module (#50486 with some follow-ups: #50841, #51114, #50728, #50536). This followed closely the migration of our system extensions manuals to the reST syntax (#50052, #50081), which is the official format for the TYPO3 documentation.
The Install Tool was again an area that received lots of attention and new features, after it has been so well refactored before alpha2.
Most prominent changes: The left menu is at a fixed position and doesn't scroll away (#50910). In backend mode, it also has a the well known "two stripes" module headers (#51952, #51989) for consistency.
We removed the misleading "checkmark" icons from the buttons (#51407), improved the usability for foldout sections (#49188) and fixed some alignment issues (#50951), and did some spelling and textual changes (#51946, #51995, #51408, #52314).
In the main menu the count of failed system checks (#51410, #51997) and the number of folder structure errors (#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 (#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 (#38701). For settings that expect a PHP error code as an integer, the corresponding string representation of this integer is displayed below (#51376).
For our fellow Internet Explorer 9 and 10 users, the Install Tool now looks almost identical as in other modern browsers (#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 #51965.
Old settings gone
We removed some long obsolete and not supported settings and also it's usage: GFX/im_mask_temp_ext_noloss (#52012), GFX/im_combine_filename (#52011), BE/TSconfigConditions (#52013), GFX/im_no_effects (#52010), GFX/im_imvMaskState and GFX/im_negate_mask (#52088). With this, we also officially removed support for ImageMagick 4 and 5 in the code.
A major new feature is a new "Configuration presets" section (#51454, #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 (#49760, #51379) which then lets you uninstall extensions that were tested to be broken (#50940, #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 (#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 (#51931). It now also has enhanced support while upgrading: Database selection (#51357) and "port" setting detection (#49186) - required for the mysqli PHP API. The database configuration settings are more robust (#51433) and also allow the use of empty username/password settings (#51540, #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 (#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 (#50495).
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 Distribution Management Blueprint. The following additions compose the current Distribution Management:
- Added the "Distribution Management" to extension manager (#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 (#51437). This allows extensions to ship a "ready made" page tree with content, plugins and settings.
- Enabled automatic file import for extensions (#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 (#51835).
Some other enhancements of the Extension Manager since alpha2 are:
- A new CLI command to install and uninstall extensions by key (#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 (#51776).
- Add a timestamp when downloading an extension (#50441).
- The Extension Manager icon was optimized (#51014).
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 (#51352, #51465, #51355, #51404, #51354, #51356). The Install Tool (and the Step Installer) creates Admin Users using saltedpasswords (#31407, #50612). And finally the Install Tool password itself ('installToolPassword') is also stored with a salted hash (#50613).
UX / Usability
- A nice Responsive website preview was added (#51148). The current hardcoded presets are meant to be configurable in future versions (see #51865).
- The Recycler now has a filter for timestamp, so that you can more easily find the records deleted at a certain timestamp (#52324).
- We extended the Share font family (used in the new backend headlines) with eastern european characters (#49996).
- The "Create multiple pages" Wizard now has an option to mark them with "Hide in menus" (#51017).
- The "New content element" icon is always visible if the column is empty (#51480).
- We removed the obsolete "Clear language cache" menu item (#52312)
Some visual streamlining:
- Links now underlined on hover (#50997)
- For backend modules, a new CSS class "lead" for introductions was added (#51022).
- Backend User Module: headlines (#51147), spacing (#51016), listing improvements (#50994).
- Logout button styling (#50227)
- Introduced relative line-heights (#51000)
- Fixed position of TYPO3 logo text (#51015)
- Removed gap underneath some tabs (linkvalidator #49997 and workspaces #49133)
- Better distinction of palette fields in forms (#50460)
- A new icon for Reports extension (#51993)
The category system is included since TYPO3 6.0. We worked on some new features:
\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 (#51161):
20 = HMENU
special = categories
special.value = 1,2
1 = TMENU
By the way: Did you know that our official documentation is updated while we develop? Check out the section on 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) (#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 (#47575)
- Added allWrap.splitChar on all includeJS/includeCSS properties (#51782)
- stdWrap .replace: added optionSplit-support (#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 (#34597)
- Enhanced youtube media URL wizard to support more URL variants (#51728)
Improved Code Quality
Unit / Functional Tests
We finally introduced the framework for functional testing our TYPO3 Core (#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 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 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".
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 (#51503) (might break something if you use that!)
- The pagegen.php script no longer exists (was merged into index_ts.php) (#51254)
- Go with more modern PHP technology: Use PHP lambda functions instead of create_function (#51937), remove workaround for PHP bug in validEmail() (#51386), make use of "use"-statement for BackendUtility (#51158).
- Require-statements should use absolute paths (#49991)
- Cleanup entry classes in typo3/ part2 (#49454)
- Cleanup ext:rsaauth (#51596), ext:taskcenter (#51594), ext:sys_action (#51595), ext:perm (#51597), ext:sv (#51593), ext:func (#49989), ext:info and ext:info_pagetsconfig (#49992)
- dbal: Remove obsolete CSS HTML template (#51469)
- Move TCA and ext_tables.sql from ext:cms to ext:frontend (#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 (#51134)
- Cleanup BackendUtitlity::displayWarningMessages (#51434)
- Properly double-backslash some backslashes in strings (#47198)
- Avoid double parsing of includes [tstemplate] (#50473)
- Use real boolean parameters for sL (#51143), pi_getLL (#50469), getLL (#50393) and trimExplode (#50402)
- Use new paths for tstemplate classes (#49993)
- Remove obsolete comments "revised in TYPO3 3.6" (#50409)
- Fix phpDoc comment for addStaticFile() (#51939)
- phpdoc: Use boolean/integer instead of bool/int (#50253)
On the API side, we backported the ApplicationContext concept from Flow (#49988, #50983). The context is set using the TYPO3_CONTEXT environment variable. Read more about this new API in the 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 (#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 (#47588), allowing configurations like:
colCount = 2
rowCount = 1
name = Main
colPos = 0
name = right
colPos = 1
[PIDupinRootline = 509]
The Form Extension got a "Redirect" postprocessor, allowing you to redirect to a certain page after Form submission (#38094).
A new feature of TCA: allow to disable cascading deletion of child elements (#50391): $conf['behaviour']['enableCascadingDelete'] == FALSE.
- We now have a "Missing files" report (#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 (#49685, #51818)
- Added a register:FILE_NUM_CURRENT to the FILES Content Object (#49480)
- Added fileReferenceUid to content rendering (#49535)
- Added register:titleText and register:altText when rendering file links (#44182)
Extbase / Fluid
- You can now use the @inject syntax in Extbase classes to get dependencies injected into your properties at runtime (#46598). This is already being used by Core Extensions like Extension Manager (#50482) and About Module (#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 (#51106).
- Undefined switchable controller actions are now removed (from Flexforms) (#31198).
- Some smaller changes in Fluid: In the paginate view helper the next/last button is not linked on the last page (#51395). The textfield and textarea fields get autofocus attribute (#48689).
Other notable changes
- The third party SwiftMailer library (providing our TYPO3\CMS\Core\Mail API) was updated to 5.0.1 (#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 (#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 #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
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)
The following events are planned already for the weeks to come: