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?
Notable changes
- More Performance!
- Package Management improvements
- File Abstraction Layer: enhancements in the API and a totally restyled Drag&Drop uploader (<link http: forge.typo3.org issues _blank>#53829)
- Cleanups in css_styled_content, removed some obsolete stuff, read below.
- The deprecation log is by default turned off (<link http: forge.typo3.org issues _blank>#53653), as we decided long time ago. TYPO3 is shipped in "Production Mode".
- Updated RequireJS to 2.10 (<link http: forge.typo3.org issues _blank>#55543)
- Updated jQuery to 1.11.0 (<link http: forge.typo3.org issues _blank>#55367)
- Workspaces workpackage: functional test cases (<link http: forge.typo3.org issues _blank>#54855). Nice job by Olly Hader and Peter Kuehn!
- Several bugs with the Template Analyzer since beta4 were fixed (<link http: forge.typo3.org issues _blank>#53352, <link http: forge.typo3.org issues _blank>#54897, <link http: forge.typo3.org issues _blank>#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 <link http: forge.typo3.org issues _blank>#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!
Frontend:
We removed legacy TypoScript static templates from before 4.5 (<link http: forge.typo3.org issues _blank>#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 (<link http: forge.typo3.org issues _blank>#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 (<link http: forge.typo3.org issues _blank>#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 (<link http: forge.typo3.org issues _blank>#55190).
CSS Styled content now uses new classnames in it's userFunc TypoScript (<link http: forge.typo3.org issues _blank>#55558). The COLUMNS "TDparams" property was not being handled (<link http: forge.typo3.org issues _blank>#54824).
Performance:
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:
Code optimizations:
- Bad performance of the sys_note ext in BE (<link http: forge.typo3.org issues _blank>#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!
- Replace JavaScriptEncoder with json_encode() (<link http: forge.typo3.org issues _blank>#54560, <link http: forge.typo3.org issues _blank>#55499)
- Use (int) instead of intval() or (integer) (<link http: forge.typo3.org issues _blank>#54265)
- Use $x[n] instead of substr($x, n, 1) (<link http: forge.typo3.org issues _blank>#55445)
- Remove strlen calls in the DatabaseConnection (<link http: forge.typo3.org issues _blank>#55370)
- Cleanup ExtensionManagementUtility (<link http: forge.typo3.org issues _blank>#55122)
- Use short version ?: in ternary operator (PHP 5.3+) (<link http: forge.typo3.org issues _blank>#46400)
SQL optimizations:
- Add Index on sys_domain (<link http: forge.typo3.org issues _blank>#55181)
- Add index to table pages (<link http: forge.typo3.org issues _blank>#55180, <link http: forge.typo3.org issues _blank>#55534)
Cleanups which make the code faster:
- Remove initialization of Module Menu (<link http: forge.typo3.org issues _blank>#55565)
- Remove legacy script alt_shortcut.php (<link http: forge.typo3.org issues _blank>#55546)
- Skip GeneralUtility::resolveBackPath() if its not necessary (<link http: forge.typo3.org issues _blank>#55519)
- Remove useless count function calls in stdWrap (<link http: forge.typo3.org issues _blank>#55372)
- Streamline usage of BackendUtility::getPagesTSconfig() (<link http: forge.typo3.org issues _blank>#53502)
Caching
- Avoid unnecessary de-/serialization for page cache (<link http: forge.typo3.org issues _blank>#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 (<link http: forge.typo3.org issues _blank>#55044).
- Rename cache t3lib_l10n to l10n (<link http: forge.typo3.org issues _blank>#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 (<link http: forge.typo3.org issues _blank>#55119, <link http: forge.typo3.org issues _blank>#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).
Install Tool:
Several improvements in the Install Tool since the last beta:
- Nice usability enhancement: "All Configuration" got a new "Expand All" functionality (<link http: forge.typo3.org issues _blank>#55453). Thanks to Marcel Wieser for working on that during the Code Sprint in Köln.
- Add silent config upgrader for upgrade wizard settings (<link http: forge.typo3.org issues _blank>#54457)
- Ignore cache configuration options when loading Install tool (<link http: forge.typo3.org issues _blank>#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 (<link http: forge.typo3.org issues _blank>#55464), first contribution of Stephan Großberndt, great!
- Show correct value for boolean options (<link http: forge.typo3.org issues _blank>#53963)
- Display detected fatal error in extension check (<link http: forge.typo3.org issues _blank>#54943)
- Improve layout of Install Tool with long lines (<link http: forge.typo3.org issues _blank>#55120)
- System Information shows empty values (<link http: forge.typo3.org issues _blank>#52712)
- Obsolete code in saltedpasswords which is not used by the new Install Tool was removed (<link http: forge.typo3.org issues _blank>#55446)
- Extension Manager: Hide update icon for incompatible extensions (<link http: forge.typo3.org issues _blank>#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 (<link http: forge.typo3.org issues _blank>#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 (<link http: forge.typo3.org issues _blank>#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 <link http: forge.typo3.org issues _blank>#55646.
- A refactoring to ease maintainability: The package dependency sorting algorythm was extracted to a separate class (<link http: forge.typo3.org issues _blank>#55404)
- Cleanup Extension Manager list utility (<link http: forge.typo3.org issues _blank>#55562). Helmut cleaned up the EM code to make better use of the new API.
- Cleanup EXT/requiredExt handling (<link http: forge.typo3.org issues _blank>#55555). A left-over from the times before the package management.
Improvements in the class loader:
- Cleanup and simplify class alias handling (<link http: forge.typo3.org issues _blank>#55559)
- ClassLoader not working with NullBackend for legacy classes (<link http: forge.typo3.org issues _blank>#55517). Good finding and first patch of our new contributor Daniel Siepmann!
- Invalid class name to file path conversion (<link http: forge.typo3.org issues _blank>#55256)
- Prevent strings from being autoloaded (<link http: forge.typo3.org issues _blank>#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 (<link http: forge.typo3.org issues _blank>#54226)
- Add possibility to dump file to browser (<link http: forge.typo3.org issues _blank>#52589)
- Add possibility to resolve a default storage (<link http: forge.typo3.org issues _blank>#55177). In order to achieve this, a new TCA evaluation for TCA type 'check' was added: maximumRecords (<link http: forge.typo3.org issues _blank>#55187)
- Remove fallback for not-indexed files (<link http: forge.typo3.org issues _blank>#53691)
- Fix remaining calls to FileRepository for retrieving Files (<link http: forge.typo3.org issues _blank>#53690)
- Extractors API change: new method "getExecutionPriority" (<link http: forge.typo3.org issues _blank>#54228)
- Missing signals on adding folder (<link http: forge.typo3.org issues _blank>#54964)
- hasProperty ignored meta data properties (<link http: forge.typo3.org issues _blank>#54012)
Usability improvements
- Improve usability of Filelist "Drag-Upload" (<link http: forge.typo3.org issues _blank>#51361, <link http: forge.typo3.org issues _blank>#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 (<link http: forge.typo3.org issues _blank>#55545)
- Multiple file upload in ElementBrowser didn't work (<link http: forge.typo3.org issues _blank>#55497)
- Deleting currently opened folder in filelist resulted in error (<link http: forge.typo3.org issues _blank>#54554)
- Make files visible by default (<link http: forge.typo3.org issues _blank>#55410)
- Clean up category references when a file is deleted (<link http: forge.typo3.org issues _blank>#55430)
- Do not show exeption when folder is not accesible (<link http: forge.typo3.org issues _blank>#51319, <link http: forge.typo3.org issues _blank>#51762)
Performance
- Optimize retrieval of Storages (<link http: forge.typo3.org issues _blank>#55186)
Bugs fixed
- Prevent permission Exception in ElementBrowser (<link http: forge.typo3.org issues _blank>#55439)
- Allow access to filemount directories (<link http: forge.typo3.org issues _blank>#55416)
- Filelist translations does not consider BE user access rights (<link http: forge.typo3.org issues _blank>#55012)
- Exception if directories are not readable (<link http: forge.typo3.org issues _blank>#51512, <link http: forge.typo3.org issues _blank>#53854)
- Fix fatal when processing folder does not exist (<link http: forge.typo3.org issues _blank>#55471)
- Delete file with missing processed file raises alert (<link http: forge.typo3.org issues _blank>#55428)
Cleanups
- Remove tca ctrl settings crdate and cruser_id for sys_file (<link http: forge.typo3.org issues _blank>#55462)
- Cleanup code in ElementBrowser (<link http: forge.typo3.org issues _blank>#53580)
- No double slash during folder canonicalization (<link http: forge.typo3.org issues _blank>#55420)
- Add maxitems for field "metadata" in TCA (<link http: forge.typo3.org issues _blank>#55411)
- Not directly FAL topic, but related: Removed the "find file" functionality in the "DB check" module (<link http: forge.typo3.org issues _blank>#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 (<link http: forge.typo3.org issues _blank>#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) (<link http: forge.typo3.org issues _blank>#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 (<link http: forge.typo3.org issues _blank>#55536), the disappeared extjs buttons and IE<10 pagetree labels (<link http: forge.typo3.org issues _blank>#55263) and the title column width in Web List module (<link http: forge.typo3.org issues _blank>#55406).
- Unified TCE input / TCE readonly / input (<link http: forge.typo3.org issues _blank>#55599)
- Unify button styles (<link http: forge.typo3.org issues _blank>#55319, <link http: forge.typo3.org issues _blank>#55510)
- HR - single horizontal rule (CSS) (<link http: forge.typo3.org issues _blank>#55486)
- Make use of .t3-table in ShowItem (i) window (<link http: forge.typo3.org issues _blank>#55482), EXT:beuser *compare (<link http: forge.typo3.org issues _blank>#55139), EXT:wizard_sortpages (<link http: forge.typo3.org issues _blank>#55131) and EXT:extension manager (<link http: forge.typo3.org issues _blank>#55127)
- Styled "Download" button as a button in the element information popup (<link http: forge.typo3.org issues _blank>#55597)
- Removed unneeded padding in page module (<link http: forge.typo3.org issues _blank>#55150)
- Added "action-edit-download" sprite icon (<link http: forge.typo3.org issues _blank>#55594)
- New higher tree icons to cope with bigger line-height (<link http: forge.typo3.org issues _blank>#52599)
- Styled the "add irre item" button (<link http: forge.typo3.org issues _blank>#53218, <link http: forge.typo3.org issues _blank>#55539, <link http: forge.typo3.org issues _blank>#55588)
- Adjust css in new content element wizard (<link http: forge.typo3.org issues _blank>#53895)
- tabmenu: Got rid of mouseOver/mouseOut (<link http: forge.typo3.org issues _blank>#55600)
- ClickMenu: Set background via CSS instead of JS, getting rid of some hardcoded CSS (<link http: forge.typo3.org issues _blank>#54286)
- The newRecordLinkAddTitle text (after IRRE elements) is now better translatable (<link http: forge.typo3.org issues _blank>#17955)
Extbase
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 (<link http: forge.typo3.org issues _blank>#55580)
- Extbase registers unneeded code for plugins (<link http: forge.typo3.org issues _blank>#55569)
- Extbase container injection test triggers PHP bug (<link http: forge.typo3.org issues _blank>#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: <link http: forge.typo3.org issues _blank>#54542.
- Category fields are not available in Functional Tests (<link http: forge.typo3.org issues _blank>#55560)
- Add simple functional tests for import/export (<link http: forge.typo3.org issues _blank>#55100)
- Create history record only with valid log uid (<link http: forge.typo3.org issues _blank>#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 <link>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
What's next?
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 <link http: wiki.typo3.org cms_codesprint_2014>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.