Hello community,

here is the log from the commit of package platformsh-cli for openSUSE:Factory 
checked in at 2018-03-28 10:32:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/platformsh-cli (Old)
 and      /work/SRC/openSUSE:Factory/.platformsh-cli.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "platformsh-cli"

Wed Mar 28 10:32:30 2018 rev:40 rq:591308 version:3.31.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/platformsh-cli/platformsh-cli.changes    
2018-03-22 12:10:50.285369972 +0100
+++ /work/SRC/openSUSE:Factory/.platformsh-cli.new/platformsh-cli.changes       
2018-03-28 10:32:41.942202317 +0200
@@ -1,0 +2,20 @@
+Tue Mar 27 02:39:37 UTC 2018 - [email protected]
+
+- Update to version 3.31.3:
+  * Release v3.31.3
+  * Document experimental_commands key [skip changelog]
+  * Allow all_experiments to come first [skip changelog]
+  * Add mechanism to define commands as experimental [skip changelog]
+  * [self:release] Improve changelog generation [skip changelog]
+  * Symfony dependencies update
+  * [self:install] Only include shell-config if it exists; update config 
snippet automatically
+  * [activity:get] Do not require an environment if an ID is provided
+  * Adapt wrapWithDecoration for literal tags
+  * Release v3.31.2
+  * Update API client [skip changelog]
+  * Improve variable creation
+  * Decode HTML entities in activity descriptions
+  * Release v3.31.1
+  * Fix decoration when single element wraps onto multiple lines
+
+-------------------------------------------------------------------

Old:
----
  platformsh-cli-3.31.0.tar.xz

New:
----
  platformsh-cli-3.31.3.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ platformsh-cli.spec ++++++
--- /var/tmp/diff_new_pack.7ECo6k/_old  2018-03-28 10:32:43.030163188 +0200
+++ /var/tmp/diff_new_pack.7ECo6k/_new  2018-03-28 10:32:43.034163044 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           platformsh-cli
-Version:        3.31.0
+Version:        3.31.3
 Release:        0
 Summary:        Tool for managing Platform.sh services from the command line
 # See licenses.txt for dependency licenses.

++++++ _service ++++++
--- /var/tmp/diff_new_pack.7ECo6k/_old  2018-03-28 10:32:43.074161605 +0200
+++ /var/tmp/diff_new_pack.7ECo6k/_new  2018-03-28 10:32:43.074161605 +0200
@@ -2,7 +2,7 @@
   <service name="tar_scm" mode="disabled">
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="versionrewrite-pattern">v(.*)</param>
-    <param name="revision">refs/tags/v3.31.0</param>
+    <param name="revision">refs/tags/v3.31.3</param>
     <param name="url">git://github.com/platformsh/platformsh-cli.git</param>
     <param name="scm">git</param>
     <param name="changesgenerate">enable</param>

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.7ECo6k/_old  2018-03-28 10:32:43.094160886 +0200
+++ /var/tmp/diff_new_pack.7ECo6k/_new  2018-03-28 10:32:43.094160886 +0200
@@ -1,6 +1,6 @@
 <servicedata>
   <service name="tar_scm">
     <param name="url">git://github.com/platformsh/platformsh-cli.git</param>
-    <param 
name="changesrevision">d57ebed7395b7b70104b8d06c3be4c42d0c4c987</param>
+    <param 
name="changesrevision">b11d88cf518d761c2737a0be50081ec548b1069a</param>
   </service>
 </servicedata>

++++++ licenses.txt ++++++
--- /var/tmp/diff_new_pack.7ECo6k/_old  2018-03-28 10:32:43.158158585 +0200
+++ /var/tmp/diff_new_pack.7ECo6k/_new  2018-03-28 10:32:43.162158441 +0200
@@ -17,19 +17,19 @@
 padraic/humbug_get_contents         1.1.2    BSD-3-Clause  
 padraic/phar-updater                v1.0.5   BSD-3-Clause  
 paragonie/random_compat             v2.0.11  MIT           
-platformsh/client                   v0.17.1  MIT           
+platformsh/client                   v0.17.2  MIT           
 platformsh/console-form             v0.0.20  MIT           
 psr/container                       1.0.0    MIT           
 psr/log                             1.0.2    MIT           
 react/promise                       v2.5.1   MIT           
 stecman/symfony-console-completion  0.7.0    MIT           
-symfony/config                      v3.4.4   MIT           
-symfony/console                     v3.4.4   MIT           
-symfony/debug                       v3.4.4   MIT           
-symfony/dependency-injection        v3.4.4   MIT           
-symfony/event-dispatcher            v3.4.4   MIT           
-symfony/filesystem                  v3.4.4   MIT           
-symfony/finder                      v3.4.4   MIT           
+symfony/config                      v3.4.6   MIT           
+symfony/console                     v3.4.6   MIT           
+symfony/debug                       v3.4.6   MIT           
+symfony/dependency-injection        v3.4.6   MIT           
+symfony/event-dispatcher            v3.4.6   MIT           
+symfony/filesystem                  v3.4.6   MIT           
+symfony/finder                      v3.4.6   MIT           
 symfony/polyfill-mbstring           v1.7.0   MIT           
-symfony/process                     v3.4.4   MIT           
-symfony/yaml                        v3.4.4   MIT           
+symfony/process                     v3.4.6   MIT           
+symfony/yaml                        v3.4.6   MIT           

++++++ platformsh-cli-3.31.0.tar.xz -> platformsh-cli-3.31.3.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/platformsh-cli-3.31.0/composer.lock 
new/platformsh-cli-3.31.3/composer.lock
--- old/platformsh-cli-3.31.0/composer.lock     2018-03-20 20:43:46.000000000 
+0100
+++ new/platformsh-cli-3.31.3/composer.lock     2018-03-27 03:39:09.000000000 
+0200
@@ -711,16 +711,16 @@
         },
         {
             "name": "platformsh/client",
-            "version": "v0.17.1",
+            "version": "v0.17.2",
             "source": {
                 "type": "git",
                 "url": 
"https://github.com/platformsh/platformsh-client-php.git";,
-                "reference": "37d986f5909fbdd80c57b1765670607c9b36373f"
+                "reference": "78f7b14818fe6e5c171855c217dfddf738d50302"
             },
             "dist": {
                 "type": "zip",
-                "url": 
"https://api.github.com/repos/platformsh/platformsh-client-php/zipball/37d986f5909fbdd80c57b1765670607c9b36373f";,
-                "reference": "37d986f5909fbdd80c57b1765670607c9b36373f",
+                "url": 
"https://api.github.com/repos/platformsh/platformsh-client-php/zipball/78f7b14818fe6e5c171855c217dfddf738d50302";,
+                "reference": "78f7b14818fe6e5c171855c217dfddf738d50302",
                 "shasum": ""
             },
             "require": {
@@ -756,7 +756,7 @@
                 }
             ],
             "description": "Platform.sh API client",
