ECE-Tools release notes

The ece-tools package is a set of scripts and tools designed to manage and deploy Cloud projects. These release notes describe the latest improvements to this package, which is part of the Magento Commerce Cloud Suite. The release notes include:

  • New features
  • Fixes and improvements

The ece-tools package uses the following release versioning sequence: 200<major>.<minor>.<patch>.

See Upgrades and patches for information about updating to the latest release of the ece-tools package.

v2002.1.4

Release date: November 19, 2020

  • Fixed an issue that caused deployment failure when the search engine specified in the SEARCH_CONFIGURATION environment variable is a value other than elasticsearch.

v2002.1.3

Release date: November 9, 2020

Infrastructure updates

  • Added ece-tools support for the read-only pub/static directory when static content is set to deploy in the build stage.

  • Added support for Elasticsearch 7.9 and Redis 6 for compatibility with upcoming Magento releases.

  • Updated the ece-tools composer.json to add a required dependency for the Magento Quality Patches package. This fixes a circular dependency that existed between the ece-tools and magento-cloud-patches packages.

Validation and log improvements

  • Added search-engine validation to ensure that elasticsearch is set for Magento Commerce Cloud 2.4 and later. If the validation fails, the deployment is stopped with a critical error message suggesting fixes for the issue. See Critical Errors, Deploy stage.

  • Added Elasticsearch validation to check the compatibility between the Elasticsearch service version and the Magento version.

  • Updated the Elasticsearch compatibility error message to show the versions of Elasticsearch that are compatible with the Magento Elasticsearch module. The error message now provides the specific Elasticsearch versions to install in your Cloud infrastructure so that it is compatible with the Elasticsearch module used by your version of Magento. See Warning Errors, Deploy stage.

  • Added warning errors 2026 and 2027 for invalid MAGE_MODE environment variable setting. The only valid value is production. Before this fix, MAGE_MODE could be set to developer without deployment errors, only to cause errors later when trying to write to read-only files. See Warning Errors.

  • Fixed validation for Redis, RabbitMQ and MySQL services to ensure these versions are compatible with the Magento version. Valid versions of these services are now written to the cloud.log.

  • Updated the cloud.log to include the concurrent requests limit for sending requests during cache warmup. This value is configured in the WARM_UP_CONCURRENCY post-deploy variable.

CLI command updates

  • Added CLI commands (cloud:config:create and cloud:config:update) to create and update the .magento.env.yaml file with a configuration that can include one or more build, deploy, and post-deploy variables. See Create configuration file from CLI.

Environment variable updates

  • Added the SKIP_COMPOSER_DUMP_AUTOLOAD build variable. Setting the variable to true stops Magento from running the composer dump-autoload command during a Magento Cloud Docker installation. The variable is only relevant to Magento Cloud Docker containers with writable file systems (created for testing and development using ./vendor/bin/ece-docker build:compose --with-test). With such installations, skipping the composer dump-autoload command prevents errors when running other commands that try to access files from a deleted generated directory.

v2002.1.2

Release date: August 5, 2020

Validation and log improvements

  • Added the schema.error.yaml file that includes all error and warning notifications that can occur during the Magento Cloud build, deploy, and post-deploy process along with suggestions for resolving the errors. The information in this file is also available in the Magento Cloud Guide. See Error message reference for ece-tools.

  • Changed the Cloud error log (/var/log/cloud.error.log) entries to JSON format to make the log easier to parse programmatically.

  • Added additional error checks to build, deploy, and post-deploy processing and improved existing checks:

    • Error code 2026–Failed to restore some data generated during the build phase to the mounted directories

    • Error code 3004–Cannot create backup files

    • Error code 102–Added additional checks for issues that occur when the env.php file is not writable

  • Added the QUALITY_PATCHES environment variable to specify one or more quality patches to apply during the deployment process. See Build variables.

v2002.1.1

