Neos 3.0 and Flow 4.0 will be our biggest release to date in terms of core code changes: in order to complete the transition from the project's original family name "TYPO3" to the new one, "Neos", every single line of code had to be reviewed and potentially adjusted. While there are obvious aspects, such as the logo and mentions of "TYPO3" in labels and comments, we also had to adjust a lot of code to the new vendor namespace "Neos".
In addition to the vendor namespace change, we also took the opportunity to rename classes and namespaces like "Object" and "Resource" in order to comply with the new reserved keywords which have been recently introduced with PHP 7.0.
Migrating Third-Party Packages
At this point we would like to ask all package developers to start migrating their Flow and Neos packages to the new versions. In order to provide maintained versions which are still compatible with Neos 2.3 / Flow 3.3, we suggest that you work with Git branches and keep on releasing bugfixes for versions of your package for 2.3/3.3 and 3.0/4.0 separately (as an example, here's a package which already features two branches and separate releases for Flow 3.x and Flow 4.x).
If you need any help migrating your packages, please let us know in the Neos Plugin Development category in our forum.
Migrating Real-World Neos Projects
Since we literally touched every line of code in Neos and Flow, a few bugs may have slipped in during the process. That's why it is especially important with this release to test the codebase and migration scripts ahead of time.
If you want to give the Neos Team a big Christmas present, please take one of your real-world Neos or Flow projects and try to migrate them to Neos 3.0.x-dev and Flow 4.0.x-dev respectively. Please report any problems or suggestions for improving the upgrade process to the Neos issue tracker or the Flow issue tracker.
You can check the list of known issues and topics we are still working on by having a look at the release board on Github.
10 General steps for migrating a Neos project
- Update your composer.json so that the requirements look similar like in the Neos Base Distribution (needs to be adjusted in the root composer manifest and in the Site package)
- Don’t forget to also update the “scripts” section in your root composer.json to the new namespace and to fix the type in the package composer.json files (from "typo3-flow-*" to "neos-*")
- Remove the files “flow” and “flow.bat” as well as the file “Web/index.php”, so that they will be reinstalled by Composer
- Run composer update
- Remove the cache by deleting all folders in “Data/Temporary/”
- Remove the Neos sub-routes configuration in your global “Configuration/Routes.yaml”. If you only had the Neos sub-routes in there, remove the file completely.
- Adjust any custom Caches.yaml to the new namespace
- Run “./flow core:migrate” to apply the core migrations to your packages. This will modify your package's code and commit (but not push) them to its respective Git repository. You can then inspect these commits to see what the migration did and if any errors slipped in.
- Manually change “TYPO3” to “Neos” in your Settings.yaml files to make the database credentials available again.
- Run the database migrations with the command “./flow doctrine:migrate"
The exact release date for Neos 3.0 and Flow 4.0 (stable) isn't set yet, but if everything goes well during this testing phase (and if you send us your feedback) we plan for the releases to be generally available by the end of January 2017.
At this point I'd like to thank everyone who was involved in getting this release so far! And a special thank you goes to Johannes Steu, who - despite having joined the Neos Team only recently – was brave enough to step in as a release manager and did a fantastic job coordinating and reviewing much of the work which went into this release. Several hundreds of hours have been invested into these new versions, and I'm delighted how all this can be accomplished by a growing group of volunteers.
2017 will start off with exciting new announcements and releases. The Neos Team is very much looking forward to continue this adventure and we are happy that you are a part of it!
A merry Migration and a Happy Neos 2017!