-            "time": "2018-03-15T16:06:08+00:00"
+            "time": "2018-03-22T15:23:59+00:00"
         },
         {
             "name": "platformsh/console-form",
@@ -986,16 +986,16 @@
         },
         {
             "name": "symfony/config",
-            "version": "v3.4.4",
+            "version": "v3.4.6",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/config.git";,
-                "reference": "72689b934d6c6ecf73eca874e98933bf055313c9"
+                "reference": "05e10567b529476a006b00746c5f538f1636810e"
             },
             "dist": {
                 "type": "zip",
-                "url": 
"https://api.github.com/repos/symfony/config/zipball/72689b934d6c6ecf73eca874e98933bf055313c9";,
-                "reference": "72689b934d6c6ecf73eca874e98933bf055313c9",
+                "url": 
"https://api.github.com/repos/symfony/config/zipball/05e10567b529476a006b00746c5f538f1636810e";,
+                "reference": "05e10567b529476a006b00746c5f538f1636810e",
                 "shasum": ""
             },
             "require": {
@@ -1008,6 +1008,7 @@
             },
             "require-dev": {
                 "symfony/dependency-injection": "~3.3|~4.0",
+                "symfony/event-dispatcher": "~3.3|~4.0",
                 "symfony/finder": "~3.3|~4.0",
                 "symfony/yaml": "~3.0|~4.0"
             },
@@ -1044,20 +1045,20 @@
             ],
             "description": "Symfony Config Component",
             "homepage": "https://symfony.com";,
-            "time": "2018-01-21T19:05:02+00:00"
+            "time": "2018-02-14T10:03:57+00:00"
         },
         {
             "name": "symfony/console",
-            "version": "v3.4.4",
+            "version": "v3.4.6",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/console.git";,
-                "reference": "26b6f419edda16c19775211987651cb27baea7f1"
+                "reference": "067339e9b8ec30d5f19f5950208893ff026b94f7"
             },
             "dist": {
                 "type": "zip",
-                "url": 
"https://api.github.com/repos/symfony/console/zipball/26b6f419edda16c19775211987651cb27baea7f1";,
-                "reference": "26b6f419edda16c19775211987651cb27baea7f1",
+                "url": 
"https://api.github.com/repos/symfony/console/zipball/067339e9b8ec30d5f19f5950208893ff026b94f7";,
+                "reference": "067339e9b8ec30d5f19f5950208893ff026b94f7",
                 "shasum": ""
             },
             "require": {
@@ -1113,20 +1114,20 @@
             ],
             "description": "Symfony Console Component",
             "homepage": "https://symfony.com";,
-            "time": "2018-01-29T09:03:43+00:00"
+            "time": "2018-02-26T15:46:28+00:00"
         },
         {
             "name": "symfony/debug",
-            "version": "v3.4.4",
+            "version": "v3.4.6",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/debug.git";,
-                "reference": "53f6af2805daf52a43b393b93d2f24925d35c937"
+                "reference": "9b1071f86e79e1999b3d3675d2e0e7684268b9bc"
             },
             "dist": {
                 "type": "zip",
-                "url": 
"https://api.github.com/repos/symfony/debug/zipball/53f6af2805daf52a43b393b93d2f24925d35c937";,
-                "reference": "53f6af2805daf52a43b393b93d2f24925d35c937",
+                "url": 
"https://api.github.com/repos/symfony/debug/zipball/9b1071f86e79e1999b3d3675d2e0e7684268b9bc";,
+                "reference": "9b1071f86e79e1999b3d3675d2e0e7684268b9bc",
                 "shasum": ""
             },
             "require": {
@@ -1169,20 +1170,20 @@
             ],
             "description": "Symfony Debug Component",
             "homepage": "https://symfony.com";,
-            "time": "2018-01-18T22:16:57+00:00"
+            "time": "2018-02-28T21:49:22+00:00"
         },
         {
             "name": "symfony/dependency-injection",
-            "version": "v3.4.4",
+            "version": "v3.4.6",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/dependency-injection.git";,
-                "reference": "4b2717ee2499390e371e1fc7abaf886c1c83e83d"
+                "reference": "12e901abc1cb0d637a0e5abe9923471361d96b07"
             },
             "dist": {
                 "type": "zip",
-                "url": 
"https://api.github.com/repos/symfony/dependency-injection/zipball/4b2717ee2499390e371e1fc7abaf886c1c83e83d";,
-                "reference": "4b2717ee2499390e371e1fc7abaf886c1c83e83d",
+                "url": 
"https://api.github.com/repos/symfony/dependency-injection/zipball/12e901abc1cb0d637a0e5abe9923471361d96b07";,
+                "reference": "12e901abc1cb0d637a0e5abe9923471361d96b07",
                 "shasum": ""
             },
             "require": {
@@ -1240,20 +1241,20 @@
             ],
             "description": "Symfony DependencyInjection Component",
             "homepage": "https://symfony.com";,
-            "time": "2018-01-29T09:16:57+00:00"
+            "time": "2018-03-04T03:54:53+00:00"
         },
         {
             "name": "symfony/event-dispatcher",
-            "version": "v3.4.4",
+            "version": "v3.4.6",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/event-dispatcher.git";,
-                "reference": "26b87b6bca8f8f797331a30b76fdae5342dc26ca"
+                "reference": "58990682ac3fdc1f563b7e705452921372aad11d"
             },
             "dist": {
                 "type": "zip",
-                "url": 
"https://api.github.com/repos/symfony/event-dispatcher/zipball/26b87b6bca8f8f797331a30b76fdae5342dc26ca";,
-                "reference": "26b87b6bca8f8f797331a30b76fdae5342dc26ca",
+                "url": 
"https://api.github.com/repos/symfony/event-dispatcher/zipball/58990682ac3fdc1f563b7e705452921372aad11d";,
+                "reference": "58990682ac3fdc1f563b7e705452921372aad11d",
                 "shasum": ""
             },
             "require": {
@@ -1303,20 +1304,20 @@
             ],
             "description": "Symfony EventDispatcher Component",
             "homepage": "https://symfony.com";,
