[TASK] Set version to 6.1-dev
[Packages/TYPO3.CMS.git] / NEWS.txt
index 942e761..a1c9280 100644 (file)
--- a/NEWS.txt
+++ b/NEWS.txt
-************************************************************************
-CHANGES & IMPROVEMENTS between TYPO3 4.3 and 4.4
-(for technical details see ChangeLog)
-************************************************************************
+This document is a part of the TYPO3 project. TYPO3 is an open source web
+content management system released under the GNU GPL. TYPO3 is copyright
+(c) 1999-2012 by Kasper Skaarhoj.
 
-General
-=======
+This document contains information about TYPO3 version 6.0 has been released
+on November 27th 2012.
 
-       * TYPO3 requires PHP 5.2 now
+An up-to-date version of this document also containing links to further in
+depth information can be found here:
 
-       * The static templates for some basic designs that were part of the TYPO3 Core since TYPO3 3.5 are now moved to a system extension that is not included by default. If you are using one of these templates (GLUECK, GREEN, CANDIDATE etc) or one of the old table-based layouts for rendering content (like content (default) or plaintext rendering), make sure to install the system extension via the TYPO3 Installer.
+http://wiki.typo3.org/TYPO3_6.0
 
-       * The RTE has undergone major changes as UI components have been transformed into ExtJS widgets:
-               1. The RTE framework becomes an ExtJS Panel comprising the toolbar, the iframe, the textarea and the status bar. All components are ExtJS objects.
-               2. When BE textareas are resizable, the framework is resizable as a whole. In the FE, the framework is always resizable.
-               3. The toolbar dropdowns become ExtJS ComboBoxes.
-               4. The context menu becomes a configurable ExtJS Menu.
-               5. Color palettes become ExtJS ColorPalettes.
-               6. All dialogue windows become ExtJS windows.
+===============================================================================
+Compatibility
+===============================================================================
 
-       * The install tool is visually refactored and updated. It has now a different look&feel when accessing from outside the TYPO3 Backend and from within to be integrated better in the backend. Also, the 1-2-3 installer process is now cleaned up to be in sync with the new UI elements. There is a new hook in the installing process that allows to add or modify the existing steps in the installer to add more configuration options to a custom TYPO3 installation.
+-------------------------------------------------------------------------------
+System environment
+-------------------------------------------------------------------------------
 
-       * The task center module in the TYPO3 Backend has undergone a complete refactoring, both visually and code-wise.
+* PHP setting register_globals must be off
 
-       * Automatic version-numbers of CSS and JS files to avoid caching problems: This feature provides automatic numbering of CSS and JS files using the files modified timestamp. This way the file reference will change when a CSS or JS files is changed, and by this the browser and proxy will re-cache the file. Can be configured to include the timestamp within the the filename (before .ext) or as a parameter to the file (default).
-         If versioning is done inside the filename (by setting $TYPO3_CONF_VARS[BE][versionNumberInFilename] to true) you need this line as the first rewrite rule in .htaccess:
-               # Rule for versioned static files (see $TYPO3_CONF_VARS[BE][versionNumberInFilename])
-               RewriteCond %{REQUEST_FILENAME} !-f
-               RewriteCond %{REQUEST_FILENAME} !-d
-               RewriteRule ^(.+)\.(\d+)\.(php|js|css|png|jpg|gif)$ $1.$3 [L]
-         Developers can use this API for versioning of files in their own backend mods, by calling t3lib_div::createVersionNumberedFilename or using the core API for including files in the page renderer class.
+The bootstrap now verifies the PHP setting register_globals is disabled for
+security reasons. The script dies otherwise.
 
-       * CSS and JS are compressed now. This means that they are concatenated to a single file. This will reduce the count of request drastically, which ends up in faster loading and better performance.
-         If compressionLevel is configured ($TYPO3_CONF_VARS[TYPO3_MODE]['compressionLevel'] = 1 [1-9 for compression level or TRUE for enable]) they will be served with gzip. Be sure to uncomment the needed configuration in your .htaccess, also found in misc/advanced.htaccess.
-         
-Backend
-=======
+-------------------------------------------------------------------------------
+PHP namespaces & TYPO3 autoloader
+-------------------------------------------------------------------------------
 
-       * Skins now have to register themselves by adding an entry $TBE_STYLES['skins'][$_EXTKEY]. By default, all CSS files from subdirectories stylesheets/structure/ and stylesheets/visual/ are included, additional directories can be added by setting $TBE_STYLES['skins'][$_EXTKEY]['stylesheetDirectories'].
+* Introducing PHP namespaces
 
