Repository: PrestaShop/autoupgrade
Pull request #1208: [DOC] Update README for v7
Author: login: M0rgan01
Created: 2025-02-28T10:39:52Z | Merged: 2025-03-04T09:55:37Z

<!-----------------------------------------------------------------------------
Thank you for contributing to the PrestaShop project! 
Please take the time to edit the "Answers" rows below with the necessary information.
Check out our contribution guidelines to find out how to complete it:
https://devdocs.prestashop-project.org/8/contribute/contribution-guidelines/#pull-requests
------------------------------------------------------------------------------>

| Questions         | Answers
| ------------------| -------------------------------------------------------
| Description?      | Update README for v7
| Type?             | improvement
| BC breaks?        | no
| Deprecations?     | no
| Fixed ticket?     | -
| Sponsor company   | -
| How to test?      | -



Diff:
diff --git a/.github/workflows/web-integration.yml b/.github/workflows/scss-tests.yml
similarity index 97%
rename from .github/workflows/web-integration.yml
rename to .github/workflows/scss-tests.yml
index e5d72b9977..2293c2fd49 100644
--- a/.github/workflows/web-integration.yml
+++ b/.github/workflows/scss-tests.yml
@@ -1,4 +1,4 @@
-name: Web Integration Check
+name: SCSS tests
 
 on: [push, pull_request]
 