-            "time": "2018-01-03T07:37:34+00:00"
+            "time": "2018-02-14T10:03:57+00:00"
         },
         {
             "name": "symfony/filesystem",
-            "version": "v3.4.4",
+            "version": "v3.4.6",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/filesystem.git";,
-                "reference": "e078773ad6354af38169faf31c21df0f18ace03d"
+                "reference": "253a4490b528597aa14d2bf5aeded6f5e5e4a541"
             },
             "dist": {
                 "type": "zip",
-                "url": 
"https://api.github.com/repos/symfony/filesystem/zipball/e078773ad6354af38169faf31c21df0f18ace03d";,
-                "reference": "e078773ad6354af38169faf31c21df0f18ace03d",
+                "url": 
"https://api.github.com/repos/symfony/filesystem/zipball/253a4490b528597aa14d2bf5aeded6f5e5e4a541";,
+                "reference": "253a4490b528597aa14d2bf5aeded6f5e5e4a541",
                 "shasum": ""
             },
             "require": {
@@ -1352,20 +1353,20 @@
             ],
             "description": "Symfony Filesystem Component",
             "homepage": "https://symfony.com";,
-            "time": "2018-01-03T07:37:34+00:00"
+            "time": "2018-02-22T10:48:49+00:00"
         },
         {
             "name": "symfony/finder",
-            "version": "v3.4.4",
+            "version": "v3.4.6",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/finder.git";,
-                "reference": "613e26310776f49a1773b6737c6bd554b8bc8c6f"
+                "reference": "a479817ce0a9e4adfd7d39c6407c95d97c254625"
             },
             "dist": {
                 "type": "zip",
-                "url": 
"https://api.github.com/repos/symfony/finder/zipball/613e26310776f49a1773b6737c6bd554b8bc8c6f";,
-                "reference": "613e26310776f49a1773b6737c6bd554b8bc8c6f",
+                "url": 
"https://api.github.com/repos/symfony/finder/zipball/a479817ce0a9e4adfd7d39c6407c95d97c254625";,
+                "reference": "a479817ce0a9e4adfd7d39c6407c95d97c254625",
                 "shasum": ""
             },
             "require": {
@@ -1401,7 +1402,7 @@
             ],
             "description": "Symfony Finder Component",
             "homepage": "https://symfony.com";,
-            "time": "2018-01-03T07:37:34+00:00"
+            "time": "2018-03-05T18:28:11+00:00"
         },
         {
             "name": "symfony/polyfill-mbstring",
@@ -1464,16 +1465,16 @@
         },
         {
             "name": "symfony/process",
-            "version": "v3.4.4",
+            "version": "v3.4.6",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/process.git";,
-                "reference": "09a5172057be8fc677840e591b17f385e58c7c0d"
+                "reference": "cc4aea21f619116aaf1c58016a944e4821c8e8af"
             },
             "dist": {
                 "type": "zip",
-                "url": 
"https://api.github.com/repos/symfony/process/zipball/09a5172057be8fc677840e591b17f385e58c7c0d";,
-                "reference": "09a5172057be8fc677840e591b17f385e58c7c0d",
+                "url": 
"https://api.github.com/repos/symfony/process/zipball/cc4aea21f619116aaf1c58016a944e4821c8e8af";,
+                "reference": "cc4aea21f619116aaf1c58016a944e4821c8e8af",
                 "shasum": ""
             },
             "require": {
@@ -1509,20 +1510,20 @@
             ],
             "description": "Symfony Process Component",
             "homepage": "https://symfony.com";,
-            "time": "2018-01-29T09:03:43+00:00"
+            "time": "2018-02-12T17:55:00+00:00"
         },
         {
             "name": "symfony/yaml",
-            "version": "v3.4.4",
+            "version": "v3.4.6",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/yaml.git";,
-                "reference": "eab73b6c21d27ae4cd037c417618dfd4befb0bfe"
+                "reference": "6af42631dcf89e9c616242c900d6c52bd53bd1bb"
             },
             "dist": {
                 "type": "zip",
-                "url": 
"https://api.github.com/repos/symfony/yaml/zipball/eab73b6c21d27ae4cd037c417618dfd4befb0bfe";,
-                "reference": "eab73b6c21d27ae4cd037c417618dfd4befb0bfe",
+                "url": 
"https://api.github.com/repos/symfony/yaml/zipball/6af42631dcf89e9c616242c900d6c52bd53bd1bb";,
+                "reference": "6af42631dcf89e9c616242c900d6c52bd53bd1bb",
                 "shasum": ""
             },
             "require": {
@@ -1567,22 +1568,22 @@
             ],
             "description": "Symfony Yaml Component",
             "homepage": "https://symfony.com";,
