2002.0.13
Changelog (35 related PRs)
-
Enable zero-downtime deployment—Now Magento Cloud queues requests with required database changes during deployment and applies the changes as soon as the deployment completes. Requests can be held for up to 5 minutes to ensure that no sessions are lost. See Static content deployment options to reduce deployment downtime on Cloud.
-
Docker Compose for Cloud—Made the following improvements to the Docker setup and configuration process:
- Added a command—
docker:config:convert
to convert PHP configuration files to Docker ENV format to simplify environment configuration. Now, you copy the PHP configuration files to the Docker directory and convert them to Docker ENV files. - The Magento Cloud installation process now supports deploying to both read-only and read-write file systems to more closely emulate the Cloud file system.
- Redis service support—Added a Redis image, which is deployed to a Docker container and configured automatically to work with your Docker installation.
- Varnish service support— Added a Varnish image, which is deployed automatically to a Docker container. After deployment, you can manually configure Varnish following Magento best practices.
- Secure site access—Added SSL support to access your Magento store and Admin panel.
- Added a command—
-
Improved ECE-Tools extension support—Downgraded the minimum version requirement for the
guzzlehttp/guzzle
package in the ECE-Toolscomposer.json
file to version 6.2 so that the ECE-Tools package is compatible with more extensions. -
Apply custom changes to your Magento application during the build phase—We split the build phase into two separate processes so that you can use hooks to apply custom changes to the generated static content before packaging the application for deployment. The build:generate process generates code, applies patches, and generates static content. The build:transfer process transfers the generated code and static content to the final destination.
-
Environment configuration checks—Improved validation of the environment configuration to warn customers about version incompatibilities and configuration errors before building and deploying Magento Cloud.
- Added version-specific validation to identify unsupported or deprecated environment variables and values.
- Added an Elasticsearch compatibility check to warn users about Elasticsearch configuration issues. Now, the deployment fails if the version of Elasticsearch service on the server is incompatible with Magento. Previously, the deployment succeeded even if the Elasticsearch version was incompatible, which caused product catalog issues after site deployment.
You can resolve the incompatibility by submitting a Support ticket to upgrade Elasticsearch to a compatible version, or change the Magento configuration to specify a compatible version of the Elasticsearch PHP client.- For Magento version 2.1.x to 2.2.2, upgrade Elasticsearch to version 2.4.
- For Magento version 2.2.3 and later, upgrade Elasticsearch to version 5.2.
- If you have Elasticsearch 1.x or 2.x and do not want to upgrade, update the Magento Elasticsearch PHP client version requirement in
composer.json
to"elasticsearch/elasticsearch": "~2.0"
.
- Improved validation of environment variables to identify configuration settings that can cause conflicts during the build, deploy, and post-deploy phases. For example, a warning message displays during the install and upgrade process if the global setting for static content deployment conflicts with settings on the build or deploy phase.
-
Environment variable updates—Changed the following environment variables:
- SKIP_HTML_MINIFICATION global variable—Changed the default value to
true
to enable on-demand HTML content minification, which minimizes downtime when deploying to Staging and Production environments. This configuration is required for zero-downtime deployments. - CLEAN_STATIC_FILES deploy variable—Added the capability to manage the clean static files processing for static content generated during the build phase based on the
CLEAN_STATIC_FILES
environment variable setting. Previously, static content files generated during the build phase were always cleaned.
- SKIP_HTML_MINIFICATION global variable—Changed the default value to
-
Logging—Made the following changes to improve log messages and reduce log size:
- Deployment failure log entries now include the command output from the operations that cause the failures even if your environment configuration does not specify debug level logging. See
MIN_LOGGING_LEVEL
. - Added logging for deployment failures that occur when generated factories required by some extensions cannot be generated correctly because the file system is in a read-only state.
- Reduced the deploy log size and fixed formatting issues caused by setup commands that use the interactive progress bar.
- Eliminated unnecessary verbosity and updated the priority levels for some log statements.
- Deployment failure log entries now include the command output from the operations that cause the failures even if your environment configuration does not specify debug level logging. See
-
Cron-specific fixes—
- Changed the default cron job configuration settings for history lifetime from 3d (4320 min) to 1h (60 min) to prevent performance issues and deployment failures that can occur when the cron queue fills too quickly.
- Improved the cron job management process during the deploy phase to prevent database locks and other critical issues. Now, all cron jobs stop during the deploy phase and restart after deployment completes.
- Fixed an issue with the locking mechanism for scheduling consumers launched by cron jobs in Magento versions 2.2.0 and later to prevent cron jobs from launching duplicate consumers.
-
Fixed an issue with the static content compression process (
gzip
) that causednot overwritten
andno such file or directory
errors when referencing the compressed file during the deployment process. -
Fixed an issue that prevented the
php ./vendor/bin/ece-tools config:dump
command from removing redundant sections from theconfig.php
file during the dump process if the store locale is not specified. Now you can easily move your configuration files between environments. After you update to ECE-Tools v2002.0.13, regenerate olderconfig.php
files with the improvedconfig:dump
command. -
Fixed an issue that caused an error during the deploy phase if the route configuration in the
.magento/routes.yaml
file redirects from an apex domain to awww
domain. -
Fixed an issue with the
_merge
option for theSEARCH_CONFIGURATION
variable that caused incorrect merge results if you do not include theengine
parameter in the updated.magento.env.yaml
configuration file. Now, the merge operation correctly overwrites only the values you specify in the updated.magento.env.yaml
without requiring you to set theengine
parameter. -
Fixed a Redis configuration issue that incorrectly enabled session locking for Magento versions 2.2.1 and later, which can cause slow performance and timeouts. Now, session locking is disabled by default. The issue was caused by a change in the default behavior of the
disable_locking
parameter introduced in v1.3.4 of the Redis session handler package. See colinmollenhour/php-redis-session-abstract package.