diff --git a/README.md b/README.md
index 09e95cddc6..152de9b32a 100644
--- a/README.md
+++ b/README.md
@@ -1,14 +1,46 @@
 # Update assistant
 
 ![PHP tests](https://github.com/PrestaShop/autoupgrade/workflows/PHP%20tests/badge.svg)
-![Upgrades](https://github.com/PrestaShop/autoupgrade/workflows/Upgrades/badge.svg)
+![UI tests](https://github.com/PrestaShop/autoupgrade/workflows/UI%20Tests/badge.svg)
+![JS tests](https://github.com/PrestaShop/autoupgrade/workflows/JS%20tests/badge.svg)
+![SCSS tests](https://github.com/PrestaShop/autoupgrade/workflows/SCSS%20tests/badge.svg)
 [![Latest Stable Version](https://poser.pugx.org/PrestaShop/autoupgrade/v)](//packagist.org/packages/PrestaShop/autoupgrade)
 [![Total Downloads](https://poser.pugx.org/PrestaShop/autoupgrade/downloads)](//packagist.org/packages/PrestaShop/autoupgrade)
 [![GitHub license](https://img.shields.io/github/license/PrestaShop/autoupgrade)](https://github.com/PrestaShop/autoupgrade/LICENSE.md)
 
+## Table of Contents
+
+1. [About](#about)
+2. [Branches](#branches)
+3. [Prerequisites](#prerequisites)
+4. [Installation](#installation)
+    - [Create a module from source code](#create-a-module-from-source-code)
+5. [Running an update on PrestaShop](#running-an-update-on-prestashop)
+    - [Update with command line parameters](#update-with-command-line-parameters)
+    - [Configuration file](#configuration-file)
+6. [Restore a store](#restore-a-store)
+    - [Restore with command line parameters](#restore-with-command-line-parameters)
+7. [Channels](#channels)
+8. [Configuration Parameters](#configuration-parameters)
+9. [Update modules from local source](#update-modules-from-local-source)
+10. [Local temporary assets](#local-temporary-assets)
+11. [Process steps](#process-steps)
+    - [Update steps](#update-steps)
+    - [Backup steps](#backup-steps)
+    - [Restore steps](#restore-steps)
+12. [Use Storybook for an interface overview](#use-storybook-for-an-interface-overview)
+13. [Linting and Testing](#linting-and-testing)
+    - [Backend](#backend)
+    - [Frontend](#frontend)
+14. [Documentation](#documentation)
+15. [Contributing](#contributing)
+    - [Reporting issues](#reporting-issues)
+    - [Translations](#translations)
+16. [License](#license)
+
 ## About
 
-This module allows to upgrade your shop to a more recent version of PrestaShop. It can be used as a CLI tool or with a web assistant.
+This module allows to update your store to a more recent version of PrestaShop. It can be used as a CLI tool or with a web assistant.
 The latest versions of the module are compatible with all PrestaShop 1.7 and higher releases.
 
 > [!IMPORTANT]  
@@ -16,18 +48,18 @@ The latest versions of the module are compatible with all PrestaShop 1.7 and hig
 
 ## Branches
 
-Branch `develop` contains code for future versions of the module, which allows upgrades from 1.7.x versions to higher.
+Branch `dev` contains code for future versions of the module, which allows updates from 1.7.x versions to higher.
 
-Branch `4.14.x` contains code for `4.14.x` patch versions which allow upgrading from 1.6.x versions to 1.7.x .
+Branch `4.14.x` contains code for `4.14.x` patch versions which allow updating from 1.6.x versions to 1.7.x .
 
-If you wish to upgrade a shop powered by PrestaShop 1.6, **please use the latest 4.14.3 version** to upgrade to a 1.7 version.
-Upgrades from 1.6.x to 8.x should be done in 2 steps (1.6.x to 1.7.x then 1.7.x to 8.x).
+If you wish to update a store powered by PrestaShop 1.6, **please use the latest 4.14.3 version** to update to a 1.7 version.
+Updates from 1.6.x to 8.x should be done in 2 steps (1.6.x to 1.7.x then 1.7.x to 8.x).
 
 Please note PrestaShop 1.6 and older are not maintained anymore.
 
 ## Prerequisites
 
-* PrestaShop 1.7 or 8
+* PrestaShop >= 1.7
 * PHP >= 7.1
 * Node.js >= 20 - [Download Node.js](https://nodejs.org/) (preference for LTS 20.11.0)
 
@@ -41,21 +73,21 @@ If you download a ZIP archive that contains the source code or if you want to us
 
 * Clone (`git clone https://github.com/PrestaShop/autoupgrade.git`) or [download](https://github.com/PrestaShop/autoupgrade/archive/master.zip) the source code. You can also download a release **Source code** ([ex. v4.14.2](https://github.com/PrestaShop/autoupgrade/archive/v4.14.2.zip)). If you download a source code archive, you need to extract the file and rename the extracted folder to **autoupgrade**
 * Enter into folder **autoupgrade** and run the command `composer install`  ([composer](https://getcomposer.org/)).
-* Enter into folder **autoupgrade/_dev** and run the commands `npm install` and `npm run build:vite` ([npm](https://docs.npmjs.com/)).
+* Enter into folder **autoupgrade/_dev** and run the commands `npm install` and `npm run vite:build` ([npm](https://docs.npmjs.com/)).
 * Create a new ZIP archive from the of **autoupgrade** folder.
-* Now you can install it in your shop. For example, you can upload it using the dropzone in Module Manager back office page. 
+* Now you can install it in your store. For example, you can upload it using the dropzone in Module Manager back office page. 
 
-## Running an upgrade on PrestaShop
+## Running an update on PrestaShop
 
-Upgrading a shop can be done using:
+Updating a store can be done using:
 
 * the configuration page of the module (browse the back office page provided by the module)
 * in command line by calling `bin/console`
 
-### Command line parameters
+### Update with command line parameters
 
 This module provide a powerful command-line interface based on Symfony Console, allowing you to execute various commands
-to manage your store. You can use this interface to perform updates, rollbacks, and check system requirements.
+to manage your store. You can use this interface to perform updates, restores, and check system requirements.
 
 To use the Symfony Console, simply run the following command from the root directory of autoupgrade module:
 
@@ -63,13 +95,13 @@ To use the Symfony Console, simply run the following command from the root direc
 $ php bin/console
 ```
 
-The requirements can be reviewed to confirm the shop is safe to update:
+The requirements can be reviewed to confirm the store is safe to update:
 
 ```
 $ php bin/console update:check <your-admin-dir>
 ```
 
-A backup of the shop is created with:
+A backup of the store is created with:
 
 ```
 $ php bin/console backup:create --config-file-path=[/path/to/config.json] <your-admin-dir>
@@ -106,23 +138,30 @@ Here is an example of the different fields that can be found in it:
 
 Please see the section [Configuration Parameters](#configuration-parameters) for explanations concerning the configurations
 
-## Rollback a shop
+## Restore a store
 
-If an error occurs during the upgrade process, the rollback will be suggested.
+If an error occurs during the update process, the restore will be suggested.
 In case you lost the page from your backoffice, note it can be triggered via CLI.
 
-### Command line parameters
+### Restore with command line parameters
 
 For restore your store, you would use:
 
 ```
-$ php bin/console backup:restore --backup=[backup-name]  <your-admin-dir>
+$ php bin/console backup:restore --backup=[backup-name] <your-admin-dir>
 ```
 
 You can see all available parameters and options directly from the console by using the `--help` option with any command.
 
 For more information on using commands, please refer to the [PrestaShop developer documentation](https://devdocs.prestashop-project.org/8/basics/keeping-up-to-date/upgrade-module/upgrade-cli/#rollback-cli)
 
+## Channels
+
+There are 2 channels available for an update:
+
+* `online` - This channel corresponds to the official "online" update for your store, detected by PrestaShop APIs (major, minor or patch versions). This update is the most recent version of PrestaShop compatible with the PHP version of your server.
+* `local` - This channel corresponds to the “local” update, displaying customized updates detected inside your server `[your-admin-dir]/autoupgrade/download` folder (based on .ZIP and .XML files).
+
 ## Configuration Parameters
 
 When using the command line interface (CLI), you can configure the module's behavior through a JSON file or by passing
@@ -139,11 +178,98 @@ impact.
 | `update:start`                              | `PS_AUTOUP_REGEN_EMAIL`                       | `--regenerate-email-templates` | `true` (default), `false`, `'true'`, `'false'`, `'1'`, `'0'`, `1`, `0`, `'on'`, `'off'` | If enabled, keeps the store's customized email templates. Otherwise, the templates are replaced with the default ones.                        |
 | `update:start`                              | `PS_DISABLE_OVERRIDES`                        | `--disable-all-overrides`      | `true` (default), `false`, `'true'`, `'false'`, `'1'`, `'0'`, `1`, `0`, `'on'`, `'off'` | If enabled, disables all PHP overrides in PrestaShop, ensuring better compatibility during the update process.                                |
 | `backup:create`                             | `PS_AUTOUP_KEEP_IMAGES`                       | `--include-images`             | `true` (default), `false`, `'true'`, `'false'`, `'1'`, `'0'`, `1`, `0`, `'on'`, `'off'` | If enabled, retains all images in the backup. This operation can take a long time depending on the storage of your images                     |
+| `backup:restore`                            | no option available                           | `--backup`                     | Valid file name                                                                         | Specify the backup name to restore. The allowed values can be found with backup:list command)                                                 |
+| `backup:delete`                             | no option available                           | `--backup`                     | Valid file name                                                                         | Specify the backup name to delete. The allowed values can be found with backup:list command)                                                  |
 
-## Documentation
+## Test module updates locally
 
-* Documentation is hosted on [the Developer documentation][doc].
-* Privacy documentation is hosted [on the PrestaShop Project website][prestashop-privacy].
+During the update process, we check for new module versions on the PrestaShop Marketplace. If a new version is found, it is downloaded and installed automatically.
+
+However, to test the update process without publishing the module to the Marketplace (which can be inconvenient for developers), you can use a local version of your module. Here’s how:
+
+1. Create a ZIP archive of your module.
+2. Place the ZIP file in the following directory: `[your-admin-dir]/autoupgrade/modules/MODULE_NAME.zip`.
+
+This will make the update process use your local archive instead of downloading the latest version from the Marketplace.
+
+⚠️ Note: If your local module archive is invalid, the updater will fall back to downloading the latest available version from the Marketplace.
+
+## Local temporary assets
+
+In order to work properly, the Update module needs to write some files to your filesystem server. These files are stored in the following folders, all available in the `[your-admin-dir]/autoupgrade` path.
+
+```
+ [your-admin-dir]/autoupgrade/
+ ├── download/              Directory for XML and ZIP archives for local updates.
+ ├── modules/               Folder where you can put an archive of a module. This one will be used when updating modules.
+ ├── tmp/
+ │   ├── files/             Working directory of the autoupgrade. This is where the destination version of PrestaShop will be unziped, before copy.
+ │   ├── releases/          Stores downloaded releases in online mode, emptied at the end of the update process
+ │   ├── modules/           Stores module zip files and migration scripts, emptied at the end of the update process.
+ ```
+
+## Process steps
+
+Here you will find the list of actions done during the processes.
+
+### Update steps
+
+```mermaid
+graph
+    UpdateInitialization -->|Channel Online| Download
+    UpdateInitialization -->|Channel Local| Unzip
+    Download --> Unzip
+    Unzip --> UpdateFiles
+    UpdateFiles --> UpdateDatabase
+    UpdateDatabase --> UpdateModules
+    UpdateModules --> CleanDatabase
+    CleanDatabase --> UpdateComplete
+```
+
+The following steps will be executed during the update:
+
+1. **UpdateInitialization**: Start of the whole process, clear potential leftover temporary files from a previous process. The next step will be chosen depending on the configuration.
+2. **Download**: Download the appropriate archive for your PHP version.
+3. **Unzip**: Unzip the downloaded archive.
+4. **UpdateFiles**: Now the current content is saved, it can alter the store content. This step will run several time. The first call will initialize the files list, then the next ones will copy a part of this list.
+5. **UpdateDatabase**: This step runs all the update SQL files available for the destination version. Then, it will run some additional steps, such as cache deletion, language update…
+6. **UpdateModules**: This step updates the modules and executes potential migrations from local sources, composer or from the Prestashop marketplace.
+7. **CleanDatabase**: This step run some SQL queries in order to remove obsolete or wrong data. Note the concerned data is not coming from the update itself, but from the use of PrestaShop.
+8. **UpdateComplete**: This step will display a success message, clear temporary files and will end the process.
+
+### Backup steps
+
+```mermaid
+graph
+    BackupInitialization --> BackupFiles
+    BackupFiles --> BackupDatabase
+    BackupDatabase --> BackupComplete
+```
+
+The following steps will be executed during the backup:
+
+1. **BackupInitialization**: Start of the whole process, clear potential leftover temporary files from a previous process.
+2. **BackupFiles**: Backup store files, including or not images depending on the configuration.
+3. **BackupDatabase**: It saves the current database structure and content.
+4. **BackupComplete**: This step will display a success message, clear temporary files and will end the process.
+
+### Restore steps
+
+```mermaid
+graph
+    RestoreInitialization -->|No backup name match| RestoreEmpty
+    RestoreInitialization -->|Backup name match| RestoreFiles
+    RestoreFiles --> RestoreDatabase
+    RestoreDatabase --> RestoreComplete
+```
+
+The following steps will be executed during the restore:
+
+1. **RestoreInitialization**: Start of the whole process, clear potential leftover temporary files from a previous process.
+2. **RestoreEmpty**: A classic step used to display a message saying no backup matches the given parameters, and terminates the process.
+3. **RestoreFiles**: Like the step **UpdateFiles**, this step copies the files from the archive and remove the files missing from the original environment.
+4. **RestoreDatabase**: This step reads and runs the files generated by **BackupDatabase**.
+5. **RestoreComplete**: This step will display a success message, clear temporary files and will end the process.
 
 ## Use Storybook for an interface overview
 
@@ -182,6 +308,10 @@ All frontend commands should be executed from the `_dev` directory.
 
 - `npm run stylelint` ⮕ Runs **Stylelint** to lint and format your SCSS files. You can append `:fix` to automatically resolve solvable formatting issues.
 
+## Documentation
+
+* Documentation is hosted on [the Developer documentation][doc].
+* Privacy documentation is hosted [on the PrestaShop Project website][prestashop-privacy].
 
 ## Contributing
 


Reviews:
user: login: tblivet
state: DISMISSED
author_association: CONTRIBUTOR
submitted_at: 2025-03-03T14:52:53Z
user: login: Quetzacoalt91
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-03-03T16:29:23Z
user: login: Quetzacoalt91
state: DISMISSED
author_association: MEMBER
submitted_at: 2025-03-03T16:29:27Z
user: login: M0rgan01
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-03T16:36:57Z
user: login: Quetzacoalt91
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-03-03T16:43:58Z
user: login: Quetzacoalt91
state: APPROVED
author_association: MEMBER
submitted_at: 2025-03-04T09:55:22Z

Review comments:
diff_hunk: @@ -139,11 +178,93 @@ impact.
 | `update:start`                              | `PS_AUTOUP_REGEN_EMAIL`                       | `--regenerate-email-templates` | `true` (default), `false`, `'true'`, `'false'`, `'1'`, `'0'`, `1`, `0`, `'on'`, `'off'` | If enabled, keeps the store's customized email templates. Otherwise, the templates are replaced with the default ones.                        |
 | `update:start`                              | `PS_DISABLE_OVERRIDES`                        | `--disable-all-overrides`      | `true` (default), `false`, `'true'`, `'false'`, `'1'`, `'0'`, `1`, `0`, `'on'`, `'off'` | If enabled, disables all PHP overrides in PrestaShop, ensuring better compatibility during the update process.                                |
 | `backup:create`                             | `PS_AUTOUP_KEEP_IMAGES`                       | `--include-images`             | `true` (default), `false`, `'true'`, `'false'`, `'1'`, `'0'`, `1`, `0`, `'on'`, `'off'` | If enabled, retains all images in the backup. This operation can take a long time depending on the storage of your images                     |
+| `backup:restore`                            | no option available                           | `--backup`                     | Valid file name                                                                         | Specify the backup name to restore. The allowed values can be found with backup:list command)                                                 |
+| `backup:delete`                             | no option available                           | `--backup`                     | Valid file name                                                                         | Specify the backup name to delete. The allowed values can be found with backup:list command)                                                  |
 
-## Documentation
+## Update modules from local source
 
-* Documentation is hosted on [the Developer documentation][doc].
-* Privacy documentation is hosted [on the PrestaShop Project website][prestashop-privacy].
+During the Update process, we check for new module versions in the PrestaShop Marketplace. If there is one, we download it and then Update it.
+
+Developers must release and push their module to the Marketplace in order to test the Update process, which is inconvenient. In order to simplify the testing process, you can place the ZIP file of your module in `/ADMIN_DIR/autoupgrade/modules/MODULE_NAME.zip`. This will allow you to use your local version for updating purposes.
path: README.md
user: login: Quetzacoalt91
body: I understand this is some contents moved from the dev docs, but I missed the title and understood in the first read that the marketplace should be avoided.
This non-blocking for this PR but I think it can be improved.
created_at: 2025-03-03T16:29:22Z
author_association: MEMBER
diff_hunk: @@ -139,11 +178,93 @@ impact.
 | `update:start`                              | `PS_AUTOUP_REGEN_EMAIL`                       | `--regenerate-email-templates` | `true` (default), `false`, `'true'`, `'false'`, `'1'`, `'0'`, `1`, `0`, `'on'`, `'off'` | If enabled, keeps the store's customized email templates. Otherwise, the templates are replaced with the default ones.                        |
 | `update:start`                              | `PS_DISABLE_OVERRIDES`                        | `--disable-all-overrides`      | `true` (default), `false`, `'true'`, `'false'`, `'1'`, `'0'`, `1`, `0`, `'on'`, `'off'` | If enabled, disables all PHP overrides in PrestaShop, ensuring better compatibility during the update process.                                |
 | `backup:create`                             | `PS_AUTOUP_KEEP_IMAGES`                       | `--include-images`             | `true` (default), `false`, `'true'`, `'false'`, `'1'`, `'0'`, `1`, `0`, `'on'`, `'off'` | If enabled, retains all images in the backup. This operation can take a long time depending on the storage of your images                     |
+| `backup:restore`                            | no option available                           | `--backup`                     | Valid file name                                                                         | Specify the backup name to restore. The allowed values can be found with backup:list command)                                                 |
+| `backup:delete`                             | no option available                           | `--backup`                     | Valid file name                                                                         | Specify the backup name to delete. The allowed values can be found with backup:list command)                                                  |
 
-## Documentation
+## Update modules from local source
 
-* Documentation is hosted on [the Developer documentation][doc].
-* Privacy documentation is hosted [on the PrestaShop Project website][prestashop-privacy].
+During the Update process, we check for new module versions in the PrestaShop Marketplace. If there is one, we download it and then Update it.
+
+Developers must release and push their module to the Marketplace in order to test the Update process, which is inconvenient. In order to simplify the testing process, you can place the ZIP file of your module in `/ADMIN_DIR/autoupgrade/modules/MODULE_NAME.zip`. This will allow you to use your local version for updating purposes.
path: README.md
user: login: M0rgan01
body: Title for this part is "## Update modules from local source".
created_at: 2025-03-03T16:36:56Z
author_association: CONTRIBUTOR
diff_hunk: @@ -139,11 +178,93 @@ impact.
 | `update:start`                              | `PS_AUTOUP_REGEN_EMAIL`                       | `--regenerate-email-templates` | `true` (default), `false`, `'true'`, `'false'`, `'1'`, `'0'`, `1`, `0`, `'on'`, `'off'` | If enabled, keeps the store's customized email templates. Otherwise, the templates are replaced with the default ones.                        |
 | `update:start`                              | `PS_DISABLE_OVERRIDES`                        | `--disable-all-overrides`      | `true` (default), `false`, `'true'`, `'false'`, `'1'`, `'0'`, `1`, `0`, `'on'`, `'off'` | If enabled, disables all PHP overrides in PrestaShop, ensuring better compatibility during the update process.                                |
 | `backup:create`                             | `PS_AUTOUP_KEEP_IMAGES`                       | `--include-images`             | `true` (default), `false`, `'true'`, `'false'`, `'1'`, `'0'`, `1`, `0`, `'on'`, `'off'` | If enabled, retains all images in the backup. This operation can take a long time depending on the storage of your images                     |
+| `backup:restore`                            | no option available                           | `--backup`                     | Valid file name                                                                         | Specify the backup name to restore. The allowed values can be found with backup:list command)                                                 |
+| `backup:delete`                             | no option available                           | `--backup`                     | Valid file name                                                                         | Specify the backup name to delete. The allowed values can be found with backup:list command)                                                  |
 
-## Documentation
+## Update modules from local source
 
-* Documentation is hosted on [the Developer documentation][doc].
-* Privacy documentation is hosted [on the PrestaShop Project website][prestashop-privacy].
+During the Update process, we check for new module versions in the PrestaShop Marketplace. If there is one, we download it and then Update it.
+
+Developers must release and push their module to the Marketplace in order to test the Update process, which is inconvenient. In order to simplify the testing process, you can place the ZIP file of your module in `/ADMIN_DIR/autoupgrade/modules/MODULE_NAME.zip`. This will allow you to use your local version for updating purposes.
path: README.md
user: login: Quetzacoalt91
body: Yes I know, but I overlooked it and in consequence the meaning was totally different
created_at: 2025-03-03T16:43:58Z
author_association: MEMBER

PR comments:
user: login: sonarqubecloud[bot]
created_at: 2025-03-04T09:17:05Z
body: ## [![Quality Gate Passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/qg-passed-20px.png 'Quality Gate Passed')](https://sonarcloud.io/dashboard?id=PrestaShop_autoupgrade&pullRequest=1208) **Quality Gate passed**  
Issues  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 New issues](https://sonarcloud.io/project/issues?id=PrestaShop_autoupgrade&pullRequest=1208&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/accepted-16px.png '') [0 Accepted issues](https://sonarcloud.io/project/issues?id=PrestaShop_autoupgrade&pullRequest=1208&issueStatuses=ACCEPTED)

Measures  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=PrestaShop_autoupgrade&pullRequest=1208&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=PrestaShop_autoupgrade&pullRequest=1208&metric=new_coverage&view=list)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=PrestaShop_autoupgrade&pullRequest=1208&metric=new_duplicated_lines_density&view=list)  
  
[See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=PrestaShop_autoupgrade&pullRequest=1208)


author_association: NONE