Upgrading to v7
If you are migrating from WordPress to Altis, check out the migrating guide here first.
To upgrade to Altis v7, edit your composer.json
and change the version constraint for altis/altis
and any local environment modules to ^7.0.0
.
In addition you will need to change the config.platform.php
property to 7.4.13
(if present).
{
"require": {
"altis/altis": "^7.0.0"
},
"require-dev": {
"altis/local-chassis": "^7.0.0",
"altis/local-server": "^7.0.0"
},
"config": {
"platform": {
"php": "7.4.13"
}
}
}
From v5 or Earlier
Note: If you are using Composer v2 you can ignore this step.
Next, remove the vendor
directory by running rm -rf vendor
or on Windows rmdir vendor
. You could also delete the directory using your code editor, Finder or Explorer.
Next run composer update
to complete the upgrade. You should commit the updated composer.json
and composer.lock
files.
When deploying to a cloud environment you should open the advanced options panel and click "Clear Build Cache" before proceeding with the deployment.
Database Updates
You will need to update your database tables using the CLI:
- On Altis Dashboard find the stack you have deployed to and run
core update-db --network
(wp
is automatically prepended) in the WP CLI tab - For Local Chassis run
composer chassis exec -- wp core update-db --network
- For Local Server run
composer local-server cli -- core update-db --network
Elasticsearch Updates
Altis v7 requires changes to the Elasticsearch mappings so you will need to reindex your content after the upgrade.
- On Altis Dashboard find the stack you have deployed to and run
elasticpress index --setup --network-wide --url=<host name>
(wp
is automatically prepended) in the WP CLI tab - For Local Chassis run
composer chassis exec -- wp elasticpress index --setup --network-wide --url=<host name>
- For Local Server run
composer local-server cli -- elasticpress index --setup --network-wide
Breaking Changes
PHP 7.4
Altis v7 requires PHP 7.4 support. Both Local Server and Local Chassis now default to using PHP 7.4. You may need to update your application to run on PHP 7.4.
The full list of breaking changes in PHP 7.4 can be found here. We recommend following the PHP update guide to get your projects ready.
ElasticPress 3.5.6
The ElasticPress dependency has been updated from 3.4.3 to 3.5.6. This update requires reindexing your content. A full list of ElasticPress changes for each release can be found here.
Limit Login Attempts Removed
The Limit Login Attempts feature has been removed in favour of rules to handle this at the infrastructure level. This avoids causing database writes during brute force attacks and subsequent performance problems.
Any related configuration should be removed.
S3 Uploads 3.0.0
The latest version of S3 Uploads has been refactored to use namespaces instead of prefixed class names and functions.
If you have any code referencing the class S3_Uploads
this will need to be updated to S3_Uploads\Plugin
. Additionally any other references to classes starting with S3_Uploads
should be updated to use S3_Uploads
as the namespace, for example S3_Uploads_Local_Stream_Wrapper
becomes S3_Uploads\Local_Stream_Wrapper
. Any functions prefixed with s3_uploads_*
have also been moved into the S3_Uploads
namespace, for example s3_uploads_enabled()
is now S3_Uploads\enabled()
.
All constants remain unchanged.
Altis Experiments
The experiments feature of native analytics has been merged into the main native analytics codebase. This means any references in your code to the namespace Altis\Experiments
should be updated to Altis\Analytics\Experiments
.
Additionally the Altis\Analytics\Experiments\register_goal()
function accepts a different set of arguments than it did in Altis v6, see the Goal Tracking documentation for full details.
Headline Features
WordPress 5.7 "Esperanza"
The latest CMS module includes WordPress 5.7. Some of the highlights of this release are:
- Improved Reusable Block editing in the block editor. Reusable Blocks can now be fully edited inline in a post and saved separately to the post they are embedded in.
- A new Robots API provides control over the robots meta tag and search engine previews
- Lazy loading for iframes
- Ability to send password reset links to users
Be sure to read the release post and in addition the full WordPress 5.7 Field Guide can be found here.
Experience Block Insights
Continuing from previous improvements to tracking the performance of Experience Blocks in v6, Altis v7 adds a dedicated dashboard for showing all Experience Blocks across the site with options for sorting by views and conversion rate.
When editing blocks warnings are shown to authors if their selected conversion goals can not be tracked, and if they are missing fallback content.
In addition there is a new, more detailed overview of Experience Block data that more clearly shows audience coverage, views and conversion rate changes over time and also detailed breakdowns of how each variant is performing compared to the fallback.
Several new REST API endpoints have been added for fetching blocks and block anlaytics data, along with a background post type that can be used for storing persistent data.
Authorship
Altis now supports adding multiple authors to posts as well as managing guest authors, either as full or partial users.
Full documentation for the Authorship feature including how to enable it can be found here.
Better Reusable Blocks
In addition to the WordPress core improvements to Reusable Blocks Altis v7 bundles several improvements to the Reusable Blocks interface. These include:
- Ability to search by block title within the editor
- Usage count
- Links to posts using a block
- Reusable Block categories
Other Features and APIs
Local Server
- Added a
mysql:
link to the output fromcomposer server db info
for software that supports the format. This allows using command or control click in the terminal to open the link. - A new
composer server db exec
command allows executing SQL from the command line without logging into the container or using some other tool - Experimental support for Mutagen.io volume sharing. This can improve speed and file synchronisation issues on MacOS and Windows in some cases
Search
- User and terms indexables can now be turned on or off via config
- Better handling for large requests such as documents during indexing
- Improved default search algorithm with a tighter scope for matches
Dev Tools
- A Webpack Asset Loader library has been introduced to make it easy to detect and load assets generated by webpack, including support for loading assets from Webpack Dev Server.
Other Changes
Altis v7 includes many other small changes, consult the changelog for full details of all the changes shipped in this release.