TYPO3 CMS 6.2 LTS beta1 released
October 15, 2013
The TYPO3 community, contributors, and the release team are proud to introduce to you a new snapshot of the current development of TYPO3 CMS 6.2: beta1.
With this snapshot being released, we are now in a phase called Feature Freeze: We added all features to the product that we could for this release. Now the stabilizing phase begins. This doesn't mean we will do just bug fixing (we will focus on that of course), but we will also work on stabilizing the API, enhancing the performance and further improving the user experience.
The next step will be the release of beta2 planned for November, 12th.
What's new since alpha3?
Alpha3 was released not so long ago (October 1st), and you might remember the huge list of new features we introduced with it. Well, meanwhile the team and the community surrounding it worked hard to finish up plenty of nice new features.
We have had a Code Sprint in Hannover which was dedidated to this last spurt heading to the feature freeze today. We managed to "merge" (integrate into the core) 72 new patches during these four days of code sprint, including 22 new features (375 files changed, 16513 lines inserted, 4015 deleted).
These are the highlights of beta1 amongst the dozens of other new features:
- Package Management: TYPO3 CMS now supports the concept of "Packages" (the TYPO3 Flow ones) and Composer. Extensions as we know them are a special kind of these packages.
- Responsive Image Rendering: Fully configurable system for frontend rendering of responsive images.
- Backend Layout Data Providers: Extensions can now provide their own "Backend Layouts". Let the "theming" begin!
- Core Updater: The Core is now able to update itself (Patchlevel / Security fixes).
- File Metadata Localization: FAL now allows you to localize metadata of files.
Please note that the typo3_src package can now be installed without further other dependencies (makes the Dummy and Blank Packages obsolete). Simply uncompress the file in your Webhost and point your browser to it. The Install Tool will start with the Step Installer.
If you upgrade an existing TYPO3 site (i.e. 6.0 or 6.1 or an earlier alpha version of 6.2), proceed as usual:
- Download the package from the Download Page and uncompress it on your Webserver, or update your GIT working copy to tag "TYPO3_6-2-0beta1".
- Adapt the "typo3/" and "index.php" symlinks to point to inside the new typo3_src.
- Create an empty typo3conf/ENABLE_INSTALL_TOOL file.
- Point your browser to your installation, it should redirect you to the Install Tool.
- Login and go to Important Actions and use the Database Compare and let it CREATE and CHANGE existing fields (do not tick the checkbox to "DELETE" fields) yet!
- Go to the Upgrade Wizard and click through the available ones.
- That's it! Login to the Backend and have fun.
TYPO3 CMS now supports the concept of "Packages" (the TYPO3 Flow ones) and Composer (#47018, #52737). Extensions as we know them are a special kind of these packages, and they can provide their composer.json file with dependencies (see the core extensions: #52740, #52831). Everything is backwards compatible. The Extension Manager still works as usual, updates the packages information, but has no direct composer support yet.
We worked hard to make the migration as smooth as possible. On first hit of your updated site, you will be redirected to the Install Tool. Please simply login to it (after creating the ENABLE_INSTALL_TOOL file), and the silent updater will magically create a PackageStates.php file in your typo3conf which will replace the old Extension list from LocalConfiguration.php (which will be backed up as LocalConfiguration.beforePackageStatesMigration.php for your convenience).
Read more about in this project, it's goals and further plans in the Blueprint on Packagemanager.
This is a very intrusive major new feature, and it has already received lots of bug fixes (#52753, #52766, #52754, #52767, #52847, #52814, #52779) and improved Windows support (#52774). Please don't let yourself get frustrated with it if you find another bug or perceive some instability with it: Contact us or report your findings through the Issue Tracker. Thomas Maroschik did an awesome job here and is available during the next time to work on that area further.
The Core is now able to update itself throught the Install Tool (#52547, #52618). This allows the site administrator to quickly check if there are patchlevel updates available and install them with a click. Since this feature is not needed by some hosting providers which have their own updating mechanisms, it can be disabled through an env-variable (#52639).
- Remove misleading password hint (#52808)
- Remove unused TYPO3_CONF_VARS['FE']['logfile_dir'] (not used since TYPO3 6.0) (#52786)
- Improve message for the RedirectLoopException (#52703)
- Correct exception class inheritance (#52757)
- Add autofocus to pass input in install (#52523)
- FolderStructure basic link support (#52401)
- Load defaultConfigArray just once in AllConfiguration (#52555)
- Show not empty databases in install tool (#52585)
There are still some usability tasks pending to get the Install Tool finished, we'll be working on that during the next weeks.
File Abstraction Layer
On the goal to provide a good migration path from users coming from TYPO3 4.5 and DAM installations, we identified during the Agency Code Sprint several missing features which we now integrated:
We worked on a concept to get FAL records translatable. We kindly appreciate all the perseverance and dedication of Steffen Ritter working on these tasks and hope for more support from interested contributors in the next period to further stabilize this area.
First the sys_file table was split to sys_file_metadata (#52726). If you have already FAL metadata stored in your database, you need to run the Upgrade Wizard to migrate the data to the new format after creating the necessary tables (with the Database Compare Tool). A minor FAL architecture clean-up (#51528) and adaptation of the IndexerService (#52765) were part of this work. Finally the sys_file_metadata was made translatable (#52816) and the Frontend Rendering was enhanced to support this (#52818).
What is still pending and will be further worked
- The placeholder feature in the backend form should work recursively in order to display proper placeholders for FAL records now (#52630).
- The Indexing API will also receive some more love and an addition to an ExtractorInterface, so that extensions will in future be able to provide their own "extracting tool-chains" to bring meta data into FAL records (#52841). The concept is already published as a Blueprint and a WIP patch is available for reviewing.
A new (optional) extension called filemetadata provides a set of standard asset metadata (#52719) - as known from DAM. Just install this extension and the new fields will be created in the database and are available in the backend. The FAL team will work further on tuning this important set of standard metadata. Of course extensions are allowed to further expand this list, but the ones provided by the core allow everybody to rely on them being available on all systems.
An administrator can now configure a backend user and group with fine grained file permission which were previously only available through UserTS configuration (#52716).
The FAL Drivers API was enhanced slightly, making getFileInfo more versatile and performant (#51515). Please note that this changeset modified the signature of the Driver class. This only affects PHP 5.3 but needs adjustment in existing (non-core) drivers.
TypoScript / Frontend
Responsive Image Rendering
The Frontend is now able to render images in different responsive variants (#49723, #50075). The configuration is very flexible allowing the integrator to choose the rendering mode of their liking, and is future proof due to this flexibility. This project was kickstarted during the Developer Days 2013 in a Workshop. Thanks a lot to all participants for this iniciative and the very good result we now have in the Core at the end.
- TypoScript now allows for file inclusion (i.e. <INCLUDE_TYPOSCRIPT: source"../misc/other.ts" ...) so that it's easier to include other local files recursively (#52018).
- The CONTENT cObject now allows to fetch records that have no translation parent (using a new option "includeRecordsWithoutDefaultTranslation": #24005).
- There is a new TypoScript condition to detect the ApplicationContext (i.e. [applicationContext = Production*]) (#50132).
- The FILES content object now has begin and maxItems options (#52632).
- For performance reasons, the Content-length header is now enabled by default in the frontend (config.enableContentLengthHeader: #19732).
- Indexed Search now has a stdWrap for the list of results #16386 (this is most probably the oldest feature request implemented in beta1: from our old fellow Masi 7 years ago: now finally merged)
Backend Layout Data Provider
Extensions can now provide it's own "Backend Layouts" through an API called BackendLayout/DataProviderInterface (#37208). With this, backend layouts are no longer limited to live in the database table "backend_layout" but can also be stored in files (making them easier to deploy and share). Extensions that provide "Theming" to TYPO3 (i.e. EXT:themes) will make very good use of it soon!
# Hide module groups "file" + "help"
options.hideModules = file, help
# Append configuration to hide module "func" and "info"
options.hideModules.web := addToList(func,info)
# Hide module BELogLog
options.hideModules.system = BelogLog
Enhancing the usability, elements where you can select multiple records now have a filter on top (#49739).
A new hook allows extensions to provide information on top of the page module (#52579).
Version fields in list view are now only shown if version is loaded (#52444).
In the Scheduler, there is now a description-field to allow differenciate same tasks with different parameters textually (#52696). Scheduler-jobs can now be grouped (#52695). For that, simply create records of the type "Scheduler task group" on the root of your instance and assign the existing tasks to these groups.
1780.label = My Device
1780.height = 145
We are running an experiment of a slightly larger font size in the backend now (#52501). You might notice that there are still some inconsistencies which we will work out during the next few weeks.
We introduced the table.t3-table class and it's styling (#52558) and started using it throughout the Core (#52568, #52566, #52564, #52565, #52561, #52560, #52445). This work is not complete yet, but is a start to unify all the different "tables" used throughout the Backend.
Usability is an area which we will still focus after feature freeze, so expect some changes still until beta2. The UX Team is working together with the Core Developers on that area.
Extbase / Fluid
- Fluid now supports "Fallback paths", a very useful backport of a Flow feature (#39868).
- The uriBuilder now honors POST arguments for addQueryString (#11441).
- Logging API: A work in progress was not finished yet to replace "devLog" and other core logging calls with the Core Logging API (see for example #52694). We decided that we first will need to draft and approve in the team a concept on how this should look like before voting on an implementation. This task will be followed up now during the beta phase and hopefully will bring some final implementation until beta2.
- Caching Performance: The cache_hash data now serializes data internally (#52648). If you have used storeHash/getHash before, you no longer need to serialize your data before passing it to this function. This avoids "double serialization" and allows the caching framework to make use of igbinary_serialize if available. The core was changed accordingly, so this will result in some speed improvement in several areas.
- A PHP Enumeration type was introduced to provide a pattern for avoiding class constants in future (#52707)
- The API for the ApplicationContext was renamed (#52678)
- Centralize jQuery libraries: We moved multiple copies of jquery from diverse system extensions into one central location (typo3/contrib/jquery) (#52442, #52844). Please note that this is not an official API from the core but for core internal use only (by system extensions). In future TYPO3 releases, we expect to provide a rebust and generic API for others to use.
- The "all workspaces" tab is now enabled for all users in the workspace module (#50223). It is also now possible to extend the workspace module through a nice API (#50219).
- The newly introduced Enumation API was used to make the t3ver_state stats "readable" (#52551).
- Let workspace users decide whom to send notifications (#50224)
- Transfer query parameters in preview (#31996)
Testing and Quality Assurance
We added a bunch of new unit tests with the new additions, and cleaned up and optimized the existing ones. Through Travis CI we now execute 6.247 unit tests after every commit, in three different environments (PHP 5.3, 5.4, 5.5).
Christian Kuhn - leader of the quality assurance team - is working on further optimizing the testing infrastructure. Check out the Blueprint describing these plans.
The documentation module got more stabilization fixes and visual enhancements.
The activity in our project lately is so high, that Ohloh site has tagged TYPO3 CMS project with "Very High Activity". Also interesting and in line with the openess of our project is the amount of first time commiters to the Core. Quoting: "Over the past twelve months, 167 developers contributed new code to TYPO3 CMS. This is one of the largest open-source teams in the world, and is in the top 2% of all project teams on Ohloh.". Great support from everyone, give yourselfs a round of applause! Thanks!
What's to come?
Beta1 is for sure a "big release" and will bring not only many new enhancements, but some additions which might come with some drawbacks. The Packaging API and the changes in the File Abstraction Layer are the most prominent ones. Please consider that huge amount of work, reviewing spirit and effort is spend on working on these topics: for free! We know that there are still glitches and improvements to be done, the team is happy to share knowledge in a constructive discussion with you. This is not the final "release yet", and together with your help we will be able to finish it as a very solid and modern product that will last for the next three years.
The roadmap describes the next steps:
- Beta2: November, 12th
- Release Candidate: around December, 3rd
- Final Release: December, 10th
Thanks again to the huge amount of support, help, inspiring words and enthusiasm around this project. Let us rock on the last few steps together!
MD5 Checksum of download files
b8f4a35d01706ec0b0fc0d3c4d80d8c1 typo3_src-6.2.0beta1.tar.gz<br/> 1b7cddabe643f4f0f7492b0f68a87c52 typo3_src-6.2.0beta1.zip<br/>