-       * The TYPO3 Backend was moved into an ExtJS Viewport. This is one of the first steps in a sequence to ExtJSify the complete backend. Currently this gives you the possibility to create your own left sidebar (like the pagetree) in your backend modules. Also you can extend the viewport easily with own code to create e.g. a collapsable module menu. More Informations can be found in the TYPO3 Wiki and the official ExtJS viewport documentation. See these links: http://wiki.typo3.org/index.php/TYPO3Viewport and http://www.extjs.com/deploy/dev/docs/
-       
-       * Inline Records (IRRE Elements) are now loaded on demand, which is only when they are opened. This should speed up the editing process drastically.  
+Almost every PHP class file has been modified to support PHP namespaces and
+was moved to a more meaningful location. Besides that old class names, e.g.
+t3lib_div still can be used - however it is deprecated - this works by using a
+class alias map pointing to the new namespaces class name.
 
-       * The t3editor code completion DB was updated to reflect the latest additions. Also the syntax highlighting engine was now extracted from the system extension so it can be used in other places of the TYPO3 Core as well.
+       see the files in typo3/sysext/core/Migrations/Code/ for the mentioned maps
 
+Basically the classes are now arranged in three basic components, which are
+core, backend and frontend - each of them are located in typo3/sysext/. The
+old class files (e.g. t3lib/class.t3lib_div.php) are still shipped with the
+Core and point to the new class files - this prevents PHP fatal errors if
+extension use hardcoded require_once() calls to old class names. This layer
+is deprecated as well.
 
-Frontend
-========
+       see http://wiki.typo3.org/Namespaces for further details
 
-       * Indexed search no longer puts a double wrap around search rules in the advanced search form. This may require style changes if a default indexed search is used.
+* New XCLASS handling
 
-       * The system extensions "CSS Styled Content" (css_styled_content) and "Frontend User Login" (felogin) now have new manuals that reflect the current state of the extension.
+The old way of registering XCLASSes in $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS'] is
+removed. XCLASSES must now be registered by adding a class implementation
+configuration to the $TYPO3_CONF_VARS['SYS']['Objects'] array. The key of the
+array is the class name for which you want to define an implementation class.
 
+Example:
+$TYPO3_CONF_VARS['SYS']['Objects']['TYPO3\\CMS\\Core\\Database\\DatabaseConnection'] =
+       array('className' => 'TYPO3\\CMS\\Dbal\\Database\\DatabaseConnection');
 
-Compatibility
-=============
+As with Xclasses, the implementation resolving works recursively and you are free
+to put the implementation class name into the namespace of your own extension.
+
+This means that every XCLASS registration both for core and extension classes
+will not work any more with TYPO3 6.0.
+To keep compatibility for 6.0 and 4.x, extension authors should add their class
+to both the XCLASS array and the object implementation array.
+
+-------------------------------------------------------------------------------
+PHP bootstrap and configuration
+-------------------------------------------------------------------------------
+
+* Refactored bootstrap
+
+The bootstrap changes all basic initializations for frontend, backend, CLI and
+install tool rendering. If a copied and customized version of the frontend's
+index.php was used, it has to be updated to the current index.php file of the
+TYPO3 Core sources (this applies to custom symbolic links as well).
+
+* New handling of typo3conf/localconf.php
+
+The localconf.php file is deprecated and not used in the core any longer. As
+substitution the new file typo3conf/LocalConfiguration.php is introduced that
+basically only returns the local configuration as array. The install tool and
+other installation changing core code like the extension manager now writes
+the whole file if configuration is changed. As a result, no more local
+code is allowed in this file.
+To overload the local configuration with special instance specific code that
+might still be needed, it is possible to add the php code to the optional
+additional file typo3conf/AdditionalConfiguration.php that is executed during
+bootstrap of TYPO3 after LocalConfiguration.php.
+An ugrade wizard takes care of migrating contents of the previous localconf.php
+file to the new scheme.
+
+* List of loaded extensions stored as array
+
+The list of loaded extensions in typo3conf/LocalConfiguration (key EXT/extList)
+was transferred to an array for better readability and maintenance. It is
+available with the new key EXT/extListArray. The old, comma separated value is
+still kept, but not used in the core anymore. It will be removed with a later
+version from the core.
+
+* Moved default TYPO3_CONF_VARS
+
+The default TYPO3_CONF_VARS definitions where moved from t3lib/config_default.php
+to an own file in t3lib/stddb/DefaultSettings.php.
+
+* Removed TYPO3_tables_script constant
+
+It was possible to define a different base TCA definition file by defining the
+variable typo_db_tables_script in localconf.php. This functionality is removed
+without substitution.
+
+* Restricted access of global variables in ext_tables.php and ext_localconf.php
+
+With the bootstrap refactoring the visibility of ext_tables.php and
+ext_localconf.php was reduced. The files do not run in global context anymore,
+so variables like $TCA should be accessed through $GLOBALS['TCA']. There is a
+compatibility layer, but the core can not guarantee that extensions with
+strange setup does not break.
+
+-------------------------------------------------------------------------------
+Deprecated and removed components
+-------------------------------------------------------------------------------
+
+* Deprecated methods
 