Release date: June 25, 2020

  • Infrastructure updates

    • Logging improvements–Improved log tracking capability by assigning exit codes to critical deploy errors and exposing the exit codes in error message notifications and log events. See Error message reference for ece-tools.

    • Improved the process for database dumps (vendor/bin/ece-tools db-dump) and updated log messages to clarify that the database dump operation switches the application to maintenance mode, stops consumer queue processes, and disables cron jobs before the dump begins.

    • Fixed an issue to ensure that the project URL is updated correctly when deploying to Staging and Production environments. Now, ece-tools uses the URL for the route with the primary:true attribute set in the project route configuration. See Deploy variables.

    • Updated the generate.xml build scenario workflow for applying patches. Patches must be applied earlier to update Magento to fix any issues that might cause the di:compile and module:refresh steps to fail.

    • Fixed an issue in the Magento installation process that incorrectly returns the Crypt key missing error. The crypt/key value is generated automatically during the installation.

  • Service updates

    • Added support for PHP 7.4 and MariaDB 10.4.
  • Environment variable updates

    • Added the SCD_USE_BALER variable to enable the Magento Baler module for JavaScript bundling during the Magento Commerce Cloud build process. See the variable description in the build variables.

    • Added the REDIS_BACKEND environment variable to configure the Redis backend model for Redis cache for Magento 2.3.5 or later. See the variable description in the deploy variables.

  • CLI command updates

    • Updated the following Magento CLI commands with an option for more detailed logging:

      • app:config:dump
      • app:config:import
      • module:enable

      The logging level for each call is determined by the configuration of the VERBOSE_COMMANDS variable in the .magento.env.yaml file.

  • Validation improvements

    • Elasticsearch 7.x compatibility checks–Updated Elasticsearch validation for Elasticsearch 7.x software compatibility checks.

    • Updated service version and EOL validation checks–Updated validation to check installed service versions against Magento 2.4. requirements.

    • Fixed a validation issue so that the following post-deploy warning message displays only if the post-deploy hook configuration is missing from the .magento.app.yaml file:

      1
      
      Your application does not have the "post_deploy" hook enabled.
      
    • Added validation for Zend Framework dependencies–Added composer dependency validation for the Zend Framework which has migrated to the Laminas project. If the required dependencies are missing, the following error message displays during the build process.

      1
      2
      3
      4
      
      Required configuration is missing from the autoload section of the composer.json file.
      Add ("Laminas\Mvc\Controller\Zend\": "setupsrc/ Zend/Mvc/Controller/") to
      the `autoload -> psr-4` section. Then, re-run the "composer update" command locally, and
      commit the updated composer.json and composer.lock files.
      

      See Verify Zend Framework dependencies.

    • Added validation for env.php file and data–Added checks for the env.php file and data during the Magento install and upgrade process.

      • If the env.php file is missing from the Magento installation, and the crypt/key value is not specified in the .magento.app.yaml file, the deployment fails with the following notification:

        1
        
        The crypt/key key value does not exist in the ./app/etc/env.php file or the CRYPT_KEY cloud environment variable``Missing crypt key for upgrading Magento`.
        
      • If the Magento installation does not include the env.php file, or the configuration contains only one cache type, the cron:enable command runs during the upgrade process to restore the file with all cache_types. The following notification is added to the log:

        1
        2
        
        Magento state indicated as installed but configuration file app/etc/env.php was empty or did not exist.
        Required data will be restored from environment configurations and from the .magento.env.yaml file.
        

v2002.1.0

Release date: February 6, 2020

  • Infrastructure updates

    • Added separate package for Magento Cloud Docker–Decoupled the Docker package from the ece-tools package to maintain code quality and provide independent releases. Updates and fixes related to ece-tools are managed from the magento-cloud-docker GitHub repository.

    • Updated patching capabilities–Moved the Magento patching functionality from the ece-tools package to a separate magento-cloud-patches package. During deployment, ece-tools uses the new package to apply patches. See Magento Cloud patches release notes.

    • Updated Composer dependencies–Updated the composer.json file for Magento Commerce Cloud with a dependency for the magento/magento-cloud-docker package. Now, ece-tools includes dependencies for all packages in the Magento Commerce Cloud Suite. These packages are installed and updated automatically when you install or update ece-tools.

  • Support for scenario-based deployments

    • Now you can customize the build, deploy, and post-deploy processes using XML configuration files to override or customize the default configuration.

    • Changed the hooks configuration in .magento.app.yaml–We updated the hooks configuration format to support scenario-based deployments. The legacy format from earlier ece-tools 2002.0.x release is still supported. However, you must update to the new format to use the scenario-based deployment feature. See Scenario-based deployments.

    Before updating to ece-tools version 2002.1.0, review the backward incompatible changes to learn about changes that might require you to update Magento Commerce Cloud project configuration or processes.

  • Service updates

    • Added support for PHP 7.3.

    • Added support for RabbitMQ 3.8.

    • Added validation to check installed service versions against the EOL date for each service. Now, customers receive a notification if a service version is within three months of the EOL date, and a warning if the EOL date is in the past.

    • Fixed an Elasticsearch configuration issue to ensure that the correct Elasticsearch settings are configured in all environments.

    See Service versions for a list of services used in Magento Commerce Cloud and their version compatibility with the Magento Cloud template.

  • Environment variable updates

    • Extended the functionality of the WARM_UP_PAGES environment variable to support cache preloading for specific product pages. See the expanded definition in the post-deploy variables topic.

    • Added the ERROR_REPORT_DIR_NESTING_LEVEL environment variable to simplify error report data management in the <magento_root>/var/report/ directory. See the variable description in the build variables topic.

    • Removed the SCD_EXCLUDE_THEMES, STATIC_CONTENT_THREADS,DO_DEPLOY_STATIC_CONTENT, and STATIC_CONTENT_SYMLINK environment variables. See Backward incompatible changes.

    • Fixed an issue in the Elastic Suite configuration process so that the default configuration is overwritten as expected when you configure the ELASTICSUITE_CONFIGURATION deploy variable without the _merge option.

  • CLI command updates

    • New cron command–You can now manually manage cron processing in your Magento Commerce Cloud environment using the cron:disable and cron:enable commands. Use the disable command to stop all active cron processes and disable all Magento cron jobs. Use the enable command to re-enable cron jobs when you are ready. See Disable cron jobs.

    • Improved error reporting–Added better logging for Magento CLI command failures that occur during ece-tools processing.

    • Remove deprecated build commands– Removed the following build commands: m2-ece-build, m2-ece-deploy, m2-ece-scd-dump, and renamed ece-tools docker commands to ece-docker. See Backward incompatible changes

  • Removed the deprecated build_options.ini file and added validation to fail the build if the file exists. Use the .magento.env.yaml file to configure build options.

  • Fixed an issue that caused the build process to fail when the config.php file is empty.

2002.0.23

Release date: February 27, 2020

  • Fixed a compatibility issue with ece-tools 2002.0.x releases that prevented on-demand static content generation from completing successfully in Magento production mode.

Older releases

See the release notes archive for version 2002.0.22 and earlier.