Upgrade Instructions 8.2 → 8.3
By using composer, you can update an existing installation to a specific version, without having to create a new project.
For further information on what changed, please take a look at the changelogs (Neos, Flow)
#Update Instructions
Before making substantial changes, make sure you create a backup of the database and files!
cd /installation-root/
# Update the core package dependencies
composer require --no-update "neos/neos:~8.3.0"
composer require --no-update "neos/neos-ui:~8.3.0"
# Update optional package dependencies (if installed)
composer require --no-update "neos/demo:~8.3.0"
If you have development packages in your composer manifest, update them to match as well:
# Update development packages (if installed)
composer require --no-update --dev "neos/buildessentials:~8.3.0"
Make sure to update every required neos package to ~8.3.0! Otherwise there can be an error during updating, because of version conflicts.
Optional: Updating Neos UI plugin build dependency
With Neos 8.3 we moved the logic of @neos-project/neos-ui-extensibility
to @neos-project/neos-ui-extensibility-webpack-adapter
, so you will need to require this package instead.
Please make the following adjustments in your package.json
for your Neos UI Plugin:
- Rename
@neos-project/neos-ui-extensibility
toneos-project/neos-ui-extensibility-webpack-adapter
and pin it to~8.3.0
. - If you have
@neos-project/build-essentials
required, you should remove it, as it's not needed anymore and abandoned. - Run
npm install
oryarn
to install the updated dependencies. - Rebuild the plugin as usual with
NODE_ENV=production neos-react-scripts build
.
"devDependencies": {
- "@neos-project/neos-ui-extensibility": "^8.2.0",
- "@neos-project/build-essentials": "^8.2.0"
+ "@neos-project/neos-ui-extensibility-webpack-adapter": "^8.3.0"
}
After completing these steps, your package should be upgraded to the latest version of the Neos UI and ready to use. Thank you for using the Neos project!
#Breaking changes
Flow
Password hashing strategies: If you implemented PasswordHashingStrategyInterface
, take note that type declarations will be added for the next major version (9.0) so adjust your implementation to use the added type declarations like in the core implementations. See pull request.
Deprecation:
Neos
Fusion Parser & FusionService: The method Neos\Fusion\Core\Parser::parse()
was deprecated. You should update it to Neos\Fusion\Core\Parser::parseFromSource()
. The external API of the Neos\Neos\Domain\Service\FusionService
was not changed. In the unlikely case that you extended this service and used internal methods, you probably will have to adjust your code. See pull request.
PluginViews: The concept of PluginViews which means rendering specific views of a plugin on a different document was deprecated. It has been used in very few cases and causes trouble in maintenance, and thus will be removed without replacement in Neos 9.
Neos UI
Importing PlowJS in Neos UI plugins: PlowJS is being removed from the Neos UI codebase, as the JS world moved on and now strict typing with Typescript is important, and also modern JavaScript allows us to replace Plow's $get
safe access on nullable values via optional chaining. This restructuring will affect Neos UI plugins in the future, as we will remove plow JS from the Neos plugin API in Neos 9.0. For now, we deprecate the use and log a warning in dev context. See migration.
Neos UI components @neos-project/react-ui-components: With this pull request the CSS build stack of the Neos UI was modernized, due to this, it became possible to make the package react-ui-components easier to use: Developers requiring the NPM package will no longer need to worry about the required CSS preprocessing from the sources (lowering nesting, applying css-modules and having the required CSS variables in the environment). A prepack script will build the CSS to native CSS, take care of CSS modules and also inserts the CSS variables as hard-coded values. The distribution will also contain source maps and TypeScript typings. This means that for consumption of the components, you will only need a simple bundler to load the vanilla CSS - nothing else. It is advised to read the new README before updating, so you can identify any other changes.
Flow
Session garbage collection: With this pull request, the garbage collection was moved to the session manager. The method SessionInterface::collectGarbage
was deprecated and will be removed with 9.0. SessionManager::collectGarbage
should be used instead.
Neos UI Plugins
Be aware of any Neos UI plugins, that have not been rebuilt since Neos 8.2 as they might not work. See Neos 8.2 upgrade instructions for further details.
#Finish the update
# Update the packages
composer update
# Flush the caches
./flow flow:cache:flush --force
./flow flow:session:destroyAll
# Run code migrations, as needed for any packages that need to be
# migrated. Rule of thumb:
#
# - any 3rd party packages that still install fine at least claim
# to work, and should be updated by their maintainer(s).
# - your own packages should always be treated with a migration,
# at least it marks that as done.
#
./flow flow:core:migrate <Vendor.PackageName>
# Run database migrations
./flow doctrine:migrate
# Publish resources
./flow resource:publish
#Troubleshooting
If you run into trouble with Neos content or resources, the following may help:
# If you get error messages when running Flow CLI commands:
rm -rf Data/Temporary
# If you experience issues with pages not working, try
./flow node:repair
# If you experience issues with resources, thumbnail or assets, try
./flow resource:clean
./flow media:clearthumbnails