-       * ...
+Deprecated methods that were initially targeted to be removed in TYPO3 4.8/6.0
+have finally been removed. The deprecation log shows which functions were
+declared to be deprecated and will be removed in the next TYPO3 versions.
 
+* Removed classes prior to scheduled deprecation removal
 
-Development
-===========
+t3lib_BEDisplayLog: This class was used only by the old belog module, its
+functionality is now encapsulated in EXT:belog itself. Since it is very
+unlikely that the class was used by other external extensions, the file was
+removed instead of deprecating it.
 
-       * In t3lib_extMgm there is now a way to retrieve the version of an extension through the method getExtensionVersion($extensionKey).
+* Removed doNotLoadInFE flag
 
-       * t3lib_div now provides the constants LF, CR, CRLF and TAB which can be used to improve code readability.
+With TYPO3 4.3 the flag doNotLoadInFE flag was introduced in ext_emconf.php
+extension files to hint the core that an extension has no frontend
+functionality. The performance gain of this change in the frontend was minimal.
+The flag is now removed and the according extList_FE setting in localconf.php
+has no effect anymore.
 
-       * The ExtDirect Specification was implemented in the Backend of TYPO3. You can use it in your own backend modules. Details about the specification can be  found in the TYPO3 Wiki and on the ExtJS site. See the links: http://wiki.typo3.org/index.php/ExtDirect and http://www.extjs.com/products/js/direct.php
+* Removed system extension simulatestatic
 
-       * There are new hooks available for you to use: t3lib_page::getRecordOverlay, t3lib_page::getPageOverlay, several new hooks in the impexp extension, alt_doc::makeEditForm() to enable further access-restrictions, in tslib_fe::settingLanguage(), in tslib_menu for further filtering of menu items
-       
-       * The newly introduced Flash messages in TYPO3 4.3 are now also available as JavaScript messages done by ExtJS and available in the global TYPO3 backend JS space.
-       
-       * There is now a new API for sending emails t3lib_utility_Mail::mail() that serves as a proxy for the PHP mail() function, and is now the recommended way for sending emails, in order to have a central place to use a different mailing engine.
+The system extension to simulate static documents was removed from the core.
+@TODO: Issue #36025 must be solved and this note here adapted, otherwise the
+removal will be reverted.
 
-       * The debug in BE was enhanced. There is a new debug console, which will show each debug in a single tab. The console will pop up as soon a debug statement is present.
-       
-TypoScript changes
-==================
+* Removed TypoScript option noBlur
 
-       * It is now possible to configure an alternative "parameter" for filelinks when using jumpURLs
+The ancient noBlur TypoScript setting for old Browsers (Internet Explorer up to
+version 5.5) was removed without any alternatives. The setting has no effect
+anymore and can be removed from custom TypoScript objects, especially MENU.
+
+* Removed internal history cleanup feature
+
+TYPO3 will not clean the history (table "sys_history") on its own anymore.
+This can lead to a large amount of data in this table. Please consider using
+the garbage collection scheduler task to remove old entries.
+
+* Removed TypoScript resources
+
+The ancient feature to add images and other resources directly to TypoScript
+records is dropped and the handling removed. This old feature - accessible
+from the 'Info/modify' tab in the Template module - was hardly ever used
+and was partly broken.
+If this feature was still in use, it is recommended to not drop the
+resource field from table sys_template during upgrading, fix the using
+TypoScript to refer to resources located in fileadmin or similar directly,
+and afterwards to finally delete the resource field in the install tool.
+
+* Removed page hit logging functionality
+
+Writing log entries to some logfile during frontend page hit was removed.
+There are tons of solutions on the net and on server basis that can do a
+better job than the core implementation ever did. Therefor the complete
+code was dropped and all TypoScript config.stat* options are obsolete.
+
+* Removed compression of javascript files with jsmin
+
+The default compression of certain javascript files in frontend and backend
+with the jsmin library was removed from the core due to license issues. The
+code segment was substituted with a hook, so extensions can now deliver
+compression solutions if needed. In general, it is a good idea to configure
+a webserver to compress javascript and css files on the webserver with gzip.
+
+
+===============================================================================
+Changes and Improvements
+===============================================================================
+
+This will list all changes and improvements between TYPO3 4.7 and 6.0. For
+technical details see ChangeLog included in the typo3_src package.
+
+-------------------------------------------------------------------------------
+General
+-------------------------------------------------------------------------------
+
+* Extbase and fluid always loaded
+
+The core extensions 'extbase' and 'fluid' are used in core classes like t3lib
+and in several important core extensions. Extbase and fluid are now required
+extensions and always loaded.
+
+-------------------------------------------------------------------------------
+PHP namespaces & TYPO3 autoloader
+-------------------------------------------------------------------------------
+
+* PHP namespaces in the TYPO3 autoloader
+
+The autoloader can now handle fully qualified namespaced class names.
+If you use the fully qualified namespaced class name like
+'\Tx\ExtName\Foo\Bar', the autoloader will find the containing class following
+the extbase naming scheme. The mentioned class will be found if it is located
+in file 'exttensionkey'/Classes/Foo/Bar.php.
+It is also possible to use class names not following the extbase naming scheme
+by providing the "name spaced class name -> file" mapping in ext_autoloader.php.
+
+-------------------------------------------------------------------------------
+Backend
+-------------------------------------------------------------------------------
 