-            "time": "2018-01-21T19:05:02+00:00"
+            "time": "2018-02-16T09:50:28+00:00"
         }
     ],
     "packages-dev": [
         {
             "name": "consolidation/annotated-command",
-            "version": "2.8.2",
+            "version": "2.8.3",
             "source": {
                 "type": "git",
                 "url": 
"https://github.com/consolidation/annotated-command.git";,
-                "reference": "e97c38717eae23a2bafcf3f09438290eee6ebeb4"
+                "reference": "8f8f5da2ca06fbd3a85f7d551c49f844b7c59437"
             },
             "dist": {
                 "type": "zip",
-                "url": 
"https://api.github.com/repos/consolidation/annotated-command/zipball/e97c38717eae23a2bafcf3f09438290eee6ebeb4";,
-                "reference": "e97c38717eae23a2bafcf3f09438290eee6ebeb4",
+                "url": 
"https://api.github.com/repos/consolidation/annotated-command/zipball/8f8f5da2ca06fbd3a85f7d551c49f844b7c59437";,
+                "reference": "8f8f5da2ca06fbd3a85f7d551c49f844b7c59437",
                 "shasum": ""
             },
             "require": {
@@ -1594,6 +1595,7 @@
                 "symfony/finder": "^2.5|^3|^4"
             },
             "require-dev": {
+                "greg-1-anderson/composer-test-scenarios": "^1",
                 "phpunit/phpunit": "^4.8",
                 "satooshi/php-coveralls": "^1.0.2 | dev-master",
                 "squizlabs/php_codesniffer": "^2.7"
@@ -1620,20 +1622,20 @@
                 }
             ],
             "description": "Initialize Symfony Console commands from annotated 
command class methods.",
-            "time": "2017-11-29T16:23:23+00:00"
+            "time": "2018-02-23T16:32:04+00:00"
         },
         {
             "name": "consolidation/output-formatters",
-            "version": "3.1.13",
+            "version": "3.2.0",
             "source": {
                 "type": "git",
                 "url": 
"https://github.com/consolidation/output-formatters.git";,
-                "reference": "3188461e965b32148c8fb85261833b2b72d34b8c"
+                "reference": "da889e4bce19f145ca4ec5b1725a946f4eb625a9"
             },
             "dist": {
                 "type": "zip",
-                "url": 
"https://api.github.com/repos/consolidation/output-formatters/zipball/3188461e965b32148c8fb85261833b2b72d34b8c";,
-                "reference": "3188461e965b32148c8fb85261833b2b72d34b8c",
+                "url": 
"https://api.github.com/repos/consolidation/output-formatters/zipball/da889e4bce19f145ca4ec5b1725a946f4eb625a9";,
+                "reference": "da889e4bce19f145ca4ec5b1725a946f4eb625a9",
                 "shasum": ""
             },
             "require": {
@@ -1642,11 +1644,17 @@
                 "symfony/finder": "^2.5|^3|^4"
             },
             "require-dev": {
-                "phpunit/phpunit": "^4.8",
-                "satooshi/php-coveralls": "^1.0.2 | dev-master",
+                "g-1-a/composer-test-scenarios": "^2",
+                "phpunit/phpunit": "^5.7.27",
+                "satooshi/php-coveralls": "^2",
                 "squizlabs/php_codesniffer": "^2.7",
+                "symfony/console": "3.2.3",
+                "symfony/var-dumper": "^2.8|^3|^4",
                 "victorjonsson/markdowndocs": "^1.3"
             },
+            "suggest": {
+                "symfony/var-dumper": "For using the var_dump formatter"
+            },
             "type": "library",
             "extra": {
                 "branch-alias": {
@@ -1669,7 +1677,7 @@
                 }
             ],
             "description": "Format text by applying transformations provided 
by plug-in formatters.",
-            "time": "2017-11-29T15:25:38+00:00"
+            "time": "2018-03-20T15:18:32+00:00"
         },
         {
             "name": "dnoegel/php-xdg-base-dir",
@@ -1956,16 +1964,16 @@
         },
         {
             "name": "nikic/php-parser",
-            "version": "v3.1.4",
+            "version": "v3.1.5",
             "source": {
                 "type": "git",
                 "url": "https://github.com/nikic/PHP-Parser.git";,
-                "reference": "e57b3a09784f846411aa7ed664eedb73e3399078"
+                "reference": "bb87e28e7d7b8d9a7fda231d37457c9210faf6ce"
             },
             "dist": {
                 "type": "zip",
-                "url": 
"https://api.github.com/repos/nikic/PHP-Parser/zipball/e57b3a09784f846411aa7ed664eedb73e3399078";,
-                "reference": "e57b3a09784f846411aa7ed664eedb73e3399078",
+                "url": 
"https://api.github.com/repos/nikic/PHP-Parser/zipball/bb87e28e7d7b8d9a7fda231d37457c9210faf6ce";,
+                "reference": "bb87e28e7d7b8d9a7fda231d37457c9210faf6ce",
                 "shasum": ""
             },
             "require": {
@@ -2003,7 +2011,7 @@
                 "parser",
                 "php"
             ],
-            "time": "2018-01-25T21:31:33+00:00"
+            "time": "2018-02-28T20:30:58+00:00"
         },
         {
             "name": "pear/console_table",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/platformsh-cli-3.31.0/config.yaml 
new/platformsh-cli-3.31.3/config.yaml
--- old/platformsh-cli-3.31.0/config.yaml       2018-03-20 20:43:46.000000000 
+0100
+++ new/platformsh-cli-3.31.3/config.yaml       2018-03-27 03:39:09.000000000 
+0200
@@ -1,7 +1,7 @@
 # Metadata about the CLI application itself.
 application:
   name: 'Platform.sh CLI'
-  version: '3.31.0'
+  version: '3.31.3'
   executable: 'platform'
   package_name: 'platformsh/cli'
   installer_url: 'https://platform.sh/cli/installer'
@@ -11,14 +11,20 @@
   env_prefix: 'PLATFORMSH_CLI_'
   tmp_sub_dir: 'platformsh-cli-tmp'
   github_repo: 'platformsh/platformsh-cli'
+  release_branch: 'master'
 
   # The default interactive login method: either 'browser' or 'password'.
   # This can be overridden in the user config file.
   login_method: browser
 
-  # Disabled commands.
+  # Disabled commands (a list of full command names).
   disabled_commands: []
 
+  # Experimental commands (a list of full command names). Enable these in the
+  # user config file: the array 'enable_commands' inside the 'experimental'
+  # section.
+  experimental_commands: []
+
 # Configuration for working with projects locally.
 local:
   local_dir: '.platform/local'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/platformsh-cli-3.31.0/dist/manifest.json 
new/platformsh-cli-3.31.3/dist/manifest.json
--- old/platformsh-cli-3.31.0/dist/manifest.json        2018-03-20 
20:43:46.000000000 +0100
+++ new/platformsh-cli-3.31.3/dist/manifest.json        2018-03-27 
03:39:09.000000000 +0200
@@ -1,10 +1,10 @@
 [
     {
         "name": "platform.phar",
-        "sha1": "1daee0a6b40cc488dbb990b2410d4e75d73c7b72",
-        "sha256": 
"27fac1887197d02c5420895505a15a30475d0783f1d9103243e19bb0179dc666",
-        "url": 
"https://github.com/platformsh/platformsh-cli/releases/download/v3.31.0/platform.phar";,
-        "version": "3.31.0",
+        "sha1": "40b9b2857a6e0c0e3f733119bc14a9c95fc75527",
+        "sha256": 
"1969c0e399818e12bbe38e7852d984dcd2f281e0c525448c0412b6e37452765a",
+        "url": 
"https://github.com/platformsh/platformsh-cli/releases/download/v3.31.3/platform.phar";,
+        "version": "3.31.3",
         "php": {
             "min": "5.5.9"
         },
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/platformsh-cli-3.31.0/src/Command/Activity/ActivityGetCommand.php 
new/platformsh-cli-3.31.3/src/Command/Activity/ActivityGetCommand.php
--- old/platformsh-cli-3.31.0/src/Command/Activity/ActivityGetCommand.php       
2018-03-20 20:43:46.000000000 +0100
+++ new/platformsh-cli-3.31.3/src/Command/Activity/ActivityGetCommand.php       
2018-03-27 03:39:09.000000000 +0200
@@ -2,6 +2,7 @@
 namespace Platformsh\Cli\Command\Activity;
 
 use Platformsh\Cli\Command\CommandBase;
+use Platformsh\Cli\Service\ActivityMonitor;
 use Platformsh\Cli\Service\PropertyFormatter;
 use Platformsh\Cli\Service\Table;
 use Platformsh\Client\Model\Activity;
@@ -34,7 +35,7 @@
 
     protected function execute(InputInterface $input, OutputInterface $output)
     {
-        $this->validateInput($input, $input->getOption('all'));
+        $this->validateInput($input, $input->getOption('all') || 
$input->getArgument('id'));
 
         $id = $input->getArgument('id');
         if ($id) {
@@ -66,7 +67,14 @@
 
         $properties = $activity->getProperties();
 
-        $properties['description'] = $activity->getDescription(false);
+        if (!$input->getOption('property') && 
!$table->formatIsMachineReadable()) {
+            $properties['description'] = 
ActivityMonitor::getFormattedDescription($activity, true);
+        } else {
+            $properties['description'] = 
ActivityMonitor::getFormattedDescription($activity, false);
+            if ($input->getOption('property')) {
+                $properties['description_html'] = $activity->description;
+            }
+        }
 
         // Calculate the duration of the activity.
         if (!isset($properties['duration'])) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/platformsh-cli-3.31.0/src/Command/Activity/ActivityLogCommand.php 
new/platformsh-cli-3.31.3/src/Command/Activity/ActivityLogCommand.php
--- old/platformsh-cli-3.31.0/src/Command/Activity/ActivityLogCommand.php       
2018-03-20 20:43:46.000000000 +0100
+++ new/platformsh-cli-3.31.3/src/Command/Activity/ActivityLogCommand.php       
2018-03-27 03:39:09.000000000 +0200
@@ -39,7 +39,7 @@
 
     protected function execute(InputInterface $input, OutputInterface $output)
     {
-        $this->validateInput($input, $input->getOption('all'));
+        $this->validateInput($input, $input->getOption('all') || 
$input->getArgument('id'));
 
         $id = $input->getArgument('id');
         if ($id) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/platformsh-cli-3.31.0/src/Command/CommandBase.php 
new/platformsh-cli-3.31.3/src/Command/CommandBase.php
--- old/platformsh-cli-3.31.0/src/Command/CommandBase.php       2018-03-20 
20:43:46.000000000 +0100
+++ new/platformsh-cli-3.31.3/src/Command/CommandBase.php       2018-03-27 
03:39:09.000000000 +0200
@@ -1265,8 +1265,7 @@
      */
     public function isEnabled()
     {
-        return !$this->config()->has('application.disabled_commands')
-            || !in_array($this->getName(), 
$this->config()->get('application.disabled_commands'));
+        return $this->config()->isCommandEnabled($this->getName());
     }
 
     /**
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/platformsh-cli-3.31.0/src/Command/Self/SelfInstallCommand.php 
new/platformsh-cli-3.31.3/src/Command/Self/SelfInstallCommand.php
--- old/platformsh-cli-3.31.0/src/Command/Self/SelfInstallCommand.php   
2018-03-20 20:43:46.000000000 +0100
+++ new/platformsh-cli-3.31.3/src/Command/Self/SelfInstallCommand.php   
2018-03-27 03:39:09.000000000 +0200
@@ -56,7 +56,16 @@
             }
         }
 
-        if (strpos($currentShellConfig, $configDir . "/bin") !== false) {
+        $suggestedShellConfig = sprintf(
+            'export PATH=%s:"$PATH"',
+            escapeshellarg($configDir . '/bin')
+        );
+        $suggestedShellConfig .= PHP_EOL . sprintf(
+            '[ -f %1$s ] && . %1$s',
+            escapeshellarg($rcDestination)
+        );
+
+        if (strpos($currentShellConfig, $suggestedShellConfig) !== false) {
             $this->stdErr->writeln(sprintf('Already configured: 
<info>%s</info>', $shellConfigFile));
             $this->stdErr->writeln('');
             $this->stdErr->writeln(sprintf(
@@ -67,9 +76,6 @@
             return 0;
         }
 
-        $suggestedShellConfig = 'export PATH=' . escapeshellarg($configDir . 
'/bin') . ':"$PATH"' . PHP_EOL
-            . '. ' . escapeshellarg($rcDestination);
-
         /** @var \Platformsh\Cli\Service\QuestionHelper $questionHelper */
         $questionHelper = $this->getService('question_helper');
         if ($shellConfigFile === false || !$questionHelper->confirm('Do you 
want to update the file automatically?')) {
@@ -94,10 +100,24 @@
             return 1;
         }
 
-        $newShellConfig = rtrim($currentShellConfig, PHP_EOL)
-            . PHP_EOL . PHP_EOL
-            . '# BEGIN SNIPPET: Automatically added by the ' . 
$this->config()->get('application.name')
-            . PHP_EOL . $suggestedShellConfig . ' # END SNIPPET' . PHP_EOL;
+        $begin = '# BEGIN SNIPPET: Automatically added by the ' . 
$this->config()->get('application.name');
+        $end = '# END SNIPPET';
+
+        $beginPos = strpos($currentShellConfig, $begin);
+        $endPos = strpos($currentShellConfig, $end, $beginPos ?: 0);
+        if ($beginPos !== false && $endPos !== false && $endPos > $beginPos) {
+            $newShellConfig = substr_replace(
+                $currentShellConfig,
+                $begin . PHP_EOL . $suggestedShellConfig . ' ' . $end,
+                $beginPos,
+                $endPos + strlen($end) - $beginPos
+            );
+        } else {
+            $newShellConfig = rtrim($currentShellConfig, PHP_EOL)
+                . PHP_EOL . PHP_EOL
+                . $begin . PHP_EOL . $suggestedShellConfig . ' ' . $end
+                . PHP_EOL;
+        }
 
         copy($shellConfigFile, $shellConfigFile . '.cli.bak');
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/platformsh-cli-3.31.0/src/Command/Self/SelfReleaseCommand.php 
new/platformsh-cli-3.31.3/src/Command/Self/SelfReleaseCommand.php
--- old/platformsh-cli-3.31.0/src/Command/Self/SelfReleaseCommand.php   
2018-03-20 20:43:46.000000000 +0100
+++ new/platformsh-cli-3.31.3/src/Command/Self/SelfReleaseCommand.php   
2018-03-27 03:39:09.000000000 +0200
@@ -16,6 +16,8 @@
     {
         $defaultRepo = $this->config()->has('application.github_repo')
             ? $this->config()->get('application.github_repo') : null;
+        $defaultReleaseBranch = 
$this->config()->has('application.release_branch')
+            ? $this->config()->get('application.release_branch') : 'master';
 
         $this
             ->setName('self:release')
@@ -24,8 +26,9 @@
             ->addOption('repo', null, InputOption::VALUE_REQUIRED, 'The GitHub 
repository', $defaultRepo)
             ->addOption('manifest', null, InputOption::VALUE_REQUIRED, 'The 
manifest file to update')
             ->addOption('manifest-mode', null, InputOption::VALUE_REQUIRED, 
'How to update the manifest file', 'update-latest')
-            ->addOption('release-branch', null, InputOption::VALUE_REQUIRED, 
'Override the release branch', 'master')
-            ->addOption('last-version', null, InputOption::VALUE_REQUIRED, 
'Specify the last version number');
+            ->addOption('release-branch', null, InputOption::VALUE_REQUIRED, 
'Override the release branch', $defaultReleaseBranch)
+            ->addOption('last-version', null, InputOption::VALUE_REQUIRED, 
'Specify the last version number')
+            ->addOption('no-check-changes', null, InputOption::VALUE_NONE, 
'Skip check for uncommitted changes');
     }
 
     public function isEnabled()
@@ -61,13 +64,15 @@
             $git->execute(['merge', 'development'], CLI_ROOT, true);
         }
 
-        $gitStatus = $git->execute(['status', '--porcelain'], CLI_ROOT, true);
-        if (is_string($gitStatus) && !empty($gitStatus)) {
-            foreach (explode("\n", $gitStatus) as $statusLine) {
-                if (strpos($statusLine, ' config.yaml') === false) {
-                    $this->stdErr->writeln('There are uncommitted changes in 
Git. Cannot proceed.');
+        if (!$input->getOption('no-check-changes')) {
+            $gitStatus = $git->execute(['status', '--porcelain'], CLI_ROOT, 
true);
+            if (is_string($gitStatus) && !empty($gitStatus)) {
+                foreach (explode("\n", $gitStatus) as $statusLine) {
+                    if (strpos($statusLine, ' config.yaml') === false) {
+                        $this->stdErr->writeln('There are uncommitted changes 
in Git. Cannot proceed.');
 
-                    return 1;
+                        return 1;
+                    }
                 }
             }
         }
@@ -200,7 +205,7 @@
 
         $pharPublicFilename = $this->config()->get('application.executable') . 
'.phar';
 
-        $changelog = $this->getReleaseChangelog($lastVersion);
+        $changelog = $this->getReleaseChangelog($lastVersion, $repoApiUrl);
         $questionText = "\nChangelog:\n\n" . $changelog . "\n\nIs this 
changelog correct?";
         /** @var \Platformsh\Cli\Service\QuestionHelper $questionHelper */
         $questionHelper = $this->getService('question_helper');
@@ -330,10 +335,11 @@
 
     /**
      * @param string $lastVersion The last version number.
+     * @param string $repoApiUrl
      *
      * @return string
      */
-    private function getReleaseChangelog($lastVersion)
+    private function getReleaseChangelog($lastVersion, $repoApiUrl)
     {
         $lastVersionTag = 'v' . ltrim($lastVersion, 'v');
         $filename = CLI_ROOT . '/release-changelog.md';
@@ -349,7 +355,7 @@
             }
         }
         if (empty($changelog)) {
-            $changelog = $this->getGitChangelog($lastVersionTag);
+            $changelog = $this->getGitChangelog($lastVersionTag, $repoApiUrl);
             (new Filesystem())->dumpFile($filename, $changelog);
         }
 
@@ -374,24 +380,42 @@
 
     /**
      * @param string $since
+     * @param string $repoApiUrl
      *
      * @return string
      */
-    private function getGitChangelog($since)
+    private function getGitChangelog($since, $repoApiUrl)
     {
+        $http = new Client();
+        $ref = $http->get($repoApiUrl . '/git/refs/tags/' . 
rawurlencode($since), [
+            'headers' => [
+                'Authorization' => 'token ' . getenv('GITHUB_TOKEN'),
+                'Content-Type' => 'application/json',
+            ],
+            'debug' => $this->stdErr->isDebug(),
+        ])->json();
+        $sha = $ref['object']['sha'];
+
         /** @var \Platformsh\Cli\Service\Git $git */
         $git = $this->getService('git');
         $changelog = $git->execute([
             'log',
-            '--pretty=format:* %s',
+            '--pretty=tformat:* %s%n%b',
             '--no-merges',
             '--invert-grep',
             '--grep=(Release v|\[skip changelog\])',
             '--perl-regexp',
             '--regexp-ignore-case',
-            $since . '...HEAD'
+            $sha . '...HEAD'
         ], CLI_ROOT);
+        if (!is_string($changelog)) {
+            return '';
+        }
 
-        return is_string($changelog) ? $changelog : '';
+        $changelog = preg_replace('/^[^\*\n]/m', '    $0', $changelog);
+        $changelog = preg_replace('/\n+\*/', "\n*", $changelog);
+        $changelog = trim($changelog);
+
+        return $changelog;
     }
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/platformsh-cli-3.31.0/src/Command/Variable/VariableCommandBase.php 
new/platformsh-cli-3.31.3/src/Command/Variable/VariableCommandBase.php
--- old/platformsh-cli-3.31.0/src/Command/Variable/VariableCommandBase.php      
2018-03-20 20:43:46.000000000 +0100
+++ new/platformsh-cli-3.31.3/src/Command/Variable/VariableCommandBase.php      
2018-03-27 03:39:09.000000000 +0200
@@ -149,10 +149,20 @@
 
         $fields['level'] = new OptionsField('Level', [
             'description' => 'The level at which to set the variable',
+            'shortcut' => 'l',
             'options' => [
                 self::LEVEL_PROJECT => 'Project-wide',
                 self::LEVEL_ENVIRONMENT => 'Environment-specific',
             ],
+            'normalizer' => function ($value) {
+                foreach ([self::LEVEL_PROJECT, self::LEVEL_ENVIRONMENT] as 
$validLevel) {
+                    if (stripos($validLevel, $value) === 0) {
+                        return $validLevel;
+                    }
+                }
+
+                return $value;
+            },
         ]);
         $fields['environment'] = new OptionsField('Environment', [
             'conditions' => [
@@ -165,7 +175,6 @@
             },
             'asChoice' => false,
             'includeAsOption' => false,
-            'default' => $this->hasSelectedEnvironment() ? 
$this->getSelectedEnvironment()->id : null,
         ]);
         $fields['name'] = new Field('Name', [
             'description' => 'The variable name',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/platformsh-cli-3.31.0/src/Command/Variable/VariableCreateCommand.php 
new/platformsh-cli-3.31.3/src/Command/Variable/VariableCreateCommand.php
--- old/platformsh-cli-3.31.0/src/Command/Variable/VariableCreateCommand.php    
2018-03-20 20:43:46.000000000 +0100
+++ new/platformsh-cli-3.31.3/src/Command/Variable/VariableCreateCommand.php    
2018-03-27 03:39:09.000000000 +0200
@@ -34,6 +34,12 @@
     {
         $this->validateInput($input, true);
 
+        // Set the default for the environment form field.
+        if ($this->hasSelectedEnvironment() && ($field = 
$this->form->getField('environment'))) {
+            $field->set('default', $this->getSelectedEnvironment()->id);
+        }
+
+        // Merge the 'name' argument with the --name option.
         if ($input->getArgument('name')) {
             if ($input->getOption('name')) {
                 $this->stdErr->writeln('You cannot use both the 
<error>name</error> argument and <error>--name</error> option.');
@@ -43,7 +49,8 @@
             $input->setOption('name', $input->getArgument('name'));
         }
 
-        if (($name = $input->getOption('name')) && 
$this->getExistingVariable($name, $input->getOption('level'))) {
+        // Check whether the variable already exists, if a name is provided.
+        if (($name = $input->getOption('name')) && 
$this->getExistingVariable($name, $input->getOption('level'), false)) {
             $this->stdErr->writeln('The variable already exists: <error>' . 
$name . '</error>');
 
             $executable = $this->config()->get('application.executable');
@@ -82,6 +89,25 @@
             unset($values['environment']);
         }
 
+        // Validate the is_json setting against the value.
+        if (isset($values['value']) && !empty($values['is_json'])) {
+            if (json_decode($values['value']) === null && json_last_error()) {
+                $this->stdErr->writeln('The value is not valid JSON: <error>' 
. $values['value'] . '</error>');
+
+                return 1;
+            }
+        }
+
+        // Validate the variable name for "env:"-prefixed variables.
+        $envPrefixLength = 4;
+        if (substr($values['name'], 0, $envPrefixLength) === 'env:'
+            && !preg_match('/^[a-z][a-z0-9_]*$/i', substr($values['name'], 
$envPrefixLength))) {
+            $this->stdErr->writeln('The environment variable name is invalid: 
<error>' . substr($values['name'], $envPrefixLength) . '</error>');
+            $this->stdErr->writeln('Environment variable names can only 
contain letters (A-Z), digits (0-9), and underscores. The first character must 
be a letter.');
+
+            return 1;
+        }
+
         $level = $values['level'];
         unset($values['level']);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/platformsh-cli-3.31.0/src/Command/Variable/VariableUpdateCommand.php 
new/platformsh-cli-3.31.3/src/Command/Variable/VariableUpdateCommand.php
--- old/platformsh-cli-3.31.0/src/Command/Variable/VariableUpdateCommand.php    
2018-03-20 20:43:46.000000000 +0100
+++ new/platformsh-cli-3.31.3/src/Command/Variable/VariableUpdateCommand.php    
2018-03-27 03:39:09.000000000 +0200
@@ -62,6 +62,17 @@
             }
         }
 
+        // Validate the is_json setting against the value.
+        if ((isset($variable->value) || isset($values['value']))
+            && (!empty($values['is_json']) || $variable->is_json)) {
+            $value = isset($values['value']) ? $values['value'] : 
$variable->value;
+            if (json_decode($value) === null && json_last_error()) {
+                $this->stdErr->writeln('The value is not valid JSON: <error>' 
. $value . '</error>');
+
+                return 1;
+            }
+        }
+
         if (!$values) {
             $this->stdErr->writeln('No changes were provided.');
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/platformsh-cli-3.31.0/src/Console/AdaptiveTable.php 
new/platformsh-cli-3.31.3/src/Console/AdaptiveTable.php
--- old/platformsh-cli-3.31.0/src/Console/AdaptiveTable.php     2018-03-20 
20:43:46.000000000 +0100
+++ new/platformsh-cli-3.31.3/src/Console/AdaptiveTable.php     2018-03-27 
03:39:09.000000000 +0200
@@ -175,6 +175,9 @@
         $lastTagClose = 0;
         foreach ($matches[0] as $match) {
             list($tagChunk, $tagOffset) = $match;
+            if (substr($formattedText, $tagOffset - 1, 1) === '\\') {
+                continue;
+            }
             $plainText .= substr($formattedText, $lastTagClose, $tagOffset - 
$lastTagClose);
             $tagChunks[$tagOffset] = $tagChunk;
             $lastTagClose = $tagOffset + strlen($tagChunk);
@@ -193,6 +196,8 @@
                     $breakPosition = $spacePos + 1;
                 } else {
                     $breakPosition = $maxLength;
+                    // Adjust for \< which will be converted to < later.
+                    $breakPosition += substr_count($remaining, '\\<', 0, 
$breakPosition);
                 }
                 $line = substr($remaining, 0, $breakPosition);
                 $remaining = substr($remaining, $breakPosition);
@@ -230,8 +235,8 @@
 
         // Ensure that tags are closed at the end of each line and re-opened at
         // the beginning of the next one.
-        $wrapped = preg_replace_callback("#(<" . $tagRegex . 
">)([^<\n]+)\n(.+)#", function (array $matches) {
-            return $matches[1] . $matches[2] . "</>\n" . $matches[1] . 
$matches[3];
+        $wrapped = preg_replace_callback('@(<' . $tagRegex . 
'>)(((?!(?<!\\\)</).)+)@s', function (array $matches) {
+            return $matches[1] . str_replace("\n", "</>\n" . $matches[1], 
$matches[2]);
         }, $wrapped);
 
         return $wrapped;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/platformsh-cli-3.31.0/src/Service/ActivityMonitor.php 
new/platformsh-cli-3.31.3/src/Service/ActivityMonitor.php
--- old/platformsh-cli-3.31.0/src/Service/ActivityMonitor.php   2018-03-20 
20:43:46.000000000 +0100
+++ new/platformsh-cli-3.31.3/src/Service/ActivityMonitor.php   2018-03-27 
03:39:09.000000000 +0200
@@ -282,16 +282,22 @@
      */
     public static function getFormattedDescription(Activity $activity, 
$withDecoration = true)
     {
-        $value = $activity->hasProperty('description')
-            ? $activity->getProperty('description')
-            : $activity->getDescription(true);
         if (!$withDecoration) {
-            return strip_tags($value);
+            return $activity->getDescription(false);
         }
+        $value = $activity->getDescription(true);
 
-        // Replace description HTML fields with underlined plain text.
-        $value = preg_replace('/<[^\/][^>]*>/', '<options=underscore>', 
$value);
-        $value = preg_replace('/<\/[^>]+>/', '</>', $value);
+        // Replace description HTML elements with Symfony Console decoration
+        // tags.
+        $value = preg_replace('@<[^/>]+>@', '<options=underscore>', $value);
+        $value = preg_replace('@</[^>]+>@', '</>', $value);
+
+        // Replace literal tags like "&lt;info&;gt;" with escaped tags like
+        // "\<info>".
+        $value = preg_replace('@&lt;(/?[a-z][a-z0-9,_=;-]*+)&gt;@i', 
'\\\<$1>', $value);
+
+        // Decode other HTML entities.
+        $value = html_entity_decode($value, ENT_QUOTES, 'utf-8');
 
         return $value;
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/platformsh-cli-3.31.0/src/Service/Config.php 
new/platformsh-cli-3.31.3/src/Service/Config.php
--- old/platformsh-cli-3.31.0/src/Service/Config.php    2018-03-20 
20:43:46.000000000 +0100
+++ new/platformsh-cli-3.31.3/src/Service/Config.php    2018-03-27 
03:39:09.000000000 +0200
@@ -237,4 +237,29 @@
     {
         return !empty(self::$config['experimental']['all_experiments']) || 
!empty(self::$config['experimental'][$name]);
     }
+
+    /**
+     * Test if a command should be enabled.
+     *
+     * @param string $name
+     *
+     * @return bool
+     */
+    public function isCommandEnabled($name)
+    {
+        if (!empty(self::$config['application']['disabled_commands'])
+            && in_array($name, 
self::$config['application']['disabled_commands'])) {
+            return false;
+        }
+        if (!empty(self::$config['application']['experimental_commands'])
+            && in_array($name, 
self::$config['application']['experimental_commands'])) {
+            return !empty(self::$config['experimental']['all_experiments'])
+                || (
+                    !empty(self::$config['experimental']['enable_commands'])
+                    && in_array($name, 
self::$config['experimental']['enable_commands'])
+                );
+        }
+
+        return true;
+    }
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/platformsh-cli-3.31.0/tests/Console/AdaptiveTableTest.php 
new/platformsh-cli-3.31.3/tests/Console/AdaptiveTableTest.php
--- old/platformsh-cli-3.31.0/tests/Console/AdaptiveTableTest.php       
2018-03-20 20:43:46.000000000 +0100
+++ new/platformsh-cli-3.31.3/tests/Console/AdaptiveTableTest.php       
2018-03-27 03:39:09.000000000 +0200
@@ -49,14 +49,8 @@
         $plainText = Helper::removeDecoration($f, $input);
         foreach ($maxLengths as $maxLength) {
             $plainWrapped = wordwrap($plainText, $maxLength, "\n", true);
-            $plainWrappedLines = explode("\n", $plainWrapped);
             $tableWrapped = $table->wrapWithDecoration($input, $maxLength);
-            $tableWrappedLines = explode("\n", $tableWrapped);
-            // Test each line individually, to ensure the markup makes sense 
per
-            // line.
-            foreach ($tableWrappedLines as $key => $line) {
-                $this->assertEquals($plainWrappedLines[$key], 
Helper::removeDecoration($f, $line));
-            }
+            $this->assertEquals($plainWrapped, Helper::removeDecoration($f, 
$tableWrapped));
         }
     }
 
@@ -77,7 +71,14 @@
     public function testWrapWithDecorationComplex()
     {
         $this->assertWrappedWithDecoration(
-            'Lorem ipsum <info>dolor</info> sit <info>amet,</info> consectetur 
<error>adipiscing elit,</error> sed do eiusmod tempor incididunt ut labore et 
dolore magna aliqua. Ut enim ad minim veniam, quis nostrud 
<options=underscore>exercitation</> ullamco laboris nisi ut aliquip ex ea 
commodo <options=reverse>consequat. Duis</> aute irure dolor in reprehenderit 
in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint 
occaecat (cupidatat) non <info>proident</info>, sunt in culpa qui officia 
deserunt mollit anim id est laborum.'
+            'Lorem ipsum <info>dolor</info> sit <info>amet,</info> consectetur 
<error>adipiscing elit,</error> sed do eiusmod tempor 
<options=reverse>incididunt ut labore et dolore magna aliqua.</> Ut enim ad 
minim veniam, quis nostrud <options=underscore>exercitation</> ullamco laboris 
nisi ut aliquip ex ea commodo <options=reverse>consequat. Duis</> aute irure 
dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla 
pariatur. Excepteur sint occaecat (cupidatat) non <info>proident</info>, sunt 
in culpa qui officia deserunt mollit anim id est laborum.'
+        );
+    }
+
+    public function testWrapWithDecorationIncludingEscapedTags()
+    {
+        $this->assertWrappedWithDecoration(
+            'The quick brown fox <options=underscore>jumps</> over the lazy 
\\<script type="text/javascript">dog\\</script>.'
         );
     }
 }

++++++ platformsh-cli-vendor.tar.xz ++++++
++++ 2673 lines of diff (skipped)


Reply via email to