LTS Smooth Migration Subproject
A smooth upgrade path from TYPO3 CMS 4.5 LTS to TYPO3 CMS 6.2 LTS is one of the major goals during the development of the upcoming version.
In this article we would like to line out what the plans are and how we need your help to make it happen.
Historic perspective: Deprecation Strategy¶
In the TYPO3 CMS world we were used to be able to upgrade from one version to the next with little to no effort. By upgrading we gain new functionality but usually the "old way" still works. This is called backwards compatibility, and TYPO3 CMS users are very spoiled to have had a high grade of backwards compatibility.
But with backwards compatibility comes the downside: The code base gets larger and larger, the "old code" needs to be further maintained (for security, tests and when considering new features or change of features / interfaces) and people (developers, integrators) get lazy in adapting to newer technologies that emerge with newer versions.
This is why several years ago (during 4.3 development back in 2009) we agreed to introduce a consistent deprecation policy: If some method / function in the Core is replaced by a new one and no longer in use (by the Core itself), it is marked as "deprecated" and can be removed two releases afterwards. This was also when the "deprecation log" was introduced.
At that time we already had lots of stuff marked as deprecated since "TYPO 3.5".
Up to version 4.5 LTS (2011) we haven't really practiced the "removal" part of the strategy consistently. In fact with 4.5 LTS we decided "for the last time" to keep all deprecated methods and start removing them in 4.6 (and later) - which is also why 4.6 is called "rebase".
Now we are in the situation that 3 years later (we had 4.6, 4.7, 6.0, 6.1) lots of methods are finally really gone. So for the first time, people upgrading from 4.5 to 6.2 will face some major breaking of their sites.
Future: Migration strategy¶
Considering the above situation, we are aware that this change might come to a surprise to some, and could cause some reputation loss on long time TYPO3 enthusiasts. Thus this sub-project was founded to focus on this area, considering that many users will upgrade their systems for the first time since 4.5 LTS.
We don't want to announce an unrealistic goal with our "Smooth Migration" project. So this task-force is about providing all the tools and knowledge you need to migrate your systems.
A successful upgrade consists of:
1. migration is possible in all areas
2. migration can be planned and is quotable
3. everything works out as planned
What we plan to do¶
Upgrade Report Extension¶
We will provide an "compatibility check" extension which you can install into your TYPO3 CMS 4.5 LTS.
This extensions will generate a report about the system, lining out the topics which need to be adapter for an upgrade. This report should be as detailed as possible, so it could work as an upgrade check-list for developers and integrators.
These reports can also describe the possible solution and needed changes. This is an ideal base for calculating an upgrade (for your site or for your customer).
We currently are in the phase of designing the interfaces for the "checks" to be performed and identifying the changes over the last 5 versions of TYPO3.
We will try to provide checks for all the core topics and expect agencies and extension developers to provide even more "checks" (by implementing the check-interface) to get a more comprehensive test-suite.
Steffen Ritter will kick start the extension and will need the help of the community for implementing more checks.
Rework Migration Wizards¶
The TYPO3 Install Tool provides "upgrade wizards" to assist the work of an upgrade.
The current user interface is sub-optimal.
The implementation is not very stable:
- Long upgrade wizards could run out of your max_execution_time and abort on error. Half-run wizards may have undetermined states and may not be able to finish cleanly.
- Furthermore there are no dependencies or execution ordering possible.
- It might crash if there is an incompatible extension.
While stabilizing the install tool, the Upgrade Wizards will be reworked so that an upgrade can work out well even on big installations.
Steffen Ritter will be working on the Upgrade Wizard together with the "Install Tool" task force (Christian Kuhn and other active contributors).
There could be an extension that one can install on TYPO3 6.2 LTS which "mocks" the way older versions of TYPO3 work by providing a compatibility layer.
This extension should bring back deprecated methods. It comes with a down-side of a slower system, but could be a solution to keep some site running for three more years without going into too much trouble.
Oliver Hader is working on this extension and is glad to discuss the details with you.
Extension Developer Guidelines¶
The Smooth Migration Wiki will kick start the documentation for Extension-Developers providing best practices on how to support both Version 4.5 and 6.2 LTS or - if not possible - easily migrate their extensions.
The Installation and Upgrade Guide will be enhanced with a chapter on the "LTS to LTS" migration problems.
Ernesto Baschny will coordinate with the documentation team (Francois Suter) on this documentation topic.
Your help required¶
Many fancy extensions and functionality reside at the agencies or with freelancers in their work for their customers.
For identifying pitfalls we need as many as possible real-life test cases. For that we highly encourage volunteers to test out the new version: upgrade the system to the master branch (git) and tell us where the problems occurs and (if possible) provide the solution.
Get Agencies and users on board: Code Sprint¶
At the T3DD13 in Hamburg there will be a session targeted on upgrading, where we expect to meet lead-developers / deployment specialists of the agencies in the TYPO3 universe to discuss the problems they have and how we could tackle them as community.
Furthermore we are planning to organize a code sprint (more like a "meet up") in the time between Alpha3 and Beta1 (in July, 2013):
Agencies interested in upgrading their installations send one or two developers that know their problems and headaches. We meet up during the week (work-time) and try to collect, identify and solve these problems. Each agency would cover the costs for their developer themselves.
Sponsoring for location, food, drinks, amenities would be highly appreciated. Ingo Schmitt from Marketing Factory already offered to organize this event (thanks a lot for your help already!).
What we want to provide you with is a rock stable upgrade path, that will support you on upgrading any site. These can be automatic fixes to solve code base problems, or a report with "to-dos" or suggestions that need to be worked on manually. In the end you will be able to upgrade smoothly to 6.2 LTS.