+* New backend user administration module
 
-Database changes
-================
+The backend user administration module was created from scratch again. The
+interface changed a lot, it is now possible to filter large groups of users
+with certain criteria and to compare specific user information. The code was
+made more flexible to easily cope with different use cases and to be more
+open for future enhancements.
 
-       * ...
+* New extension manager
 
+The extension manager was rewritten to be based on Extbase and thus to have a
+discrete controller and action API. The view utilized jQuery in the client's
+user interface and has been reduced to only contain required functionality
+for (un-)installing or configuring extensions. Uploading extensions to TER
+and directly modifying files of extensions is not supported in the Core
+anymore, but will be available as separate extension tools package in the TER.
 
-DBAL
-====
+* Introducing global categorization
 
-       * It is now possible to use the 1-2-3 installer process to configure a website running MSSQL, Oracle or PostgreSQL as TYPO3 database. TYPO3 automatically detects available database drivers and presents them in a convenient driver dropdown list.
+A new global categorization has been introduced, thus any core component and
+extension can utilize this in the backend. An API call can be used to set
+accordant TCA and to create required SQL definition changes during runtime.
 
+See the following example to create a new field categories in a table:
 
-Backend skin
-============
+       \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::makeCategorizable(
+               'myextension',
+               'tx_myextension_table',
+               'categories'
+       );
 
-       * ...
+* Support for NULL values in backend forms
 
+In some situations it might become handy to have an "undefined" value, e.g.
+for timestamp fields where "0" has the meaning of the unix timestamp origin
+back in 1970. Therefore a new TCA "eval" subtype has been introduced to support
+that - which will be visualized in the backend with a new "enable field"
+checkbox. Besides that the SQL definition must not have the "NOT NULL"
+statement for that field.
 
-Speed improvements
-==================
+Example to add the "undefined" (NULL value) to the field "myfield":
 
-       * When editing records in the TYPO3 Backend, Inline Records (IRRE Elements) are now loaded on demand, which is only when they are opened. This should speed up the editing process drastically.
+       $TCA['tx_myextension_table']['columns']['myfield']['config'] = array(
+               'type' => 'input',
+               'eval' => 'null',
+       );
 
+-------------------------------------------------------------------------------
+Administration / Customization
+-------------------------------------------------------------------------------
 
-Important bugfixes
-==================
+* Introducing the File Abstraction Layer
 
-       * ...
+The File Abstraction Layer ("FAL") is used to create accordant database records
+for each file. This was the same file can be used (referenced) in multiple
+elements without having to clone and clutter the file-system anymore. The TYPO3
+Core already makes use of the new File Abstraction Layer, but elderly extensions
+still can use the old way. Besides that, the Install Tool provides several
+upgrade wizards to migrate files to the new structure.
 
-Currently unsupported
-=====================
+       see http://docs.typo3.org/typo3cms/FileAbstractionLayerReference/
 
-       * Missing features concerning the disposal of Inline Relational Record Editing (IRRE)
-               -> Workspaces and Versioning are currently not supported
-               -> FlexForms using the TCA type 'inline' are currently not supported/tested
-               -> Import/Export (sysext tx_impexp) might not work correctly in special cases