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 Cloud Suite for Commerce. 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.7

Release date: July 29, 2021

Configuration updates

  • Added support for Composer 2.0.

  • Updated composer requirements for symphony/console–Updated the ece-tools composer.json version requirements for the symphony/console package to fix an issue that caused the di:compile commands to fail with the following error: Incompatible argument type: Required type: int. Actual type: string

  • Updated the end-of-life software checks (eol.yaml) to include Elasticsearch 7.9.x.

v2002.1.6

Release date: April 20, 2021

  • Redis authentication credentials—Added the ability to read Redis authorization credentials from the relationships property during the deploy phase.

  • Elasticsearch authorization credentials—Added the ability to read Elasticsearch authorization credentials from the relationships property during the deploy phase.

  • Dedicated session storage service—Added redis-session as a second option for session storage. You can use the redis-session service to store session information and use the redis service for cache to provide better performance.

  • Deprecated SPLIT_DB messages—Added validator warning and critical messages for the deprecated SPLIT_DB option for Magento 2.4.2 and its removal in Magento 2.5.0.

  • Elasticsearch version from relationships—Fixed Service validator to retrieve the correct version of Elasticsearch from the relationships properties in Cloud Docker and integration environments.

  • Flexible Redis port validation—Redis can now validate the port in a custom cache connection from the server URL. For example, you can add your port number to your server URL as follows: server: 'tcp://rfs-store-simple-page-cache:26379'. This helps prevent validation errors where the port option is either missing or incorrect.

  • Upgrading to Magento 2.4.2—Fixed the issue that required users to manually run bin/magento setup:upgrade to make their sites operational after upgrading to Magento 2.4.2.

v2002.1.5

Release date: Feb 1, 2021

  • Remote storage—Added the REMOTE_STORAGE environment variable to enable Cloud Projects for remote storage of media files using a storage service, such as AWS S3.

  • New cloud:config:validate command—Added command php vendor/bin/ece-tools cloud:config:validate to validate the .magento.env.yaml configuration before pushing changes to the remote Cloud environment.

  • Flushing the opcache—Added support for the opcache.enable_cli PHP option to flush the OPcache before running the deploy hook. This configuration resets the cache configuration to ensure that the current configuration settings are applied on each deployment.

  • Validation of Aurora DB—Updated the database service validation so that it is compatible with the Aurora database.

  • New SCD_NO_PARENT environment variable—Added the SCD_NO_PARENT environment variable (for Magento >=2.4.2) to manage the generation of static content for parent themes.

  • Memory limits and commands—Fixed an issue where php vendor/bin/ece-tools commands would not work if the size of the cloud.log file exceeded the PHP memory_limit. Instead of reading the entire cloud.log file into memory, we now only read a smaller subset of data from the log file.

  • Custom database connections—Fixed a .magento.env.yaml configuration issue in which custom database connections defined for DATABASE_CONFIGURATION were not used. The connection settings were not being added to app/etc/env.php.

  • Empty error logs—Fixed an issue that caused deployments to fail if the cloud.error.log was empty.

  • MariaDB 10.3 validation—Fixed validation of MariaDB 10.3 for Magento 2.3.6-p1.

  • Cache:flush logging—Improved log entries to indicate the start and finish of the cache:flush step.

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 Cloud for Adobe Commerce 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 Cloud Docker for Commerce installation. The variable is only relevant to Cloud Docker for Commerce 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 Cloud for Adobe Commerce 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 Cloud for Adobe Commerce with a dependency for the magento/magento-cloud-docker package. Now, ece-tools includes dependencies for all packages in the Cloud Suite for Commerce. 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 Cloud for Adobe Commerce 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 Cloud for Adobe Commerce 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 Cloud for Adobe Commerce 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.