TYPO3 CMS 6.2 LTS beta5 released
February 04, 2014
The TYPO3 community, contributors, and the release team prepared a new snapshot of the current development of TYPO3 CMS 6.2: beta5.
What happened since beta4?
- More Performance!
- Package Management improvements
- File Abstraction Layer: enhancements in the API and a totally restyled Drag&Drop uploader (#53829)
- Cleanups in css_styled_content, removed some obsolete stuff, read below.
- The deprecation log is by default turned off (#53653), as we decided long time ago. TYPO3 is shipped in "Production Mode".
- Updated RequireJS to 2.10 (#55543)
- Updated jQuery to 1.11.0 (#55367)
- Workspaces workpackage: functional test cases (#54855). Nice job by Olly Hader and Peter Kuehn!
- Several bugs with the Template Analyzer since beta4 were fixed (#53352, #54897, #55357)
Note that if you are using PHP 5.5 and the included opcache, you will have troubles running any current TYPO3 installation, i.e. not even able to install it using the Step Installer. There is a race condition when writing to the .php files which are then again read by our code (i.e. LocalConfiguration.php or PHP caches). See #55252 for further information and a proposed solution. As a workaround, try setting (in php.ini) opcache.enable=0. We will have that tackled by the next beta!
We removed legacy TypoScript static templates from before 4.5 (#54621). We still were shipping the templates since 3.8, which were no longer maintained or adapted to the latest changes. If there is enough interest, we could release them as an extension in TER. Apart from that, we also removed old tt_content DB fields (#55479), like text_align, text_face etc. If you need one of them, please consider adding them in an extension. The "t3lib/fonts" path was removed from the list of allowedPaths (#55433) - since this path no longer exists in 6.2.
The whole "tidy" functionality was long ago obsolete, so we dropped it from the core and moved it to an extension on TER (#55190).
The big hot topic is still performance enhancements and micro-optimizations. During the Code Sprint in Köln we had some interesting discussions on the topic, and everywhere you looked there was someone profiling something using CacheGrind or XHProf. This also resulted in several issues resolved:
- Bad performance of the sys_note ext in BE (#55375): we don't need to load the expensive sys_notes component if there are no notes on the currently being viewed page in Web>Page and Web>List: Speeds up these modules drastically!
- Use (int) instead of intval() or (integer) (#54265)
- Use $x[n] instead of substr($x, n, 1) (#55445)
- Remove strlen calls in the DatabaseConnection (#55370)
- Cleanup ExtensionManagementUtility (#55122)
- Use short version ?: in ternary operator (PHP 5.3+) (#46400)
Cleanups which make the code faster:
- Remove initialization of Module Menu (#55565)
- Remove legacy script alt_shortcut.php (#55546)
- Skip GeneralUtility::resolveBackPath() if its not necessary (#55519)
- Remove useless count function calls in stdWrap (#55372)
- Streamline usage of BackendUtility::getPagesTSconfig() (#53502)
- Avoid unnecessary de-/serialization for page cache (#55493). This change might break extensions with use the hook ['tslib/class.tslib_fe.php']['pageLoadedFromCache'] to work with the cache_data (which is now unserialized).
- Extbase's CacheService now uses the newly introduced cache group "pages" (see beta4) instead of cleaning specifically cache_pages and cache_pagesection (#55044).
- Rename cache t3lib_l10n to l10n (#55149)
The new "grouping" of caches will be further explained in the final 6.2 release notes, but some short notes information to help you understand what's going on. The reworked cache menu (the yellow flash on top of your backend) now got clearer namings and permissions (#55119, #55153). The most used flushing is "Flush frontend caches", which will remove all page related caches (thus making TYPO3 re-render the content). Second is the newly introduced "Flush all caches" which includes the frontend caches, but also extension specific caches. Now there is (by default) no way to clear the "core caches". These core caches usually don't need to be cleared on a production system, because their content only change when installing or removing extensions - where they are automatically flushed. In order to still be able to flush these caches through the backend (i.e. on a development instance), you can use this TSconfig for your user: options.clearCache.system = 1.
One "last resort" place to clear all caches is using the Install Tool (under "Important Actions"), which will clean up the caches even if something is broken (it simply deletes the tables and files).
Several improvements in the Install Tool since the last beta:
- Nice usability enhancement: "All Configuration" got a new "Expand All" functionality (#55453). Thanks to Marcel Wieser for working on that during the Code Sprint in Köln.
- Add silent config upgrader for upgrade wizard settings (#54457)
- Ignore cache configuration options when loading Install tool (#55527). That would make the Install Tool crash if APC was configured for some cache. Great finding by new contributor Stephan Großberndt!
- Styling fix for Install Tool Lock Screen in Backend Mode (#55464), first contribution of Stephan Großberndt, great!
- Show correct value for boolean options (#53963)
- Display detected fatal error in extension check (#54943)
- Improve layout of Install Tool with long lines (#55120)
- System Information shows empty values (#52712)
- Obsolete code in saltedpasswords which is not used by the new Install Tool was removed (#55446)
- Extension Manager: Hide update icon for incompatible extensions (#53576)
Package Management and Class Loader
The new package management got plenty of attention lately, and we've got several fixes and enhancements included in beta5:
- Default active extension handling in package manager (#53988). This integrates the definition of packages that should be activated at first installation and packages that are required for a minimal usable system in the package manager.
- Framework Packages (those packages shipped with the core) weren't being sorted properly, now they are (#55623). This means that core packages are loaded before other components, making sure they are available for being extended. A small issue is still left, which is if you have a core component installed in the typo3conf/ext directory. This will be tackled in #55646.
- A refactoring to ease maintainability: The package dependency sorting algorythm was extracted to a separate class (#55404)
- Cleanup Extension Manager list utility (#55562). Helmut cleaned up the EM code to make better use of the new API.
- Cleanup EXT/requiredExt handling (#55555). A left-over from the times before the package management.
Improvements in the class loader:
- Cleanup and simplify class alias handling (#55559)
- ClassLoader not working with NullBackend for legacy classes (#55517). Good finding and first patch of our new contributor Daniel Siepmann!
- Invalid class name to file path conversion (#55256)
- Prevent strings from being autoloaded (#54275)
File Abstraction Layer
Now here is our all time favorite topic: FAL! Very nice work done by Steffen Ritter with the help of the "FAL-guys" (Frans Saris, Benni Mack, Sebastian Fischer and others).
API improvements and fixes:
- Add API to retrieve the parent folder of a resource (#54226)
- Add possibility to dump file to browser (#52589)
- Add possibility to resolve a default storage (#55177). In order to achieve this, a new TCA evaluation for TCA type 'check' was added: maximumRecords (#55187)
- Remove fallback for not-indexed files (#53691)
- Fix remaining calls to FileRepository for retrieving Files (#53690)
- Extractors API change: new method "getExecutionPriority" (#54228)
- Missing signals on adding folder (#54964)
- hasProperty ignored meta data properties (#54012)
- Improve usability of Filelist "Drag-Upload" (#51361, #53829). Based on the work of the UX team (Jens Hoffmann), Frans Saris did a great job of finishing the functionality during the Code Sprint in Köln.
- File upload directly in Doc-module was missing (#55545)
- Multiple file upload in ElementBrowser didn't work (#55497)
- Deleting currently opened folder in filelist resulted in error (#54554)
- Make files visible by default (#55410)
- Clean up category references when a file is deleted (#55430)
- Do not show exeption when folder is not accesible (#51319, #51762)
- Optimize retrieval of Storages (#55186)
- Prevent permission Exception in ElementBrowser (#55439)
- Allow access to filemount directories (#55416)
- Filelist translations does not consider BE user access rights (#55012)
- Exception if directories are not readable (#51512, #53854)
- Fix fatal when processing folder does not exist (#55471)
- Delete file with missing processed file raises alert (#55428)
- Remove tca ctrl settings crdate and cruser_id for sys_file (#55462)
- Cleanup code in ElementBrowser (#53580)
- No double slash during folder canonicalization (#55420)
- Add maxitems for field "metadata" in TCA (#55411)
- Not directly FAL topic, but related: Removed the "find file" functionality in the "DB check" module (#55134)
Backend Usability and Styling
Our team and contributors worked on several styling and usability issues:
- IRRE drag and drop sorting now solved using jQuery UI instead of Scriptaculous (#51768). This fantastic work by Daniel Siepmann not only cleaned our code from one more Prototype/Scriptaculous usage (we want to get rid of them completely at some point), but also made it work consistently again across browsers, especially IE10 and IE11.
- Simplify Font-Size inheritance (CSS) (#52497). We now have less scattered "font-size" definitions and can steer the style in one central place. This lead to unified font sizes also now in the pagetree and modules menu, a font-size which was already active for the module content for some time. This change brought some other issues which were already fixed: style of page tree filter function (#55536), the disappeared extjs buttons and IE<10 pagetree labels (#55263) and the title column width in Web List module (#55406).
- Unified TCE input / TCE readonly / input (#55599)
- Unify button styles (#55319, #55510)
- HR - single horizontal rule (CSS) (#55486)
- Make use of .t3-table in ShowItem (i) window (#55482), EXT:beuser *compare (#55139), EXT:wizard_sortpages (#55131) and EXT:extension manager (#55127)
- Styled "Download" button as a button in the element information popup (#55597)
- Removed unneeded padding in page module (#55150)
- Added "action-edit-download" sprite icon (#55594)
- New higher tree icons to cope with bigger line-height (#52599)
- Styled the "add irre item" button (#53218, #55539, #55588)
- Adjust css in new content element wizard (#53895)
- tabmenu: Got rid of mouseOver/mouseOut (#55600)
- ClickMenu: Set background via CSS instead of JS, getting rid of some hardcoded CSS (#54286)
- The newRecordLinkAddTitle text (after IRRE elements) is now better translatable (#17955)
Felix Oertel is working on some Extbase performance issues, and we will soon see some patches for that. But there were some other issues solved meanwhile:
- Remove $language from Extbase custom statement (#55580)
- Extbase registers unneeded code for plugins (#55569)
- Extbase container injection test triggers PHP bug (#55538)
Import / Export
Marc-Bastian Heinrich is working on the Importer / Exporter component and has already managed to get some ground work merged. This workpackage is described in this epic: #54542.
- Category fields are not available in Functional Tests (#55560)
- Add simple functional tests for import/export (#55100)
- Create history record only with valid log uid (#55472)
Downloading and Upgrading
If you have tried some earlier snapshot of the 6.2 development branch (i.e. some alpha or beta) here are some tips when upgrading to this latest beta:
- Download 6.2 beta5 from the Download Page.
- Uncompress into your old Document Root.
- Switch the typo3_src symlink to the new package
- Use the Install Tool:
- "Important Actions" and delete the whole cache content (make sure this deletes the whole typo3temp/Caches/* files and also the content of Extbase Reflection Caches - do it manually if not working otherwise!)
- "Important Actions": Use the "Database Analyser" and let it migrate the data structure
- "Upgrade Wizards": Walk through all Upgrade Wizards
Keep in mind that the exact same steps are required when upgrading from a previous version of TYPO3. Note that you might need to upgrade the extensions to the latest state before upgrading the Core!
MD5 sum of packages
b0d57d7b63d1c88d99d3b21c9138893f typo3_src-6.2.0beta5.tar.gz ac36d0b486e1678ba920ffb75995fa07 typo3_src-6.2.0beta5.zip
Our team and contributors will continue to tackle the last missing edges. There are still some work to be done for the Workpackages, and meanwhile we will try to continue streamlining the user interface and getting more juicy performance and stability out of the code.
Our next meet-up will be the Code Sprint in Venlo / Netherland from 10th to 12th of March. This will be the last code sprint before the final release.
If it turns out necessary, we have the option to release a new beta6 at 25th of February. If nothing pressing pops up, we might also skip this release, and do a last beta shortly after the Code Sprint in Venlo.