diff --git a/composer.json b/composer.json
index b93dd19b1395ed34b03fdd239bf722c96777030b..d9a47b96db054a9958e944beec37c5f4c485c2ea 100644
--- a/composer.json
+++ b/composer.json
@@ -85,7 +85,8 @@
       "phpunit/phpunit": "^7.0"
     },
     "config": {
-        "sort-packages": true,
+    "sort-packages": true,
+    "preferred-install": "dist",
         "platform": {
             "php": "7.1.30"
         }
@@ -95,39 +96,80 @@
             "dev-master": "2.x-dev"
         }
     },
-    "archive": {
-        "exclude": [
-            "vendor",
-            "phpunit.xml.dist",
-            ".git*",
-            ".idea"
-        ]
-    },
-    "scripts": {
-        "post-install-cmd": "@clobber-phpunit",
-        "post-update-cmd": "@clobber-phpunit",
-        "clobber-phpunit": "[ -d vendor/phpunit/phpunit ] && vendor/bin/pcov . clobber",
+  "archive": {
+    "exclude": [
+      "/*",
+      "!/src",
+      "!/doc",
+      "!/composer.json",
+      "!/package.json",
+      "!/COPYING*",
+      "!/README.md",
+      ".git*",
+      ".idea"
+    ]
+  },
+  "scripts": {
+    "fix-cs": "vendor/bin/php-cs-fixer fix --verbose",
+    "phploc": "vendor/bin/phploc src tests --exclude tests/Fixtures/var",
+    "make-icon-lists":[
+      "npm install",
+      "perl -ne '/\\.@\\{fa-css-prefix\\}\\-([-\\w]+):before/ and print \"$1\\n\"' node_modules/font-awesome/scss/_icons.scss | sort -u > src/Resources/icons/fa.txt",
+      "perl -ne '/\\.glyphicon\\-([-\\w]+)/ and print \"$1\\n\"' src/Resources/assets/sass/main.scss   | sort -u > src/Resources/icons/glyphicon.txt"
+    ],
+    "update:lowest": [
+      "rm -rf vendor composer.lock #",
+      "@composer update --no-suggest --prefer-stable --prefer-lowest"
+    ],
+    "update:latest": [
+      "rm -rf vendor composer.lock #",
+      "@composer clear-cache #",
+      "@composer update --no-suggest"
+    ],
+    "test:lowest": ["@update:lowest", "@test"],
+    "test:latest": ["@update:latest", "@test"],
+    "test": [
+      "@test:lint",
+      "@test:php-cs-fixer",
+      "@test:phpcpd",
+      "@test:phpmd",
+      "@test:phpstan",
+      "@test:composer-require-checker",
+      "@test:phpunit"
+    ],
+    "test:lint": [
+      "vendor/bin/parallel-lint -j $(nproc) --exclude tests/Fixtures/var src tests ",
+      "vendor/bin/yaml-lint src"
+    ],
+    "test:php-cs-fixer": "vendor/bin/php-cs-fixer fix --dry-run --verbose",
+    "test:phpcpd": "vendor/bin/phpcpd --fuzzy src tests --exclude=Fixtures/var",
+    "test:composer-require-checker": "vendor/bin/composer-require-checker",
+    "test:phpmd": "vendor/bin/phpmd src,tests/Form/,tests/Utils,tests/Listener text ./phpmd-ruleset.xml --suffixes=php",
+    "test:phpstan": "vendor/bin/phpstan analyse --no-progress",
 
-        "fix-cs": "vendor/bin/php-cs-fixer fix --verbose",
-        "phploc": "vendor/bin/phploc src tests --exclude tests/Fixtures/var",
-        "test": [
-          "@test:lint",
-          "@test:php-cs-fixer",
-          "@test:phpcpd",
-          "@test:phpmd",
-          "@test:phpstan",
-          "@test:composer-require-checker",
-          "@test:phpunit"
-        ],
-        "test:lint": [
-          "vendor/bin/parallel-lint -j $(nproc) --exclude tests/Fixtures/var src tests ",
-          "vendor/bin/yaml-lint src"
-        ],
-        "test:php-cs-fixer": "vendor/bin/php-cs-fixer fix --dry-run --verbose",
-        "test:phpcpd": "vendor/bin/phpcpd --fuzzy src tests --exclude=Fixtures/var",
-        "test:composer-require-checker": "vendor/bin/composer-require-checker",
-        "test:phpmd": "vendor/bin/phpmd src,tests text ./phpmd-ruleset.xml --suffixes=php",
-        "test:phpstan": "vendor/bin/phpstan analyse --no-progress",
-        "test:phpunit": "vendor/bin/phpunit"
-    }
+    "test:clear": [
+      "if [ -z \"$CI\" ]; then cd tests/Fixtures; rm -rf package-lock.json var node_modules public/assets reports/*; fi #"
+    ],
+    "test:install-assets": [
+      "@test:clear",
+      "cd tests/Fixtures && npm install && npm run dev #"
+    ],
+    "test:phpunit": [
+      "$PANTHER_CHROME_BINARY --version #",
+      "$PANTHER_CHROME_DRIVER_BINARY --version #",
+      "vendor/bin/phpunit --coverage-text --coverage-html=reports/coverage --log-junit=reports/junit.xml"
+    ],
+    "test:serve": [
+      "@test:install-assets",
+      "@php tests/console server:run -v --docroot=tests/Fixtures/public"
+    ],
+
+    "docker:serve": [
+      "@test:install-assets",
+      "set -x; IMG=`docker build --build-arg \"PHP_VERSION=${PHP_VERSION:-7.1}\" --pull -q .` && docker run --rm -p 8080:8080 -v ${PWD}:/var/www/theme-bundle -u `id -u`:`id -g` $IMG"
+    ],
+    "docker:test": [
+      "set -x; IMG=`docker build --build-arg \"PHP_VERSION=${PHP_VERSION:-7.1}\" --pull -q .` && docker run --rm -v ${PWD}:/var/www/theme-bundle -u `id -u`:`id -g` $IMG composer test"
+    ]
+  }
 }