diff --git a/core/includes/common.inc b/core/includes/common.inc
index 0f252ca..3e48fb3 100644
--- a/core/includes/common.inc
+++ b/core/includes/common.inc
@@ -3,6 +3,7 @@
 use Symfony\Component\DependencyInjection\Container;
 use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException;
 use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
+use Symfony\Component\Yaml\Yaml;
 use Drupal\Component\Utility\NestedArray;
 use Drupal\Core\Cache\CacheBackendInterface;
 use Drupal\Core\Database\Database;
@@ -5191,7 +5192,7 @@ function drupal_system_listing($mask, $directory, $key = 'name', $min_depth = 1)
     foreach (array_intersect_key($files_to_add, $files) as $file_key => $file) {
       // If it has no info file, then we just behave liberally and accept the
       // new resource on the list for merging.
-      if (file_exists($info_file = dirname($file->uri) . '/' . $file->name . '.info')) {
+      if (file_exists($info_file = dirname($file->uri) . '/' . $file->name . '.info.yml')) {
         // Get the .info file for the module or theme this file belongs to.
         $info = drupal_parse_info_file($info_file);
 
@@ -6542,36 +6543,33 @@ function drupal_array_nested_key_exists(array $array, array $parents) {
  * Parses Drupal module and theme .info files.
  *
  * Info files are NOT for placing arbitrary theme and module-specific settings.
- * Use variable_get() and variable_set() for that.
+ * Use variable_get() and variable_set() for that. Info files are formatted as
+ * YAML. If the 'version' key is set to 'VERSION' in any info file, then the
+ * value will be substituted with the current version of Drupal core.
  *
- * Information stored in a module .info file:
+ * Information stored in a module .info.yml file:
  * - name: The real name of the module for display purposes.
  * - description: A brief description of the module.
+ * - core: The version of Drupal core the module is compatible with.
  * - dependencies: An array of shortnames of other modules this module requires.
  * - package: The name of the package of modules this module belongs to.
  *
- * See forum.info for an example of a module .info file.
- *
- * Information stored in a theme .info file:
+ * Information stored in a theme .info.yml file:
  * - name: The real name of the theme for display purposes.
  * - description: Brief description.
- * - screenshot: Path to screenshot relative to the theme's .info file.
+ * - screenshot: Path to screenshot relative to the theme's .info.yml file.
  * - engine: Theme engine; typically phptemplate.
- * - base: Name of a base theme, if applicable; e.g., base = zen.
- * - regions: Listed regions; e.g., region[left] = Left sidebar.
- * - features: Features available; e.g., features[] = logo.
- * - stylesheets: Theme stylesheets; e.g., stylesheets[all][] = my-style.css.
- * - scripts: Theme scripts; e.g., scripts[] = my-script.js.
- *
- * See bartik.info for an example of a theme .info file.
+ * - base theme: Name of a base theme, if applicable
+ * - regions: Listed regions
+ * - features: Features available
+ * - stylesheets: Theme stylesheets
+ * - scripts: Theme scripts
  *
- * @param $filename
+ * @param string $filename
  *   The file we are parsing. Accepts file with relative or absolute path.
  *
- * @return
+ * @return array
  *   The info array.
- *
- * @see drupal_parse_info_format()
  */
 function drupal_parse_info_file($filename) {
   $info = &drupal_static(__FUNCTION__, array());
@@ -6582,104 +6580,13 @@ function drupal_parse_info_file($filename) {
     }
     else {
       $data = file_get_contents($filename);
-      $info[$filename] = drupal_parse_info_format($data);
-    }
-  }
-  return $info[$filename];
-}
-
-/**
- * Parses data in Drupal's .info format.
- *
- * Data should be in an .ini-like format to specify values. White-space
- * generally doesn't matter, except inside values:
- * @code
- *   key = value
- *   key = "value"
- *   key = 'value'
- *   key = "multi-line
- *   value"
- *   key = 'multi-line
- *   value'
- *   key
- *   =
- *   'value'
- * @endcode
- *
- * Arrays are created using a HTTP GET alike syntax:
- * @code
- *   key[] = "numeric array"
- *   key[index] = "associative array"
- *   key[index][] = "nested numeric array"
- *   key[index][index] = "nested associative array"
- * @endcode
- *
- * PHP constants are substituted in, but only when used as the entire value.
- * Comments should start with a semi-colon at the beginning of a line.
- *
- * @param $data
- *   A string to parse.
- *
- * @return
- *   The info array.
- *
- * @see drupal_parse_info_file()
- */
-function drupal_parse_info_format($data) {
-  $info = array();
-  $constants = get_defined_constants();
-
-  if (preg_match_all('
-    @^\s*                           # Start at the beginning of a line, ignoring leading whitespace
-    ((?:
-      [^=;\[\]]|                    # Key names cannot contain equal signs, semi-colons or square brackets,
-      \[[^\[\]]*\]                  # unless they are balanced and not nested
-    )+?)
-    \s*=\s*                         # Key/value pairs are separated by equal signs (ignoring white-space)
-    (?:
-      ("(?:[^"]|(?<=\\\\)")*")|     # Double-quoted string, which may contain slash-escaped quotes/slashes
-      (\'(?:[^\']|(?<=\\\\)\')*\')| # Single-quoted string, which may contain slash-escaped quotes/slashes
-      ([^\r\n]*?)                   # Non-quoted string
-    )\s*$                           # Stop at the next end of a line, ignoring trailing whitespace
-    @msx', $data, $matches, PREG_SET_ORDER)) {
-    foreach ($matches as $match) {
-      // Fetch the key and value string.
-      $i = 0;
-      foreach (array('key', 'value1', 'value2', 'value3') as $var) {
-        $$var = isset($match[++$i]) ? $match[$i] : '';
-      }
-      $value = stripslashes(substr($value1, 1, -1)) . stripslashes(substr($value2, 1, -1)) . $value3;
-
-      // Parse array syntax.
-      $keys = preg_split('/\]?\[/', rtrim($key, ']'));
-      $last = array_pop($keys);
-      $parent = &$info;
-
-      // Create nested arrays.
-      foreach ($keys as $key) {
-        if ($key == '') {
-          $key = count($parent);
-        }
-        if (!isset($parent[$key]) || !is_array($parent[$key])) {
-          $parent[$key] = array();
-        }
-        $parent = &$parent[$key];
+      $info[$filename] = Yaml::parse($filename);
+      if (isset($info[$filename]['version']) && $info[$filename]['version'] === 'VERSION') {
+        $info[$filename]['version'] = VERSION;
       }
-
-      // Handle PHP constants.
-      if (isset($constants[$value])) {
-        $value = $constants[$value];
-      }
-
-      // Insert actual value.
-      if ($last == '') {
-        $last = count($parent);
-      }
-      $parent[$last] = $value;
     }
   }
-
-  return $info;
+  return $info[$filename];
 }
 
 /**
diff --git a/core/includes/install.inc b/core/includes/install.inc
index db92987..fed5974 100644
--- a/core/includes/install.inc
+++ b/core/includes/install.inc
@@ -907,7 +907,7 @@ function install_profile_info($profile, $langcode = 'en') {
       'hidden' => FALSE,
       'php' => DRUPAL_MINIMUM_PHP,
     );
-    $profile_file = drupal_get_path('profile', $profile) . "/$profile.info";
+    $profile_file = drupal_get_path('profile', $profile) . "/$profile.info.yml";
     $info = drupal_parse_info_file($profile_file);
     $info += $defaults;
     $info['dependencies'] = array_unique(array_merge(
diff --git a/core/includes/module.inc b/core/includes/module.inc
index c1d99f2..dbac1a7 100644
--- a/core/includes/module.inc
+++ b/core/includes/module.inc
@@ -999,7 +999,7 @@ function module_invoke_all($hook) {
  * Returns an array of modules required by core.
  */
 function drupal_required_modules() {
-  $files = drupal_system_listing('/^' . DRUPAL_PHP_FUNCTION_PATTERN . '\.info$/', 'modules', 'name', 0);
+  $files = drupal_system_listing('/^' . DRUPAL_PHP_FUNCTION_PATTERN . '\.info.yml$/', 'modules', 'name', 0);
   $required = array();
 
   // An installation profile is required and one must always be loaded.
diff --git a/core/lib/Drupal/Core/Updater/Updater.php b/core/lib/Drupal/Core/Updater/Updater.php
index 37a8d70..cdd4e4e 100644
--- a/core/lib/Drupal/Core/Updater/Updater.php
+++ b/core/lib/Drupal/Core/Updater/Updater.php
@@ -94,7 +94,7 @@ public static function getUpdaterFromDirectory($directory) {
    *   Path to the info file.
    */
   public static function findInfoFile($directory) {
-    $info_files = file_scan_directory($directory, '/.*\.info$/');
+    $info_files = file_scan_directory($directory, '/.*\.info.yml$/');
     if (!$info_files) {
       return FALSE;
     }
diff --git a/core/modules/action/action.info b/core/modules/action/action.info
deleted file mode 100644
index ddddd63..0000000
--- a/core/modules/action/action.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = Actions
-description = Perform tasks on specific events triggered within the system.
-package = Core
-version = VERSION
-core = 8.x
-configure = admin/config/system/actions
diff --git a/core/modules/action/action.info.yml b/core/modules/action/action.info.yml
new file mode 100644
index 0000000..069c52c
--- /dev/null
+++ b/core/modules/action/action.info.yml
@@ -0,0 +1,6 @@
+name: Actions
+description: 'Perform tasks on specific events triggered within the system.'
+package: Core
+version: VERSION
+core: 8.x
+configure: admin/config/system/actions
diff --git a/core/modules/action/tests/action_loop_test/action_loop_test.info b/core/modules/action/tests/action_loop_test/action_loop_test.info
deleted file mode 100644
index 82a2810..0000000
--- a/core/modules/action/tests/action_loop_test/action_loop_test.info
+++ /dev/null
@@ -1,7 +0,0 @@
-name = Action loop test
-description = Support module for action loop testing.
-package = Testing
-version = VERSION
-core = 8.x
-hidden = TRUE
-dependencies[] = action
diff --git a/core/modules/action/tests/action_loop_test/action_loop_test.info.yml b/core/modules/action/tests/action_loop_test/action_loop_test.info.yml
new file mode 100644
index 0000000..d1a0961
--- /dev/null
+++ b/core/modules/action/tests/action_loop_test/action_loop_test.info.yml
@@ -0,0 +1,8 @@
+name: 'Action loop test'
+description: 'Support module for action loop testing.'
+package: Testing
+version: VERSION
+core: 8.x
+hidden: true
+dependencies:
+    - action
diff --git a/core/modules/aggregator/aggregator.info b/core/modules/aggregator/aggregator.info
deleted file mode 100644
index 5954a87..0000000
--- a/core/modules/aggregator/aggregator.info
+++ /dev/null
@@ -1,8 +0,0 @@
-name = Aggregator
-description = "Aggregates syndicated content (RSS, RDF, and Atom feeds) from external sources."
-package = Core
-version = VERSION
-core = 8.x
-configure = admin/config/services/aggregator/settings
-stylesheets[all][] = aggregator.theme.css
-dependencies[] = file
diff --git a/core/modules/aggregator/aggregator.info.yml b/core/modules/aggregator/aggregator.info.yml
new file mode 100644
index 0000000..91f5b6b
--- /dev/null
+++ b/core/modules/aggregator/aggregator.info.yml
@@ -0,0 +1,10 @@
+name: Aggregator
+description: 'Aggregates syndicated content (RSS, RDF, and Atom feeds) from external sources.'
+package: Core
+version: VERSION
+core: 8.x
+configure: admin/config/services/aggregator/settings
+stylesheets:
+    all: [aggregator.theme.css]
+dependencies:
+    - file
diff --git a/core/modules/aggregator/tests/aggregator_test.info b/core/modules/aggregator/tests/aggregator_test.info
deleted file mode 100644
index 583a7fc..0000000
--- a/core/modules/aggregator/tests/aggregator_test.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = "Aggregator module tests"
-description = "Support module for aggregator related testing."
-package = Testing
-version = VERSION
-core = 8.x
-hidden = TRUE
diff --git a/core/modules/aggregator/tests/aggregator_test.info.yml b/core/modules/aggregator/tests/aggregator_test.info.yml
new file mode 100644
index 0000000..5d0270b
--- /dev/null
+++ b/core/modules/aggregator/tests/aggregator_test.info.yml
@@ -0,0 +1,6 @@
+name: 'Aggregator module tests'
+description: 'Support module for aggregator related testing.'
+package: Testing
+version: VERSION
+core: 8.x
+hidden: true
diff --git a/core/modules/ban/ban.info b/core/modules/ban/ban.info
deleted file mode 100644
index e23331c..0000000
--- a/core/modules/ban/ban.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = Ban
-description = Enables banning of IP addresses.
-package = Core
-version = VERSION
-core = 8.x
-configure = admin/config/people/ban
diff --git a/core/modules/ban/ban.info.yml b/core/modules/ban/ban.info.yml
new file mode 100644
index 0000000..76b6c92
--- /dev/null
+++ b/core/modules/ban/ban.info.yml
@@ -0,0 +1,6 @@
+name: Ban
+description: 'Enables banning of IP addresses.'
+package: Core
+version: VERSION
+core: 8.x
+configure: admin/config/people/ban
diff --git a/core/modules/block/block.info b/core/modules/block/block.info
deleted file mode 100644
index e22e797..0000000
--- a/core/modules/block/block.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = Block
-description = Controls the visual building blocks a page is constructed with. Blocks are boxes of content rendered into an area, or region, of a web page.
-package = Core
-version = VERSION
-core = 8.x
-configure = admin/structure/block
diff --git a/core/modules/block/block.info.yml b/core/modules/block/block.info.yml
new file mode 100644
index 0000000..6c9de33
--- /dev/null
+++ b/core/modules/block/block.info.yml
@@ -0,0 +1,6 @@
+name: Block
+description: 'Controls the visual building blocks a page is constructed with. Blocks are boxes of content rendered into an area, or region, of a web page.'
+package: Core
+version: VERSION
+core: 8.x
+configure: admin/structure/block
diff --git a/core/modules/block/tests/block_test.info b/core/modules/block/tests/block_test.info
deleted file mode 100644
index 7efb99c..0000000
--- a/core/modules/block/tests/block_test.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = Block test
-description = Provides test blocks.
-package = Testing
-version = VERSION
-core = 8.x
-hidden = TRUE
diff --git a/core/modules/block/tests/block_test.info.yml b/core/modules/block/tests/block_test.info.yml
new file mode 100644
index 0000000..5ba4c4c
--- /dev/null
+++ b/core/modules/block/tests/block_test.info.yml
@@ -0,0 +1,6 @@
+name: 'Block test'
+description: 'Provides test blocks.'
+package: Testing
+version: VERSION
+core: 8.x
+hidden: true
diff --git a/core/modules/block/tests/themes/block_test_theme/block_test_theme.info b/core/modules/block/tests/themes/block_test_theme/block_test_theme.info
deleted file mode 100644
index 6b15fe5..0000000
--- a/core/modules/block/tests/themes/block_test_theme/block_test_theme.info
+++ /dev/null
@@ -1,14 +0,0 @@
-name = Block test theme
-description = Theme for testing the block system
-core = 8.x
-hidden = TRUE
-
-regions[sidebar_first] = Left sidebar
-regions_hidden[]  = sidebar_first
-regions[sidebar_second] = Right sidebar
-regions_hidden[]  = sidebar_second
-regions[content] = Content
-regions[header] = Header
-regions[footer] = Footer
-regions[highlighted] = Highlighted
-regions[help] = Help
diff --git a/core/modules/block/tests/themes/block_test_theme/block_test_theme.info.yml b/core/modules/block/tests/themes/block_test_theme/block_test_theme.info.yml
new file mode 100644
index 0000000..e18b261
--- /dev/null
+++ b/core/modules/block/tests/themes/block_test_theme/block_test_theme.info.yml
@@ -0,0 +1,15 @@
+name: 'Block test theme'
+description: 'Theme for testing the block system'
+core: 8.x
+hidden: true
+regions:
+    sidebar_first: 'Left sidebar'
+    sidebar_second: 'Right sidebar'
+    content: Content
+    header: Header
+    footer: Footer
+    highlighted: Highlighted
+    help: Help
+regions_hidden:
+    - sidebar_first
+    - sidebar_second
diff --git a/core/modules/book/book.info b/core/modules/book/book.info
deleted file mode 100644
index 1f2be6f..0000000
--- a/core/modules/book/book.info
+++ /dev/null
@@ -1,8 +0,0 @@
-name = Book
-description = Allows users to create and organize related content in an outline.
-package = Core
-version = VERSION
-core = 8.x
-dependencies[] = node
-configure = admin/content/book/settings
-stylesheets[all][] = book.theme.css
diff --git a/core/modules/book/book.info.yml b/core/modules/book/book.info.yml
new file mode 100644
index 0000000..2c7dc44
--- /dev/null
+++ b/core/modules/book/book.info.yml
@@ -0,0 +1,10 @@
+name: Book
+description: 'Allows users to create and organize related content in an outline.'
+package: Core
+version: VERSION
+core: 8.x
+dependencies:
+    - node
+configure: admin/content/book/settings
+stylesheets:
+    all: [book.theme.css]
diff --git a/core/modules/color/color.info b/core/modules/color/color.info
deleted file mode 100644
index 6d2c9f9..0000000
--- a/core/modules/color/color.info
+++ /dev/null
@@ -1,5 +0,0 @@
-name = Color
-description = Allows administrators to change the color scheme of compatible themes.
-package = Core
-version = VERSION
-core = 8.x
diff --git a/core/modules/color/color.info.yml b/core/modules/color/color.info.yml
new file mode 100644
index 0000000..1936089
--- /dev/null
+++ b/core/modules/color/color.info.yml
@@ -0,0 +1,5 @@
+name: Color
+description: 'Allows administrators to change the color scheme of compatible themes.'
+package: Core
+version: VERSION
+core: 8.x
diff --git a/core/modules/comment/comment.info b/core/modules/comment/comment.info
deleted file mode 100644
index 6028bda..0000000
--- a/core/modules/comment/comment.info
+++ /dev/null
@@ -1,9 +0,0 @@
-name = Comment
-description = Allows users to comment on and discuss published content.
-package = Core
-version = VERSION
-core = 8.x
-dependencies[] = node
-dependencies[] = text
-configure = admin/content/comment
-stylesheets[all][] = comment.theme.css
diff --git a/core/modules/comment/comment.info.yml b/core/modules/comment/comment.info.yml
new file mode 100644
index 0000000..775b65a
--- /dev/null
+++ b/core/modules/comment/comment.info.yml
@@ -0,0 +1,11 @@
+name: Comment
+description: 'Allows users to comment on and discuss published content.'
+package: Core
+version: VERSION
+core: 8.x
+dependencies:
+    - node
+    - text
+configure: admin/content/comment
+stylesheets:
+    all: [comment.theme.css]
diff --git a/core/modules/comment/tests/modules/comment_test/comment_test.info b/core/modules/comment/tests/modules/comment_test/comment_test.info
deleted file mode 100644
index a7ad565..0000000
--- a/core/modules/comment/tests/modules/comment_test/comment_test.info
+++ /dev/null
@@ -1,8 +0,0 @@
-name = Comment test
-description = Support module for Comment module testing.
-package = Testing
-version = VERSION
-core = 8.x
-hidden = TRUE
-
-dependencies[] = comment
diff --git a/core/modules/comment/tests/modules/comment_test/comment_test.info.yml b/core/modules/comment/tests/modules/comment_test/comment_test.info.yml
new file mode 100644
index 0000000..bb13fa2
--- /dev/null
+++ b/core/modules/comment/tests/modules/comment_test/comment_test.info.yml
@@ -0,0 +1,8 @@
+name: 'Comment test'
+description: 'Support module for Comment module testing.'
+package: Testing
+version: VERSION
+core: 8.x
+hidden: true
+dependencies:
+    - comment
diff --git a/core/modules/config/config.info b/core/modules/config/config.info
deleted file mode 100644
index 380f17e..0000000
--- a/core/modules/config/config.info
+++ /dev/null
@@ -1,5 +0,0 @@
-name = Configuration manager
-description = Allows administrators to manage configuration changes.
-package = Core
-version = VERSION
-core = 8.x
diff --git a/core/modules/config/config.info.yml b/core/modules/config/config.info.yml
new file mode 100644
index 0000000..de3a93e
--- /dev/null
+++ b/core/modules/config/config.info.yml
@@ -0,0 +1,5 @@
+name: 'Configuration manager'
+description: 'Allows administrators to manage configuration changes.'
+package: Core
+version: VERSION
+core: 8.x
diff --git a/core/modules/config/tests/config_test/config_test.info b/core/modules/config/tests/config_test/config_test.info
deleted file mode 100644
index 3c0ca6b..0000000
--- a/core/modules/config/tests/config_test/config_test.info
+++ /dev/null
@@ -1,5 +0,0 @@
-name = Configuration test module
-package = Core
-version = VERSION
-core = 8.x
-hidden = TRUE
diff --git a/core/modules/config/tests/config_test/config_test.info.yml b/core/modules/config/tests/config_test/config_test.info.yml
new file mode 100644
index 0000000..9ccdc31
--- /dev/null
+++ b/core/modules/config/tests/config_test/config_test.info.yml
@@ -0,0 +1,5 @@
+name: 'Configuration test module'
+package: Core
+version: VERSION
+core: 8.x
+hidden: true
diff --git a/core/modules/contact/contact.info b/core/modules/contact/contact.info
deleted file mode 100644
index eff6d33..0000000
--- a/core/modules/contact/contact.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = Contact
-description = Enables the use of both personal and site-wide contact forms.
-package = Core
-version = VERSION
-core = 8.x
-configure = admin/structure/contact
diff --git a/core/modules/contact/contact.info.yml b/core/modules/contact/contact.info.yml
new file mode 100644
index 0000000..1d5ce12
--- /dev/null
+++ b/core/modules/contact/contact.info.yml
@@ -0,0 +1,6 @@
+name: Contact
+description: 'Enables the use of both personal and site-wide contact forms.'
+package: Core
+version: VERSION
+core: 8.x
+configure: admin/structure/contact
diff --git a/core/modules/contextual/contextual.info b/core/modules/contextual/contextual.info
deleted file mode 100644
index 8a99dea..0000000
--- a/core/modules/contextual/contextual.info
+++ /dev/null
@@ -1,5 +0,0 @@
-name = Contextual Links
-description = Provides contextual links to perform actions related to elements on a page.
-package = Core
-version = VERSION
-core = 8.x
diff --git a/core/modules/contextual/contextual.info.yml b/core/modules/contextual/contextual.info.yml
new file mode 100644
index 0000000..947f554
--- /dev/null
+++ b/core/modules/contextual/contextual.info.yml
@@ -0,0 +1,5 @@
+name: 'Contextual Links'
+description: 'Provides contextual links to perform actions related to elements on a page.'
+package: Core
+version: VERSION
+core: 8.x
diff --git a/core/modules/dblog/dblog.info b/core/modules/dblog/dblog.info
deleted file mode 100644
index fd18bb3..0000000
--- a/core/modules/dblog/dblog.info
+++ /dev/null
@@ -1,5 +0,0 @@
-name = Database Logging
-description = Logs and records system events to the database.
-package = Core
-version = VERSION
-core = 8.x
diff --git a/core/modules/dblog/dblog.info.yml b/core/modules/dblog/dblog.info.yml
new file mode 100644
index 0000000..41a1bd7
--- /dev/null
+++ b/core/modules/dblog/dblog.info.yml
@@ -0,0 +1,5 @@
+name: 'Database Logging'
+description: 'Logs and records system events to the database.'
+package: Core
+version: VERSION
+core: 8.x
diff --git a/core/modules/field/field.info b/core/modules/field/field.info
deleted file mode 100644
index 88529e2..0000000
--- a/core/modules/field/field.info
+++ /dev/null
@@ -1,8 +0,0 @@
-name = Field
-description = Field API to add fields to entities like nodes and users.
-package = Core
-version = VERSION
-core = 8.x
-dependencies[] = field_sql_storage
-required = TRUE
-stylesheets[all][] = theme/field.css
diff --git a/core/modules/field/field.info.yml b/core/modules/field/field.info.yml
new file mode 100644
index 0000000..18dd23a
--- /dev/null
+++ b/core/modules/field/field.info.yml
@@ -0,0 +1,10 @@
+name: Field
+description: 'Field API to add fields to entities like nodes and users.'
+package: Core
+version: VERSION
+core: 8.x
+dependencies:
+    - field_sql_storage
+required: true
+stylesheets:
+    all: [theme/field.css]
diff --git a/core/modules/field/modules/email/email.info b/core/modules/field/modules/email/email.info
deleted file mode 100644
index 5c3d3ff..0000000
--- a/core/modules/field/modules/email/email.info
+++ /dev/null
@@ -1,7 +0,0 @@
-name = E-mail
-description = Defines a field type for e-mail addresses.
-package = Core
-version = VERSION
-core = 8.x
-dependencies[] = field
-dependencies[] = text
diff --git a/core/modules/field/modules/email/email.info.yml b/core/modules/field/modules/email/email.info.yml
new file mode 100644
index 0000000..e672d38
--- /dev/null
+++ b/core/modules/field/modules/email/email.info.yml
@@ -0,0 +1,8 @@
+name: E-mail
+description: 'Defines a field type for e-mail addresses.'
+package: Core
+version: VERSION
+core: 8.x
+dependencies:
+    - field
+    - text
diff --git a/core/modules/field/modules/field_sql_storage/field_sql_storage.info b/core/modules/field/modules/field_sql_storage/field_sql_storage.info
deleted file mode 100644
index 2106ac7..0000000
--- a/core/modules/field/modules/field_sql_storage/field_sql_storage.info
+++ /dev/null
@@ -1,7 +0,0 @@
-name = Field SQL Storage
-description = Stores field data in an SQL database.
-package = Core
-version = VERSION
-core = 8.x
-dependencies[] = field
-required = TRUE
diff --git a/core/modules/field/modules/field_sql_storage/field_sql_storage.info.yml b/core/modules/field/modules/field_sql_storage/field_sql_storage.info.yml
new file mode 100644
index 0000000..86a194e
--- /dev/null
+++ b/core/modules/field/modules/field_sql_storage/field_sql_storage.info.yml
@@ -0,0 +1,8 @@
+name: 'Field SQL Storage'
+description: 'Stores field data in an SQL database.'
+package: Core
+version: VERSION
+core: 8.x
+dependencies:
+    - field
+required: true
diff --git a/core/modules/field/modules/link/link.info b/core/modules/field/modules/link/link.info
deleted file mode 100644
index a43c222..0000000
--- a/core/modules/field/modules/link/link.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = Link
-description = Provides a simple link field type.
-core = 8.x
-package = Core
-version = VERSION
-dependencies[] = field
diff --git a/core/modules/field/modules/link/link.info.yml b/core/modules/field/modules/link/link.info.yml
new file mode 100644
index 0000000..d18aee0
--- /dev/null
+++ b/core/modules/field/modules/link/link.info.yml
@@ -0,0 +1,7 @@
+name: Link
+description: 'Provides a simple link field type.'
+core: 8.x
+package: Core
+version: VERSION
+dependencies:
+    - field
diff --git a/core/modules/field/modules/number/number.info b/core/modules/field/modules/number/number.info
deleted file mode 100644
index aabe3d7..0000000
--- a/core/modules/field/modules/number/number.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = Number
-description = Defines numeric field types.
-package = Core
-version = VERSION
-core = 8.x
-dependencies[] = field
diff --git a/core/modules/field/modules/number/number.info.yml b/core/modules/field/modules/number/number.info.yml
new file mode 100644
index 0000000..5fa830e
--- /dev/null
+++ b/core/modules/field/modules/number/number.info.yml
@@ -0,0 +1,7 @@
+name: Number
+description: 'Defines numeric field types.'
+package: Core
+version: VERSION
+core: 8.x
+dependencies:
+    - field
diff --git a/core/modules/field/modules/options/options.info b/core/modules/field/modules/options/options.info
deleted file mode 100644
index f19e952..0000000
--- a/core/modules/field/modules/options/options.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = Options
-description = Defines selection, check box and radio button widgets for text and numeric fields.
-package = Core
-version = VERSION
-core = 8.x
-dependencies[] = field
diff --git a/core/modules/field/modules/options/options.info.yml b/core/modules/field/modules/options/options.info.yml
new file mode 100644
index 0000000..47d3535
--- /dev/null
+++ b/core/modules/field/modules/options/options.info.yml
@@ -0,0 +1,7 @@
+name: Options
+description: 'Defines selection, check box and radio button widgets for text and numeric fields.'
+package: Core
+version: VERSION
+core: 8.x
+dependencies:
+    - field
diff --git a/core/modules/field/modules/options/tests/options_test.info b/core/modules/field/modules/options/tests/options_test.info
deleted file mode 100644
index 34acbf10..0000000
--- a/core/modules/field/modules/options/tests/options_test.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = "Options test"
-description = "Support module for the Options module tests."
-core = 8.x
-package = Testing
-version = VERSION
-hidden = TRUE
diff --git a/core/modules/field/modules/options/tests/options_test.info.yml b/core/modules/field/modules/options/tests/options_test.info.yml
new file mode 100644
index 0000000..cc88206
--- /dev/null
+++ b/core/modules/field/modules/options/tests/options_test.info.yml
@@ -0,0 +1,6 @@
+name: 'Options test'
+description: 'Support module for the Options module tests.'
+core: 8.x
+package: Testing
+version: VERSION
+hidden: true
diff --git a/core/modules/field/modules/text/text.info b/core/modules/field/modules/text/text.info
deleted file mode 100644
index 3ba8357..0000000
--- a/core/modules/field/modules/text/text.info
+++ /dev/null
@@ -1,7 +0,0 @@
-name = Text
-description = Defines simple text field types.
-package = Core
-version = VERSION
-core = 8.x
-dependencies[] = field
-required = TRUE
diff --git a/core/modules/field/modules/text/text.info.yml b/core/modules/field/modules/text/text.info.yml
new file mode 100644
index 0000000..4b1d5a0
--- /dev/null
+++ b/core/modules/field/modules/text/text.info.yml
@@ -0,0 +1,8 @@
+name: Text
+description: 'Defines simple text field types.'
+package: Core
+version: VERSION
+core: 8.x
+dependencies:
+    - field
+required: true
diff --git a/core/modules/field/tests/modules/field_test/field_test.info b/core/modules/field/tests/modules/field_test/field_test.info
deleted file mode 100644
index 44d5233..0000000
--- a/core/modules/field/tests/modules/field_test/field_test.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = "Field API Test"
-description = "Support module for the Field API tests."
-core = 8.x
-package = Testing
-version = VERSION
-hidden = TRUE
diff --git a/core/modules/field/tests/modules/field_test/field_test.info.yml b/core/modules/field/tests/modules/field_test/field_test.info.yml
new file mode 100644
index 0000000..520c21a
--- /dev/null
+++ b/core/modules/field/tests/modules/field_test/field_test.info.yml
@@ -0,0 +1,6 @@
+name: 'Field API Test'
+description: 'Support module for the Field API tests.'
+core: 8.x
+package: Testing
+version: VERSION
+hidden: true
diff --git a/core/modules/field_ui/field_ui.info b/core/modules/field_ui/field_ui.info
deleted file mode 100644
index 2c3c27a..0000000
--- a/core/modules/field_ui/field_ui.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = Field UI
-description = User interface for the Field API.
-package = Core
-version = VERSION
-core = 8.x
-dependencies[] = field
diff --git a/core/modules/field_ui/field_ui.info.yml b/core/modules/field_ui/field_ui.info.yml
new file mode 100644
index 0000000..f66f48e
--- /dev/null
+++ b/core/modules/field_ui/field_ui.info.yml
@@ -0,0 +1,7 @@
+name: 'Field UI'
+description: 'User interface for the Field API.'
+package: Core
+version: VERSION
+core: 8.x
+dependencies:
+    - field
diff --git a/core/modules/file/file.info b/core/modules/file/file.info
deleted file mode 100644
index dc93ab0..0000000
--- a/core/modules/file/file.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = File
-description = Defines a file field type.
-package = Core
-version = VERSION
-core = 8.x
-dependencies[] = field
diff --git a/core/modules/file/file.info.yml b/core/modules/file/file.info.yml
new file mode 100644
index 0000000..ef4cbcd
--- /dev/null
+++ b/core/modules/file/file.info.yml
@@ -0,0 +1,7 @@
+name: File
+description: 'Defines a file field type.'
+package: Core
+version: VERSION
+core: 8.x
+dependencies:
+    - field
diff --git a/core/modules/file/tests/file_module_test.info b/core/modules/file/tests/file_module_test.info
deleted file mode 100644
index d83441c..0000000
--- a/core/modules/file/tests/file_module_test.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = File test
-description = Provides hooks for testing File module functionality.
-package = Core
-version = VERSION
-core = 8.x
-hidden = TRUE
diff --git a/core/modules/file/tests/file_module_test.info.yml b/core/modules/file/tests/file_module_test.info.yml
new file mode 100644
index 0000000..3962514
--- /dev/null
+++ b/core/modules/file/tests/file_module_test.info.yml
@@ -0,0 +1,6 @@
+name: 'File test'
+description: 'Provides hooks for testing File module functionality.'
+package: Core
+version: VERSION
+core: 8.x
+hidden: true
diff --git a/core/modules/file/tests/file_test/file_test.info b/core/modules/file/tests/file_test/file_test.info
deleted file mode 100644
index 3806eb9..0000000
--- a/core/modules/file/tests/file_test/file_test.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = "File test"
-description = "Support module for file handling tests."
-package = Testing
-version = VERSION
-core = 8.x
-hidden = TRUE
diff --git a/core/modules/file/tests/file_test/file_test.info.yml b/core/modules/file/tests/file_test/file_test.info.yml
new file mode 100644
index 0000000..2da29e4
--- /dev/null
+++ b/core/modules/file/tests/file_test/file_test.info.yml
@@ -0,0 +1,6 @@
+name: 'File test'
+description: 'Support module for file handling tests.'
+package: Testing
+version: VERSION
+core: 8.x
+hidden: true
diff --git a/core/modules/filter/filter.info b/core/modules/filter/filter.info
deleted file mode 100644
index 03ed179..0000000
--- a/core/modules/filter/filter.info
+++ /dev/null
@@ -1,7 +0,0 @@
-name = Filter
-description = Filters content in preparation for display.
-package = Core
-version = VERSION
-core = 8.x
-required = TRUE
-configure = admin/config/content/formats
diff --git a/core/modules/filter/filter.info.yml b/core/modules/filter/filter.info.yml
new file mode 100644
index 0000000..7603bd9
--- /dev/null
+++ b/core/modules/filter/filter.info.yml
@@ -0,0 +1,7 @@
+name: Filter
+description: 'Filters content in preparation for display.'
+package: Core
+version: VERSION
+core: 8.x
+required: true
+configure: admin/config/content/formats
diff --git a/core/modules/forum/forum.info b/core/modules/forum/forum.info
deleted file mode 100644
index 887ed93..0000000
--- a/core/modules/forum/forum.info
+++ /dev/null
@@ -1,10 +0,0 @@
-name = Forum
-description = Provides discussion forums.
-dependencies[] = node
-dependencies[] = taxonomy
-dependencies[] = comment
-package = Core
-version = VERSION
-core = 8.x
-configure = admin/structure/forum
-stylesheets[all][] = forum.css
diff --git a/core/modules/forum/forum.info.yml b/core/modules/forum/forum.info.yml
new file mode 100644
index 0000000..5444fe2
--- /dev/null
+++ b/core/modules/forum/forum.info.yml
@@ -0,0 +1,12 @@
+name: Forum
+description: 'Provides discussion forums.'
+dependencies:
+    - node
+    - taxonomy
+    - comment
+package: Core
+version: VERSION
+core: 8.x
+configure: admin/structure/forum
+stylesheets:
+    all: [forum.css]
diff --git a/core/modules/help/help.info b/core/modules/help/help.info
deleted file mode 100644
index 615a302..0000000
--- a/core/modules/help/help.info
+++ /dev/null
@@ -1,5 +0,0 @@
-name = Help
-description = Manages the display of online help.
-package = Core
-version = VERSION
-core = 8.x
diff --git a/core/modules/help/help.info.yml b/core/modules/help/help.info.yml
new file mode 100644
index 0000000..3f27925
--- /dev/null
+++ b/core/modules/help/help.info.yml
@@ -0,0 +1,5 @@
+name: Help
+description: 'Manages the display of online help.'
+package: Core
+version: VERSION
+core: 8.x
diff --git a/core/modules/image/image.info b/core/modules/image/image.info
deleted file mode 100644
index a63fbf5..0000000
--- a/core/modules/image/image.info
+++ /dev/null
@@ -1,7 +0,0 @@
-name = Image
-description = Provides image manipulation tools.
-package = Core
-version = VERSION
-core = 8.x
-dependencies[] = file
-configure = admin/config/media/image-styles
diff --git a/core/modules/image/image.info.yml b/core/modules/image/image.info.yml
new file mode 100644
index 0000000..c6a4f83
--- /dev/null
+++ b/core/modules/image/image.info.yml
@@ -0,0 +1,8 @@
+name: Image
+description: 'Provides image manipulation tools.'
+package: Core
+version: VERSION
+core: 8.x
+dependencies:
+    - file
+configure: admin/config/media/image-styles
diff --git a/core/modules/image/tests/image_module_test.info b/core/modules/image/tests/image_module_test.info
deleted file mode 100644
index f73b913..0000000
--- a/core/modules/image/tests/image_module_test.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = Image test
-description = Provides hook implementations for testing Image module functionality.
-package = Core
-version = VERSION
-core = 8.x
-hidden = TRUE
diff --git a/core/modules/image/tests/image_module_test.info.yml b/core/modules/image/tests/image_module_test.info.yml
new file mode 100644
index 0000000..4039fd1
--- /dev/null
+++ b/core/modules/image/tests/image_module_test.info.yml
@@ -0,0 +1,6 @@
+name: 'Image test'
+description: 'Provides hook implementations for testing Image module functionality.'
+package: Core
+version: VERSION
+core: 8.x
+hidden: true
diff --git a/core/modules/language/language.info b/core/modules/language/language.info
deleted file mode 100644
index 309704f..0000000
--- a/core/modules/language/language.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = Language
-description = Lets you configure a number of languages to be used on your website and provides language negotiation functionality.
-package = Core
-version = VERSION
-core = 8.x
-configure = admin/config/regional/language
diff --git a/core/modules/language/language.info.yml b/core/modules/language/language.info.yml
new file mode 100644
index 0000000..854d115
--- /dev/null
+++ b/core/modules/language/language.info.yml
@@ -0,0 +1,6 @@
+name: Language
+description: 'Lets you configure a number of languages to be used on your website and provides language negotiation functionality.'
+package: Core
+version: VERSION
+core: 8.x
+configure: admin/config/regional/language
diff --git a/core/modules/language/tests/language_test.info b/core/modules/language/tests/language_test.info
deleted file mode 100644
index 6a9a7aa..0000000
--- a/core/modules/language/tests/language_test.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = "Language test"
-description = "Support module for the language layer tests."
-core = 8.x
-package = Testing
-version = VERSION
-hidden = TRUE
diff --git a/core/modules/language/tests/language_test.info.yml b/core/modules/language/tests/language_test.info.yml
new file mode 100644
index 0000000..3e8e9f6
--- /dev/null
+++ b/core/modules/language/tests/language_test.info.yml
@@ -0,0 +1,6 @@
+name: 'Language test'
+description: 'Support module for the language layer tests.'
+core: 8.x
+package: Testing
+version: VERSION
+hidden: true
diff --git a/core/modules/locale/locale.info b/core/modules/locale/locale.info
deleted file mode 100644
index 1e7a4ae..0000000
--- a/core/modules/locale/locale.info
+++ /dev/null
@@ -1,7 +0,0 @@
-name = Locale
-description = Provides user interface translation to languages other than English.
-package = Core
-version = VERSION
-core = 8.x
-dependencies[] = language
-dependencies[] = file
diff --git a/core/modules/locale/locale.info.yml b/core/modules/locale/locale.info.yml
new file mode 100644
index 0000000..4be3e30
--- /dev/null
+++ b/core/modules/locale/locale.info.yml
@@ -0,0 +1,8 @@
+name: Locale
+description: 'Provides user interface translation to languages other than English.'
+package: Core
+version: VERSION
+core: 8.x
+dependencies:
+    - language
+    - file
diff --git a/core/modules/locale/tests/modules/locale_test/locale_test.info b/core/modules/locale/tests/modules/locale_test/locale_test.info
deleted file mode 100644
index f17a400..0000000
--- a/core/modules/locale/tests/modules/locale_test/locale_test.info
+++ /dev/null
@@ -1,10 +0,0 @@
-name = Locale test
-description = Support module for locale module testing.
-package = Testing
-version = 1.2
-core = 8.x
-hidden = TRUE
-
-; Definitions for interface translations.
-interface translation project = locale_test
-interface translation server pattern = core/modules/locale/test/test.%language.po
diff --git a/core/modules/locale/tests/modules/locale_test/locale_test.info.yml b/core/modules/locale/tests/modules/locale_test/locale_test.info.yml
new file mode 100644
index 0000000..bd5f032
--- /dev/null
+++ b/core/modules/locale/tests/modules/locale_test/locale_test.info.yml
@@ -0,0 +1,8 @@
+name: 'Locale test'
+description: 'Support module for locale module testing.'
+package: Testing
+version: '1.2'
+core: 8.x
+hidden: true
+'interface translation project': locale_test
+'interface translation server pattern': core/modules/locale/test/test.%language.po
diff --git a/core/modules/locale/tests/modules/locale_test_disabled/locale_test_disabled.info b/core/modules/locale/tests/modules/locale_test_disabled/locale_test_disabled.info
deleted file mode 100644
index 7eddf25..0000000
--- a/core/modules/locale/tests/modules/locale_test_disabled/locale_test_disabled.info
+++ /dev/null
@@ -1,10 +0,0 @@
-name = Disabled locale test
-description = Disabled support module for locale module testing.
-package = Testing
-version = VERSION
-core = 8.x
-hidden = TRUE
-project = locale_test_disabled
-
-; Definitions for interface translation.
-interface translation project = locale_test_disabled
diff --git a/core/modules/locale/tests/modules/locale_test_disabled/locale_test_disabled.info.yml b/core/modules/locale/tests/modules/locale_test_disabled/locale_test_disabled.info.yml
new file mode 100644
index 0000000..315f457
--- /dev/null
+++ b/core/modules/locale/tests/modules/locale_test_disabled/locale_test_disabled.info.yml
@@ -0,0 +1,8 @@
+name: 'Disabled locale test'
+description: 'Disabled support module for locale module testing.'
+package: Testing
+version: VERSION
+core: 8.x
+hidden: true
+project: locale_test_disabled
+'interface translation project': locale_test_disabled
diff --git a/core/modules/menu/menu.info b/core/modules/menu/menu.info
deleted file mode 100644
index e5e2c8b..0000000
--- a/core/modules/menu/menu.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = Menu
-description = Allows administrators to customize the site navigation menu.
-package = Core
-version = VERSION
-core = 8.x
-configure = admin/structure/menu
diff --git a/core/modules/menu/menu.info.yml b/core/modules/menu/menu.info.yml
new file mode 100644
index 0000000..39cc450
--- /dev/null
+++ b/core/modules/menu/menu.info.yml
@@ -0,0 +1,6 @@
+name: Menu
+description: 'Allows administrators to customize the site navigation menu.'
+package: Core
+version: VERSION
+core: 8.x
+configure: admin/structure/menu
diff --git a/core/modules/node/node.info b/core/modules/node/node.info
deleted file mode 100644
index da33c43..0000000
--- a/core/modules/node/node.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = Node
-description = Allows content to be submitted to the site and displayed on pages.
-package = Core
-version = VERSION
-core = 8.x
-configure = admin/structure/types
diff --git a/core/modules/node/node.info.yml b/core/modules/node/node.info.yml
new file mode 100644
index 0000000..8703ae3
--- /dev/null
+++ b/core/modules/node/node.info.yml
@@ -0,0 +1,6 @@
+name: Node
+description: 'Allows content to be submitted to the site and displayed on pages.'
+package: Core
+version: VERSION
+core: 8.x
+configure: admin/structure/types
diff --git a/core/modules/node/tests/modules/node_access_test/node_access_test.info b/core/modules/node/tests/modules/node_access_test/node_access_test.info
deleted file mode 100644
index 4de1c2d..0000000
--- a/core/modules/node/tests/modules/node_access_test/node_access_test.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = "Node module access tests"
-description = "Support module for node permission testing."
-package = Testing
-version = VERSION
-core = 8.x
-hidden = TRUE
diff --git a/core/modules/node/tests/modules/node_access_test/node_access_test.info.yml b/core/modules/node/tests/modules/node_access_test/node_access_test.info.yml
new file mode 100644
index 0000000..7ed4f0d
--- /dev/null
+++ b/core/modules/node/tests/modules/node_access_test/node_access_test.info.yml
@@ -0,0 +1,6 @@
+name: 'Node module access tests'
+description: 'Support module for node permission testing.'
+package: Testing
+version: VERSION
+core: 8.x
+hidden: true
diff --git a/core/modules/node/tests/modules/node_test/node_test.info b/core/modules/node/tests/modules/node_test/node_test.info
deleted file mode 100644
index 86eed52..0000000
--- a/core/modules/node/tests/modules/node_test/node_test.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = "Node module tests"
-description = "Support module for node related testing."
-package = Testing
-version = VERSION
-core = 8.x
-hidden = TRUE
diff --git a/core/modules/node/tests/modules/node_test/node_test.info.yml b/core/modules/node/tests/modules/node_test/node_test.info.yml
new file mode 100644
index 0000000..37b0b31
--- /dev/null
+++ b/core/modules/node/tests/modules/node_test/node_test.info.yml
@@ -0,0 +1,6 @@
+name: 'Node module tests'
+description: 'Support module for node related testing.'
+package: Testing
+version: VERSION
+core: 8.x
+hidden: true
diff --git a/core/modules/node/tests/modules/node_test_exception/node_test_exception.info b/core/modules/node/tests/modules/node_test_exception/node_test_exception.info
deleted file mode 100644
index 3289912..0000000
--- a/core/modules/node/tests/modules/node_test_exception/node_test_exception.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = "Node module exception tests"
-description = "Support module for node related exception testing."
-package = Testing
-version = VERSION
-core = 8.x
-hidden = TRUE
diff --git a/core/modules/node/tests/modules/node_test_exception/node_test_exception.info.yml b/core/modules/node/tests/modules/node_test_exception/node_test_exception.info.yml
new file mode 100644
index 0000000..a4fbd7b
--- /dev/null
+++ b/core/modules/node/tests/modules/node_test_exception/node_test_exception.info.yml
@@ -0,0 +1,6 @@
+name: 'Node module exception tests'
+description: 'Support module for node related exception testing.'
+package: Testing
+version: VERSION
+core: 8.x
+hidden: true
diff --git a/core/modules/openid/openid.info b/core/modules/openid/openid.info
deleted file mode 100644
index fd7359a..0000000
--- a/core/modules/openid/openid.info
+++ /dev/null
@@ -1,5 +0,0 @@
-name = OpenID
-description = "Allows users to log into your site using OpenID."
-version = VERSION
-package = Core
-core = 8.x
diff --git a/core/modules/openid/openid.info.yml b/core/modules/openid/openid.info.yml
new file mode 100644
index 0000000..23a55cf
--- /dev/null
+++ b/core/modules/openid/openid.info.yml
@@ -0,0 +1,5 @@
+name: OpenID
+description: 'Allows users to log into your site using OpenID.'
+version: VERSION
+package: Core
+core: 8.x
diff --git a/core/modules/openid/tests/openid_test.info b/core/modules/openid/tests/openid_test.info
deleted file mode 100644
index 94d125d..0000000
--- a/core/modules/openid/tests/openid_test.info
+++ /dev/null
@@ -1,7 +0,0 @@
-name = OpenID dummy provider
-description = "OpenID provider used for testing."
-package = Testing
-version = VERSION
-core = 8.x
-dependencies[] = openid
-hidden = TRUE
diff --git a/core/modules/openid/tests/openid_test.info.yml b/core/modules/openid/tests/openid_test.info.yml
new file mode 100644
index 0000000..c0c3177
--- /dev/null
+++ b/core/modules/openid/tests/openid_test.info.yml
@@ -0,0 +1,8 @@
+name: 'OpenID dummy provider'
+description: 'OpenID provider used for testing.'
+package: Testing
+version: VERSION
+core: 8.x
+dependencies:
+    - openid
+hidden: true
diff --git a/core/modules/overlay/overlay.info b/core/modules/overlay/overlay.info
deleted file mode 100644
index a782792..0000000
--- a/core/modules/overlay/overlay.info
+++ /dev/null
@@ -1,5 +0,0 @@
-name = Overlay
-description = Displays the Drupal administration interface in an overlay.
-package = Core
-version = VERSION
-core = 8.x
diff --git a/core/modules/overlay/overlay.info.yml b/core/modules/overlay/overlay.info.yml
new file mode 100644
index 0000000..780c759
--- /dev/null
+++ b/core/modules/overlay/overlay.info.yml
@@ -0,0 +1,5 @@
+name: Overlay
+description: 'Displays the Drupal administration interface in an overlay.'
+package: Core
+version: VERSION
+core: 8.x
diff --git a/core/modules/path/path.info b/core/modules/path/path.info
deleted file mode 100644
index 7323d1b..0000000
--- a/core/modules/path/path.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = Path
-description = Allows users to rename URLs.
-package = Core
-version = VERSION
-core = 8.x
-configure = admin/config/search/path
diff --git a/core/modules/path/path.info.yml b/core/modules/path/path.info.yml
new file mode 100644
index 0000000..b308d4a
--- /dev/null
+++ b/core/modules/path/path.info.yml
@@ -0,0 +1,6 @@
+name: Path
+description: 'Allows users to rename URLs.'
+package: Core
+version: VERSION
+core: 8.x
+configure: admin/config/search/path
diff --git a/core/modules/php/php.info b/core/modules/php/php.info
deleted file mode 100644
index f155609..0000000
--- a/core/modules/php/php.info
+++ /dev/null
@@ -1,5 +0,0 @@
-name = PHP Filter
-description = Allows embedded PHP code/snippets to be evaluated.
-package = Core
-version = VERSION
-core = 8.x
diff --git a/core/modules/php/php.info.yml b/core/modules/php/php.info.yml
new file mode 100644
index 0000000..1503db1
--- /dev/null
+++ b/core/modules/php/php.info.yml
@@ -0,0 +1,5 @@
+name: 'PHP Filter'
+description: 'Allows embedded PHP code/snippets to be evaluated.'
+package: Core
+version: VERSION
+core: 8.x
diff --git a/core/modules/poll/poll.info b/core/modules/poll/poll.info
deleted file mode 100644
index 7cd674a..0000000
--- a/core/modules/poll/poll.info
+++ /dev/null
@@ -1,8 +0,0 @@
-name = Poll
-description = Allows your site to capture votes on different topics in the form of multiple choice questions.
-package = Core
-version = VERSION
-core = 8.x
-dependencies[] = node
-stylesheets[all][] = poll.base.css
-stylesheets[all][] = poll.theme.css
diff --git a/core/modules/poll/poll.info.yml b/core/modules/poll/poll.info.yml
new file mode 100644
index 0000000..8b1e761
--- /dev/null
+++ b/core/modules/poll/poll.info.yml
@@ -0,0 +1,9 @@
+name: Poll
+description: 'Allows your site to capture votes on different topics in the form of multiple choice questions.'
+package: Core
+version: VERSION
+core: 8.x
+dependencies:
+    - node
+stylesheets:
+    all: [poll.base.css, poll.theme.css]
diff --git a/core/modules/rdf/rdf.info b/core/modules/rdf/rdf.info
deleted file mode 100644
index bc975de..0000000
--- a/core/modules/rdf/rdf.info
+++ /dev/null
@@ -1,5 +0,0 @@
-name = RDF
-description = Enriches your content with metadata to let other applications (e.g. search engines, aggregators) better understand its relationships and attributes.
-package = Core
-version = VERSION
-core = 8.x
diff --git a/core/modules/rdf/rdf.info.yml b/core/modules/rdf/rdf.info.yml
new file mode 100644
index 0000000..c1c7b1b
--- /dev/null
+++ b/core/modules/rdf/rdf.info.yml
@@ -0,0 +1,5 @@
+name: RDF
+description: 'Enriches your content with metadata to let other applications (e.g. search engines, aggregators) better understand its relationships and attributes.'
+package: Core
+version: VERSION
+core: 8.x
diff --git a/core/modules/rdf/tests/rdf_test.info b/core/modules/rdf/tests/rdf_test.info
deleted file mode 100644
index 87a6dac..0000000
--- a/core/modules/rdf/tests/rdf_test.info
+++ /dev/null
@@ -1,7 +0,0 @@
-name = "RDF module tests"
-description = "Support module for RDF module testing."
-package = Testing
-version = VERSION
-core = 8.x
-hidden = TRUE
-dependencies[] = rdf
diff --git a/core/modules/rdf/tests/rdf_test.info.yml b/core/modules/rdf/tests/rdf_test.info.yml
new file mode 100644
index 0000000..3e33b5e
--- /dev/null
+++ b/core/modules/rdf/tests/rdf_test.info.yml
@@ -0,0 +1,8 @@
+name: 'RDF module tests'
+description: 'Support module for RDF module testing.'
+package: Testing
+version: VERSION
+core: 8.x
+hidden: true
+dependencies:
+    - rdf
diff --git a/core/modules/search/search.info b/core/modules/search/search.info
deleted file mode 100644
index 8fdbfaa..0000000
--- a/core/modules/search/search.info
+++ /dev/null
@@ -1,7 +0,0 @@
-name = Search
-description = Enables site-wide keyword searching.
-package = Core
-version = VERSION
-core = 8.x
-configure = admin/config/search/settings
-stylesheets[all][] = search.theme.css
diff --git a/core/modules/search/search.info.yml b/core/modules/search/search.info.yml
new file mode 100644
index 0000000..5cbc1b5
--- /dev/null
+++ b/core/modules/search/search.info.yml
@@ -0,0 +1,8 @@
+name: Search
+description: 'Enables site-wide keyword searching.'
+package: Core
+version: VERSION
+core: 8.x
+configure: admin/config/search/settings
+stylesheets:
+    all: [search.theme.css]
diff --git a/core/modules/search/tests/modules/search_embedded_form/search_embedded_form.info b/core/modules/search/tests/modules/search_embedded_form/search_embedded_form.info
deleted file mode 100644
index 2dad9ee..0000000
--- a/core/modules/search/tests/modules/search_embedded_form/search_embedded_form.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = "Search embedded form"
-description = "Support module for search module testing of embedded forms."
-package = Testing
-version = VERSION
-core = 8.x
-hidden = TRUE
diff --git a/core/modules/search/tests/modules/search_embedded_form/search_embedded_form.info.yml b/core/modules/search/tests/modules/search_embedded_form/search_embedded_form.info.yml
new file mode 100644
index 0000000..f2fe90f
--- /dev/null
+++ b/core/modules/search/tests/modules/search_embedded_form/search_embedded_form.info.yml
@@ -0,0 +1,6 @@
+name: 'Search embedded form'
+description: 'Support module for search module testing of embedded forms.'
+package: Testing
+version: VERSION
+core: 8.x
+hidden: true
diff --git a/core/modules/search/tests/modules/search_extra_type/search_extra_type.info b/core/modules/search/tests/modules/search_extra_type/search_extra_type.info
deleted file mode 100644
index 23f4dea..0000000
--- a/core/modules/search/tests/modules/search_extra_type/search_extra_type.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = "Test search type"
-description = "Support module for search module testing."
-package = Testing
-version = VERSION
-core = 8.x
-hidden = TRUE
diff --git a/core/modules/search/tests/modules/search_extra_type/search_extra_type.info.yml b/core/modules/search/tests/modules/search_extra_type/search_extra_type.info.yml
new file mode 100644
index 0000000..14ccf90
--- /dev/null
+++ b/core/modules/search/tests/modules/search_extra_type/search_extra_type.info.yml
@@ -0,0 +1,6 @@
+name: 'Test search type'
+description: 'Support module for search module testing.'
+package: Testing
+version: VERSION
+core: 8.x
+hidden: true
diff --git a/core/modules/search/tests/modules/search_langcode_test/search_langcode_test.info b/core/modules/search/tests/modules/search_langcode_test/search_langcode_test.info
deleted file mode 100644
index 4a9de30..0000000
--- a/core/modules/search/tests/modules/search_langcode_test/search_langcode_test.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = "Test search entity langcode"
-description = "Support module for search module testing."
-package = Testing
-version = VERSION
-core = 8.x
-hidden = TRUE
diff --git a/core/modules/search/tests/modules/search_langcode_test/search_langcode_test.info.yml b/core/modules/search/tests/modules/search_langcode_test/search_langcode_test.info.yml
new file mode 100644
index 0000000..1aa449d
--- /dev/null
+++ b/core/modules/search/tests/modules/search_langcode_test/search_langcode_test.info.yml
@@ -0,0 +1,6 @@
+name: 'Test search entity langcode'
+description: 'Support module for search module testing.'
+package: Testing
+version: VERSION
+core: 8.x
+hidden: true
diff --git a/core/modules/shortcut/shortcut.info b/core/modules/shortcut/shortcut.info
deleted file mode 100644
index 5ed5f2d..0000000
--- a/core/modules/shortcut/shortcut.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = Shortcut
-description = Allows users to manage customizable lists of shortcut links.
-package = Core
-version = VERSION
-core = 8.x
-configure = admin/config/user-interface/shortcut
diff --git a/core/modules/shortcut/shortcut.info.yml b/core/modules/shortcut/shortcut.info.yml
new file mode 100644
index 0000000..79f5469
--- /dev/null
+++ b/core/modules/shortcut/shortcut.info.yml
@@ -0,0 +1,6 @@
+name: Shortcut
+description: 'Allows users to manage customizable lists of shortcut links.'
+package: Core
+version: VERSION
+core: 8.x
+configure: admin/config/user-interface/shortcut
diff --git a/core/modules/simpletest/simpletest.info b/core/modules/simpletest/simpletest.info
deleted file mode 100644
index 6e18c42..0000000
--- a/core/modules/simpletest/simpletest.info
+++ /dev/null
@@ -1,7 +0,0 @@
-name = Testing
-description = Provides a framework for unit and functional testing.
-package = Core
-version = VERSION
-core = 8.x
-configure = admin/config/development/testing/settings
-
diff --git a/core/modules/simpletest/simpletest.info.yml b/core/modules/simpletest/simpletest.info.yml
new file mode 100644
index 0000000..62c92d3
--- /dev/null
+++ b/core/modules/simpletest/simpletest.info.yml
@@ -0,0 +1,6 @@
+name: Testing
+description: 'Provides a framework for unit and functional testing.'
+package: Core
+version: VERSION
+core: 8.x
+configure: admin/config/development/testing/settings
diff --git a/core/modules/statistics/statistics.info b/core/modules/statistics/statistics.info
deleted file mode 100644
index 4b18b8a..0000000
--- a/core/modules/statistics/statistics.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = Statistics
-description = Logs access statistics for your site.
-package = Core
-version = VERSION
-core = 8.x
-configure = admin/config/system/statistics
diff --git a/core/modules/statistics/statistics.info.yml b/core/modules/statistics/statistics.info.yml
new file mode 100644
index 0000000..9e6fdbe
--- /dev/null
+++ b/core/modules/statistics/statistics.info.yml
@@ -0,0 +1,6 @@
+name: Statistics
+description: 'Logs access statistics for your site.'
+package: Core
+version: VERSION
+core: 8.x
+configure: admin/config/system/statistics
diff --git a/core/modules/syslog/syslog.info b/core/modules/syslog/syslog.info
deleted file mode 100644
index e3f541f..0000000
--- a/core/modules/syslog/syslog.info
+++ /dev/null
@@ -1,5 +0,0 @@
-name = Syslog
-description = Logs and records system events to syslog.
-package = Core
-version = VERSION
-core = 8.x
diff --git a/core/modules/syslog/syslog.info.yml b/core/modules/syslog/syslog.info.yml
new file mode 100644
index 0000000..2332cdc
--- /dev/null
+++ b/core/modules/syslog/syslog.info.yml
@@ -0,0 +1,5 @@
+name: Syslog
+description: 'Logs and records system events to syslog.'
+package: Core
+version: VERSION
+core: 8.x
diff --git a/core/modules/system/lib/Drupal/system/Tests/System/InfoFileParserUnitTest.php b/core/modules/system/lib/Drupal/system/Tests/System/InfoFileParserUnitTest.php
deleted file mode 100644
index 05f36da..0000000
--- a/core/modules/system/lib/Drupal/system/Tests/System/InfoFileParserUnitTest.php
+++ /dev/null
@@ -1,81 +0,0 @@
-<?php
-
-/**
- * @file
- * Definition of Drupal\system\Tests\System\InfoFileParserUnitTest.
- */
-
-namespace Drupal\system\Tests\System;
-
-use Drupal\simpletest\UnitTestBase;
-
-class InfoFileParserUnitTest extends UnitTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'Info file format parser',
-      'description' => 'Tests proper parsing of a .info file formatted string.',
-      'group' => 'System',
-    );
-  }
-
-  /**
-   * Test drupal_parse_info_format().
-   */
-  function testDrupalParseInfoFormat() {
-    $config = '
-simple = Value
-quoted = " Value"
-multiline = "Value
-  Value"
-array[] = Value1
-array[] = Value2
-array_assoc[a] = Value1
-array_assoc[b] = Value2
-array_deep[][][] = Value
-array_deep_assoc[a][b][c] = Value
-array_space[a b] = Value';
-
-    $expected = array(
-      'simple' => 'Value',
-      'quoted' => ' Value',
-      'multiline' => "Value\n  Value",
-      'array' => array(
-        0 => 'Value1',
-        1 => 'Value2',
-      ),
-      'array_assoc' => array(
-        'a' => 'Value1',
-        'b' => 'Value2',
-      ),
-      'array_deep' => array(
-        0 => array(
-          0 => array(
-            0 => 'Value',
-          ),
-        ),
-      ),
-      'array_deep_assoc' => array(
-        'a' => array(
-          'b' => array(
-            'c' => 'Value',
-          ),
-        ),
-      ),
-      'array_space' => array(
-        'a b' => 'Value',
-      ),
-    );
-
-    $parsed = drupal_parse_info_format($config);
-
-    $this->assertEqual($parsed['simple'], $expected['simple'], t('Set a simple value.'));
-    $this->assertEqual($parsed['quoted'], $expected['quoted'], t('Set a simple value in quotes.'));
-    $this->assertEqual($parsed['multiline'], $expected['multiline'], t('Set a multiline value.'));
-    $this->assertEqual($parsed['array'], $expected['array'], t('Set a simple array.'));
-    $this->assertEqual($parsed['array_assoc'], $expected['array_assoc'], t('Set an associative array.'));
-    $this->assertEqual($parsed['array_deep'], $expected['array_deep'], t('Set a nested array.'));
-    $this->assertEqual($parsed['array_deep_assoc'], $expected['array_deep_assoc'], t('Set a nested associative array.'));
-    $this->assertEqual($parsed['array_space'], $expected['array_space'], t('Set an array with a whitespace in the key.'));
-    $this->assertEqual($parsed, $expected, t('Entire parsed .info string and expected array are identical.'));
-  }
-}
diff --git a/core/modules/system/system.admin.inc b/core/modules/system/system.admin.inc
index c55289c..7ea9de5 100644
--- a/core/modules/system/system.admin.inc
+++ b/core/modules/system/system.admin.inc
@@ -1315,7 +1315,7 @@ function system_modules_uninstall_confirm_form($storage) {
 
   // Construct the hidden form elements and list items.
   foreach (array_filter($storage['uninstall']) as $module => $value) {
-    $info = drupal_parse_info_file(drupal_get_path('module', $module) . '/' . $module . '.info');
+    $info = drupal_parse_info_file(drupal_get_path('module', $module) . '/' . $module . '.info.yml');
     $uninstall[] = $info['name'];
     $form['uninstall'][$module] = array('#type' => 'hidden',
       '#value' => 1,
diff --git a/core/modules/system/system.api.php b/core/modules/system/system.api.php
index 0f6d668..d824380 100644
--- a/core/modules/system/system.api.php
+++ b/core/modules/system/system.api.php
@@ -1694,7 +1694,7 @@ function hook_system_theme_info() {
  *
  * This hook is invoked in _system_rebuild_module_data() and in
  * _system_rebuild_theme_data(). A module may implement this hook in order to
- * add to or alter the data generated by reading the .info file with
+ * add to or alter the data generated by reading the .info.yml file with
  * drupal_parse_info_file().
  *
  * @param $info
diff --git a/core/modules/system/system.info b/core/modules/system/system.info
deleted file mode 100644
index 195ca07..0000000
--- a/core/modules/system/system.info
+++ /dev/null
@@ -1,7 +0,0 @@
-name = System
-description = Handles general site configuration for administrators.
-package = Core
-version = VERSION
-core = 8.x
-required = TRUE
-configure = admin/config/system
diff --git a/core/modules/system/system.info.yml b/core/modules/system/system.info.yml
new file mode 100644
index 0000000..d0bcc33
--- /dev/null
+++ b/core/modules/system/system.info.yml
@@ -0,0 +1,7 @@
+name: System
+description: 'Handles general site configuration for administrators.'
+package: Core
+version: VERSION
+core: 8.x
+required: true
+configure: admin/config/system
diff --git a/core/modules/system/system.module b/core/modules/system/system.module
index 255c669..f686086 100644
--- a/core/modules/system/system.module
+++ b/core/modules/system/system.module
@@ -2756,11 +2756,11 @@ function _system_rebuild_module_data() {
     $modules[$key]->filename = $module->uri;
 
     // Look for the info file.
-    $module->info = drupal_parse_info_file(dirname($module->uri) . '/' . $module->name . '.info');
+    $module->info = drupal_parse_info_file(dirname($module->uri) . '/' . $module->name . '.info.yml');
 
     // Add the info file modification time, so it becomes available for
     // contributed modules to use for ordering module lists.
-    $module->info['mtime'] = filemtime(dirname($module->uri) . '/' . $module->name . '.info');
+    $module->info['mtime'] = filemtime(dirname($module->uri) . '/' . $module->name . '.info.yml');
 
     // Skip modules that don't provide info.
     if (empty($module->info)) {
@@ -2866,7 +2866,7 @@ function _system_update_bootstrap_status() {
  */
 function _system_rebuild_theme_data() {
   // Find themes
-  $themes = drupal_system_listing('/^' . DRUPAL_PHP_FUNCTION_PATTERN . '\.info$/', 'themes');
+  $themes = drupal_system_listing('/^' . DRUPAL_PHP_FUNCTION_PATTERN . '\.info.yml$/', 'themes');
   // Allow modules to add further themes.
   if ($module_themes = module_invoke_all('system_theme_info')) {
     foreach ($module_themes as $name => $uri) {
diff --git a/core/modules/system/tests/modules/ajax_forms_test/ajax_forms_test.info b/core/modules/system/tests/modules/ajax_forms_test/ajax_forms_test.info
deleted file mode 100644
index 987ee25..0000000
--- a/core/modules/system/tests/modules/ajax_forms_test/ajax_forms_test.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = "AJAX form test mock module"
-description = "Test for AJAX form calls."
-core = 8.x
-package = Testing
-version = VERSION
-hidden = TRUE
diff --git a/core/modules/system/tests/modules/ajax_forms_test/ajax_forms_test.info.yml b/core/modules/system/tests/modules/ajax_forms_test/ajax_forms_test.info.yml
new file mode 100644
index 0000000..a2f7743
--- /dev/null
+++ b/core/modules/system/tests/modules/ajax_forms_test/ajax_forms_test.info.yml
@@ -0,0 +1,6 @@
+name: 'AJAX form test mock module'
+description: 'Test for AJAX form calls.'
+core: 8.x
+package: Testing
+version: VERSION
+hidden: true
diff --git a/core/modules/system/tests/modules/ajax_test/ajax_test.info b/core/modules/system/tests/modules/ajax_test/ajax_test.info
deleted file mode 100644
index dda7f55..0000000
--- a/core/modules/system/tests/modules/ajax_test/ajax_test.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = AJAX Test
-description = Support module for AJAX framework tests.
-package = Testing
-version = VERSION
-core = 8.x
-hidden = TRUE
diff --git a/core/modules/system/tests/modules/ajax_test/ajax_test.info.yml b/core/modules/system/tests/modules/ajax_test/ajax_test.info.yml
new file mode 100644
index 0000000..1451ad6
--- /dev/null
+++ b/core/modules/system/tests/modules/ajax_test/ajax_test.info.yml
@@ -0,0 +1,6 @@
+name: 'AJAX Test'
+description: 'Support module for AJAX framework tests.'
+package: Testing
+version: VERSION
+core: 8.x
+hidden: true
diff --git a/core/modules/system/tests/modules/batch_test/batch_test.info b/core/modules/system/tests/modules/batch_test/batch_test.info
deleted file mode 100644
index cf2cc30..0000000
--- a/core/modules/system/tests/modules/batch_test/batch_test.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = "Batch API test"
-description = "Support module for Batch API tests."
-package = Testing
-version = VERSION
-core = 8.x
-hidden = TRUE
diff --git a/core/modules/system/tests/modules/batch_test/batch_test.info.yml b/core/modules/system/tests/modules/batch_test/batch_test.info.yml
new file mode 100644
index 0000000..c1c6678
--- /dev/null
+++ b/core/modules/system/tests/modules/batch_test/batch_test.info.yml
@@ -0,0 +1,6 @@
+name: 'Batch API test'
+description: 'Support module for Batch API tests.'
+package: Testing
+version: VERSION
+core: 8.x
+hidden: true
diff --git a/core/modules/system/tests/modules/bundle_test/bundle_test.info b/core/modules/system/tests/modules/bundle_test/bundle_test.info
deleted file mode 100644
index ec79843..0000000
--- a/core/modules/system/tests/modules/bundle_test/bundle_test.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = "Bundle test"
-description = "Support module for bundle testing."
-package = Testing
-version = VERSION
-core = 8.x
-hidden = TRUE
diff --git a/core/modules/system/tests/modules/bundle_test/bundle_test.info.yml b/core/modules/system/tests/modules/bundle_test/bundle_test.info.yml
new file mode 100644
index 0000000..189f51a
--- /dev/null
+++ b/core/modules/system/tests/modules/bundle_test/bundle_test.info.yml
@@ -0,0 +1,6 @@
+name: 'Bundle test'
+description: 'Support module for bundle testing.'
+package: Testing
+version: VERSION
+core: 8.x
+hidden: true
diff --git a/core/modules/system/tests/modules/cache_test/cache_test.info b/core/modules/system/tests/modules/cache_test/cache_test.info
deleted file mode 100644
index 095b6fd..0000000
--- a/core/modules/system/tests/modules/cache_test/cache_test.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = "Cache test"
-description = "Support module for cache system testing."
-package = Testing
-version = VERSION
-core = 8.x
-hidden = TRUE
diff --git a/core/modules/system/tests/modules/cache_test/cache_test.info.yml b/core/modules/system/tests/modules/cache_test/cache_test.info.yml
new file mode 100644
index 0000000..7f2d58b
--- /dev/null
+++ b/core/modules/system/tests/modules/cache_test/cache_test.info.yml
@@ -0,0 +1,6 @@
+name: 'Cache test'
+description: 'Support module for cache system testing.'
+package: Testing
+version: VERSION
+core: 8.x
+hidden: true
diff --git a/core/modules/system/tests/modules/common_test/common_test.info b/core/modules/system/tests/modules/common_test/common_test.info
deleted file mode 100644
index 9e6d24f..0000000
--- a/core/modules/system/tests/modules/common_test/common_test.info
+++ /dev/null
@@ -1,8 +0,0 @@
-name = "Common Test"
-description = "Support module for Common tests."
-package = Testing
-version = VERSION
-core = 8.x
-stylesheets[all][] = common_test.css
-stylesheets[print][] = common_test.print.css
-hidden = TRUE
diff --git a/core/modules/system/tests/modules/common_test/common_test.info.yml b/core/modules/system/tests/modules/common_test/common_test.info.yml
new file mode 100644
index 0000000..24b1cca
--- /dev/null
+++ b/core/modules/system/tests/modules/common_test/common_test.info.yml
@@ -0,0 +1,9 @@
+name: 'Common Test'
+description: 'Support module for Common tests.'
+package: Testing
+version: VERSION
+core: 8.x
+stylesheets:
+    all: [common_test.css]
+    print: [common_test.print.css]
+hidden: true
diff --git a/core/modules/system/tests/modules/common_test_cron_helper/common_test_cron_helper.info b/core/modules/system/tests/modules/common_test_cron_helper/common_test_cron_helper.info
deleted file mode 100644
index b464a33..0000000
--- a/core/modules/system/tests/modules/common_test_cron_helper/common_test_cron_helper.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = "Common Test Cron Helper"
-description = "Helper module for CronRunTestCase::testCronExceptions()."
-package = Testing
-version = VERSION
-core = 8.x
-hidden = TRUE
diff --git a/core/modules/system/tests/modules/common_test_cron_helper/common_test_cron_helper.info.yml b/core/modules/system/tests/modules/common_test_cron_helper/common_test_cron_helper.info.yml
new file mode 100644
index 0000000..ac0264d
--- /dev/null
+++ b/core/modules/system/tests/modules/common_test_cron_helper/common_test_cron_helper.info.yml
@@ -0,0 +1,6 @@
+name: 'Common Test Cron Helper'
+description: 'Helper module for CronRunTestCase::testCronExceptions().'
+package: Testing
+version: VERSION
+core: 8.x
+hidden: true
diff --git a/core/modules/system/tests/modules/config_upgrade/config_upgrade.info b/core/modules/system/tests/modules/config_upgrade/config_upgrade.info
deleted file mode 100644
index 283f868..0000000
--- a/core/modules/system/tests/modules/config_upgrade/config_upgrade.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = Config upgrade tests
-description = A support module for update_variables_to_config testing.
-core = 8.x
-package = Testing
-version = VERSION
-hidden = TRUE
diff --git a/core/modules/system/tests/modules/config_upgrade/config_upgrade.info.yml b/core/modules/system/tests/modules/config_upgrade/config_upgrade.info.yml
new file mode 100644
index 0000000..29027e9
--- /dev/null
+++ b/core/modules/system/tests/modules/config_upgrade/config_upgrade.info.yml
@@ -0,0 +1,6 @@
+name: 'Config upgrade tests'
+description: 'A support module for update_variables_to_config testing.'
+core: 8.x
+package: Testing
+version: VERSION
+hidden: true
diff --git a/core/modules/system/tests/modules/database_test/database_test.info b/core/modules/system/tests/modules/database_test/database_test.info
deleted file mode 100644
index 7f38661..0000000
--- a/core/modules/system/tests/modules/database_test/database_test.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = "Database Test"
-description = "Support module for Database layer tests."
-core = 8.x
-package = Testing
-version = VERSION
-hidden = TRUE
diff --git a/core/modules/system/tests/modules/database_test/database_test.info.yml b/core/modules/system/tests/modules/database_test/database_test.info.yml
new file mode 100644
index 0000000..f282eb6
--- /dev/null
+++ b/core/modules/system/tests/modules/database_test/database_test.info.yml
@@ -0,0 +1,6 @@
+name: 'Database Test'
+description: 'Support module for Database layer tests.'
+core: 8.x
+package: Testing
+version: VERSION
+hidden: true
diff --git a/core/modules/system/tests/modules/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info b/core/modules/system/tests/modules/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info
deleted file mode 100644
index 53515e7..0000000
--- a/core/modules/system/tests/modules/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = "Drupal system listing compatible test"
-description = "Support module for testing the drupal_system_listing function."
-package = Testing
-version = VERSION
-core = 8.x
-hidden = TRUE
diff --git a/core/modules/system/tests/modules/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info.yml b/core/modules/system/tests/modules/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info.yml
new file mode 100644
index 0000000..26e8c74
--- /dev/null
+++ b/core/modules/system/tests/modules/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info.yml
@@ -0,0 +1,6 @@
+name: 'Drupal system listing compatible test'
+description: 'Support module for testing the drupal_system_listing function.'
+package: Testing
+version: VERSION
+core: 8.x
+hidden: true
diff --git a/core/modules/system/tests/modules/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info b/core/modules/system/tests/modules/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info
deleted file mode 100644
index 8753eda..0000000
--- a/core/modules/system/tests/modules/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = "Drupal system listing incompatible test"
-description = "Support module for testing the drupal_system_listing function."
-package = Testing
-version = VERSION
-core = 8.x
-hidden = TRUE
diff --git a/core/modules/system/tests/modules/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info.yml b/core/modules/system/tests/modules/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info.yml
new file mode 100644
index 0000000..e328405
--- /dev/null
+++ b/core/modules/system/tests/modules/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info.yml
@@ -0,0 +1,6 @@
+name: 'Drupal system listing incompatible test'
+description: 'Support module for testing the drupal_system_listing function.'
+package: Testing
+version: VERSION
+core: 8.x
+hidden: true
diff --git a/core/modules/system/tests/modules/entity_cache_test/entity_cache_test.info b/core/modules/system/tests/modules/entity_cache_test/entity_cache_test.info
deleted file mode 100644
index c13496e..0000000
--- a/core/modules/system/tests/modules/entity_cache_test/entity_cache_test.info
+++ /dev/null
@@ -1,7 +0,0 @@
-name = "Entity cache test"
-description = "Support module for testing entity cache."
-package = Testing
-version = VERSION
-core = 8.x
-dependencies[] = entity_cache_test_dependency
-hidden = TRUE
diff --git a/core/modules/system/tests/modules/entity_cache_test/entity_cache_test.info.yml b/core/modules/system/tests/modules/entity_cache_test/entity_cache_test.info.yml
new file mode 100644
index 0000000..e198c5c
--- /dev/null
+++ b/core/modules/system/tests/modules/entity_cache_test/entity_cache_test.info.yml
@@ -0,0 +1,8 @@
+name: 'Entity cache test'
+description: 'Support module for testing entity cache.'
+package: Testing
+version: VERSION
+core: 8.x
+dependencies:
+    - entity_cache_test_dependency
+hidden: true
diff --git a/core/modules/system/tests/modules/entity_cache_test_dependency/entity_cache_test_dependency.info b/core/modules/system/tests/modules/entity_cache_test_dependency/entity_cache_test_dependency.info
deleted file mode 100644
index 17d551c..0000000
--- a/core/modules/system/tests/modules/entity_cache_test_dependency/entity_cache_test_dependency.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = "Entity cache test dependency"
-description = "Support dependency module for testing entity cache."
-package = Testing
-version = VERSION
-core = 8.x
-hidden = TRUE
diff --git a/core/modules/system/tests/modules/entity_cache_test_dependency/entity_cache_test_dependency.info.yml b/core/modules/system/tests/modules/entity_cache_test_dependency/entity_cache_test_dependency.info.yml
new file mode 100644
index 0000000..c82109a
--- /dev/null
+++ b/core/modules/system/tests/modules/entity_cache_test_dependency/entity_cache_test_dependency.info.yml
@@ -0,0 +1,6 @@
+name: 'Entity cache test dependency'
+description: 'Support dependency module for testing entity cache.'
+package: Testing
+version: VERSION
+core: 8.x
+hidden: true
diff --git a/core/modules/system/tests/modules/entity_crud_hook_test/entity_crud_hook_test.info b/core/modules/system/tests/modules/entity_crud_hook_test/entity_crud_hook_test.info
deleted file mode 100644
index 28ce1b5..0000000
--- a/core/modules/system/tests/modules/entity_crud_hook_test/entity_crud_hook_test.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = "Entity CRUD Hooks Test"
-description = "Support module for CRUD hook tests."
-core = 8.x
-package = Testing
-version = VERSION
-hidden = TRUE
diff --git a/core/modules/system/tests/modules/entity_crud_hook_test/entity_crud_hook_test.info.yml b/core/modules/system/tests/modules/entity_crud_hook_test/entity_crud_hook_test.info.yml
new file mode 100644
index 0000000..94b0df2
--- /dev/null
+++ b/core/modules/system/tests/modules/entity_crud_hook_test/entity_crud_hook_test.info.yml
@@ -0,0 +1,6 @@
+name: 'Entity CRUD Hooks Test'
+description: 'Support module for CRUD hook tests.'
+core: 8.x
+package: Testing
+version: VERSION
+hidden: true
diff --git a/core/modules/system/tests/modules/entity_query_access_test/entity_query_access_test.info b/core/modules/system/tests/modules/entity_query_access_test/entity_query_access_test.info
deleted file mode 100644
index 369b204..0000000
--- a/core/modules/system/tests/modules/entity_query_access_test/entity_query_access_test.info
+++ /dev/null
@@ -1,7 +0,0 @@
-name = "Entity query access test"
-description = "Support module for checking entity query results."
-package = Testing
-version = VERSION
-core = 8.x
-hidden = TRUE
-
diff --git a/core/modules/system/tests/modules/entity_query_access_test/entity_query_access_test.info.yml b/core/modules/system/tests/modules/entity_query_access_test/entity_query_access_test.info.yml
new file mode 100644
index 0000000..edb1a4d
--- /dev/null
+++ b/core/modules/system/tests/modules/entity_query_access_test/entity_query_access_test.info.yml
@@ -0,0 +1,6 @@
+name: 'Entity query access test'
+description: 'Support module for checking entity query results.'
+package: Testing
+version: VERSION
+core: 8.x
+hidden: true
diff --git a/core/modules/system/tests/modules/entity_test/entity_test.info b/core/modules/system/tests/modules/entity_test/entity_test.info
deleted file mode 100644
index ce49e8a..0000000
--- a/core/modules/system/tests/modules/entity_test/entity_test.info
+++ /dev/null
@@ -1,7 +0,0 @@
-name = Entity CRUD test module
-description = Provides entity types based upon the CRUD API.
-package = Testing
-version = VERSION
-core = 8.x
-dependencies[] = field
-hidden = TRUE
diff --git a/core/modules/system/tests/modules/entity_test/entity_test.info.yml b/core/modules/system/tests/modules/entity_test/entity_test.info.yml
new file mode 100644
index 0000000..39246bd
--- /dev/null
+++ b/core/modules/system/tests/modules/entity_test/entity_test.info.yml
@@ -0,0 +1,8 @@
+name: 'Entity CRUD test module'
+description: 'Provides entity types based upon the CRUD API.'
+package: Testing
+version: VERSION
+core: 8.x
+dependencies:
+    - field
+hidden: true
diff --git a/core/modules/system/tests/modules/error_test/error_test.info b/core/modules/system/tests/modules/error_test/error_test.info
deleted file mode 100644
index d5db3ee..0000000
--- a/core/modules/system/tests/modules/error_test/error_test.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = "Error test"
-description = "Support module for error and exception testing."
-package = Testing
-version = VERSION
-core = 8.x
-hidden = TRUE
diff --git a/core/modules/system/tests/modules/error_test/error_test.info.yml b/core/modules/system/tests/modules/error_test/error_test.info.yml
new file mode 100644
index 0000000..d45c6e1
--- /dev/null
+++ b/core/modules/system/tests/modules/error_test/error_test.info.yml
@@ -0,0 +1,6 @@
+name: 'Error test'
+description: 'Support module for error and exception testing.'
+package: Testing
+version: VERSION
+core: 8.x
+hidden: true
diff --git a/core/modules/system/tests/modules/filter_test/filter_test.info b/core/modules/system/tests/modules/filter_test/filter_test.info
deleted file mode 100644
index ee27c29..0000000
--- a/core/modules/system/tests/modules/filter_test/filter_test.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = Filter test module
-description = Tests filter hooks and functions.
-package = Testing
-version = VERSION
-core = 8.x
-hidden = TRUE
diff --git a/core/modules/system/tests/modules/filter_test/filter_test.info.yml b/core/modules/system/tests/modules/filter_test/filter_test.info.yml
new file mode 100644
index 0000000..9435261
--- /dev/null
+++ b/core/modules/system/tests/modules/filter_test/filter_test.info.yml
@@ -0,0 +1,6 @@
+name: 'Filter test module'
+description: 'Tests filter hooks and functions.'
+package: Testing
+version: VERSION
+core: 8.x
+hidden: true
diff --git a/core/modules/system/tests/modules/form_test/form_test.info b/core/modules/system/tests/modules/form_test/form_test.info
deleted file mode 100644
index 5354350..0000000
--- a/core/modules/system/tests/modules/form_test/form_test.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = "FormAPI Test"
-description = "Support module for Form API tests."
-package = Testing
-version = VERSION
-core = 8.x
-hidden = TRUE
diff --git a/core/modules/system/tests/modules/form_test/form_test.info.yml b/core/modules/system/tests/modules/form_test/form_test.info.yml
new file mode 100644
index 0000000..dc7f709
--- /dev/null
+++ b/core/modules/system/tests/modules/form_test/form_test.info.yml
@@ -0,0 +1,6 @@
+name: 'FormAPI Test'
+description: 'Support module for Form API tests.'
+package: Testing
+version: VERSION
+core: 8.x
+hidden: true
diff --git a/core/modules/system/tests/modules/image_test/image_test.info b/core/modules/system/tests/modules/image_test/image_test.info
deleted file mode 100644
index becc207..0000000
--- a/core/modules/system/tests/modules/image_test/image_test.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = "Image test"
-description = "Support module for image toolkit tests."
-package = Testing
-version = VERSION
-core = 8.x
-hidden = TRUE
diff --git a/core/modules/system/tests/modules/image_test/image_test.info.yml b/core/modules/system/tests/modules/image_test/image_test.info.yml
new file mode 100644
index 0000000..bd11f70
--- /dev/null
+++ b/core/modules/system/tests/modules/image_test/image_test.info.yml
@@ -0,0 +1,6 @@
+name: 'Image test'
+description: 'Support module for image toolkit tests.'
+package: Testing
+version: VERSION
+core: 8.x
+hidden: true
diff --git a/core/modules/system/tests/modules/menu_test/menu_test.info b/core/modules/system/tests/modules/menu_test/menu_test.info
deleted file mode 100644
index 4549a25..0000000
--- a/core/modules/system/tests/modules/menu_test/menu_test.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = "Hook menu tests"
-description = "Support module for menu hook testing."
-package = Testing
-version = VERSION
-core = 8.x
-hidden = TRUE
diff --git a/core/modules/system/tests/modules/menu_test/menu_test.info.yml b/core/modules/system/tests/modules/menu_test/menu_test.info.yml
new file mode 100644
index 0000000..c535b6b
--- /dev/null
+++ b/core/modules/system/tests/modules/menu_test/menu_test.info.yml
@@ -0,0 +1,6 @@
+name: 'Hook menu tests'
+description: 'Support module for menu hook testing.'
+package: Testing
+version: VERSION
+core: 8.x
+hidden: true
diff --git a/core/modules/system/tests/modules/module_autoload_test/module_autoload_test.info b/core/modules/system/tests/modules/module_autoload_test/module_autoload_test.info
deleted file mode 100644
index b29f162..0000000
--- a/core/modules/system/tests/modules/module_autoload_test/module_autoload_test.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = "Module autoload test"
-description = "Support module for module system tests."
-package = Testing
-version = VERSION
-core = 8.x
-hidden = TRUE
diff --git a/core/modules/system/tests/modules/module_autoload_test/module_autoload_test.info.yml b/core/modules/system/tests/modules/module_autoload_test/module_autoload_test.info.yml
new file mode 100644
index 0000000..9070ce1
--- /dev/null
+++ b/core/modules/system/tests/modules/module_autoload_test/module_autoload_test.info.yml
@@ -0,0 +1,6 @@
+name: 'Module autoload test'
+description: 'Support module for module system tests.'
+package: Testing
+version: VERSION
+core: 8.x
+hidden: true
diff --git a/core/modules/system/tests/modules/module_test/module_test.info b/core/modules/system/tests/modules/module_test/module_test.info
deleted file mode 100644
index c0b243c..0000000
--- a/core/modules/system/tests/modules/module_test/module_test.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = "Module test"
-description = "Support module for module system testing."
-package = Testing
-version = VERSION
-core = 8.x
-hidden = TRUE
diff --git a/core/modules/system/tests/modules/module_test/module_test.info.yml b/core/modules/system/tests/modules/module_test/module_test.info.yml
new file mode 100644
index 0000000..0fd5309
--- /dev/null
+++ b/core/modules/system/tests/modules/module_test/module_test.info.yml
@@ -0,0 +1,6 @@
+name: 'Module test'
+description: 'Support module for module system testing.'
+package: Testing
+version: VERSION
+core: 8.x
+hidden: true
diff --git a/core/modules/system/tests/modules/path_test/path_test.info b/core/modules/system/tests/modules/path_test/path_test.info
deleted file mode 100644
index d2573a4..0000000
--- a/core/modules/system/tests/modules/path_test/path_test.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = "Hook path tests"
-description = "Support module for path hook testing."
-package = Testing
-version = VERSION
-core = 8.x
-hidden = TRUE
diff --git a/core/modules/system/tests/modules/path_test/path_test.info.yml b/core/modules/system/tests/modules/path_test/path_test.info.yml
new file mode 100644
index 0000000..3b3bda7
--- /dev/null
+++ b/core/modules/system/tests/modules/path_test/path_test.info.yml
@@ -0,0 +1,6 @@
+name: 'Hook path tests'
+description: 'Support module for path hook testing.'
+package: Testing
+version: VERSION
+core: 8.x
+hidden: true
diff --git a/core/modules/system/tests/modules/plugin_test/plugin_test.info b/core/modules/system/tests/modules/plugin_test/plugin_test.info
deleted file mode 100644
index 406e02f..0000000
--- a/core/modules/system/tests/modules/plugin_test/plugin_test.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = "Plugin Test Support"
-description = "Test that plugins can provide plugins and provide namespace discovery for plugin test implementations."
-package = Testing
-version = VERSION
-core = 8.x
-hidden = TRUE
diff --git a/core/modules/system/tests/modules/plugin_test/plugin_test.info.yml b/core/modules/system/tests/modules/plugin_test/plugin_test.info.yml
new file mode 100644
index 0000000..c1ad71e
--- /dev/null
+++ b/core/modules/system/tests/modules/plugin_test/plugin_test.info.yml
@@ -0,0 +1,6 @@
+name: 'Plugin Test Support'
+description: 'Test that plugins can provide plugins and provide namespace discovery for plugin test implementations.'
+package: Testing
+version: VERSION
+core: 8.x
+hidden: true
diff --git a/core/modules/system/tests/modules/requirements1_test/requirements1_test.info b/core/modules/system/tests/modules/requirements1_test/requirements1_test.info
deleted file mode 100644
index 6daa75e..0000000
--- a/core/modules/system/tests/modules/requirements1_test/requirements1_test.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = Requirements 1 Test
-description = "Tests that a module is not installed when it fails hook_requirements('install')."
-package = Testing
-version = VERSION
-core = 8.x
-hidden = TRUE
diff --git a/core/modules/system/tests/modules/requirements1_test/requirements1_test.info.yml b/core/modules/system/tests/modules/requirements1_test/requirements1_test.info.yml
new file mode 100644
index 0000000..f2a2c39
--- /dev/null
+++ b/core/modules/system/tests/modules/requirements1_test/requirements1_test.info.yml
@@ -0,0 +1,6 @@
+name: 'Requirements 1 Test'
+description: 'Tests that a module is not installed when it fails hook_requirements(''install'').'
+package: Testing
+version: VERSION
+core: 8.x
+hidden: true
diff --git a/core/modules/system/tests/modules/requirements2_test/requirements2_test.info b/core/modules/system/tests/modules/requirements2_test/requirements2_test.info
deleted file mode 100644
index 270be65..0000000
--- a/core/modules/system/tests/modules/requirements2_test/requirements2_test.info
+++ /dev/null
@@ -1,8 +0,0 @@
-name = Requirements 2 Test
-description = "Tests that a module is not installed when the one it depends on fails hook_requirements('install)."
-dependencies[] = requirements1_test
-dependencies[] = comment
-package = Testing
-version = VERSION
-core = 8.x
-hidden = TRUE
diff --git a/core/modules/system/tests/modules/requirements2_test/requirements2_test.info.yml b/core/modules/system/tests/modules/requirements2_test/requirements2_test.info.yml
new file mode 100644
index 0000000..983bce7
--- /dev/null
+++ b/core/modules/system/tests/modules/requirements2_test/requirements2_test.info.yml
@@ -0,0 +1,9 @@
+name: 'Requirements 2 Test'
+description: 'Tests that a module is not installed when the one it depends on fails hook_requirements(''install).'
+dependencies:
+    - requirements1_test
+    - comment
+package: Testing
+version: VERSION
+core: 8.x
+hidden: true
diff --git a/core/modules/system/tests/modules/router_test/router_test.info b/core/modules/system/tests/modules/router_test/router_test.info
deleted file mode 100644
index d729865..0000000
--- a/core/modules/system/tests/modules/router_test/router_test.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = "Router test"
-description = "Support module for routing testing."
-package = Testing
-version = VERSION
-core = 8.x
-hidden = TRUE
diff --git a/core/modules/system/tests/modules/router_test/router_test.info.yml b/core/modules/system/tests/modules/router_test/router_test.info.yml
new file mode 100644
index 0000000..c54f629
--- /dev/null
+++ b/core/modules/system/tests/modules/router_test/router_test.info.yml
@@ -0,0 +1,6 @@
+name: 'Router test'
+description: 'Support module for routing testing.'
+package: Testing
+version: VERSION
+core: 8.x
+hidden: true
diff --git a/core/modules/system/tests/modules/session_test/session_test.info b/core/modules/system/tests/modules/session_test/session_test.info
deleted file mode 100644
index 73de0a1..0000000
--- a/core/modules/system/tests/modules/session_test/session_test.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = "Session test"
-description = "Support module for session data testing."
-package = Testing
-version = VERSION
-core = 8.x
-hidden = TRUE
diff --git a/core/modules/system/tests/modules/session_test/session_test.info.yml b/core/modules/system/tests/modules/session_test/session_test.info.yml
new file mode 100644
index 0000000..b1e9855
--- /dev/null
+++ b/core/modules/system/tests/modules/session_test/session_test.info.yml
@@ -0,0 +1,6 @@
+name: 'Session test'
+description: 'Support module for session data testing.'
+package: Testing
+version: VERSION
+core: 8.x
+hidden: true
diff --git a/core/modules/system/tests/modules/system_dependencies_test/system_dependencies_test.info b/core/modules/system/tests/modules/system_dependencies_test/system_dependencies_test.info
deleted file mode 100644
index c90706d..0000000
--- a/core/modules/system/tests/modules/system_dependencies_test/system_dependencies_test.info
+++ /dev/null
@@ -1,7 +0,0 @@
-name = "System dependency test"
-description = "Support module for testing system dependencies."
-package = Testing
-version = VERSION
-core = 8.x
-hidden = TRUE
-dependencies[] = _missing_dependency
diff --git a/core/modules/system/tests/modules/system_dependencies_test/system_dependencies_test.info.yml b/core/modules/system/tests/modules/system_dependencies_test/system_dependencies_test.info.yml
new file mode 100644
index 0000000..0dfd493
--- /dev/null
+++ b/core/modules/system/tests/modules/system_dependencies_test/system_dependencies_test.info.yml
@@ -0,0 +1,8 @@
+name: 'System dependency test'
+description: 'Support module for testing system dependencies.'
+package: Testing
+version: VERSION
+core: 8.x
+hidden: true
+dependencies:
+    - _missing_dependency
diff --git a/core/modules/system/tests/modules/system_incompatible_core_version_dependencies_test/system_incompatible_core_version_dependencies_test.info b/core/modules/system/tests/modules/system_incompatible_core_version_dependencies_test/system_incompatible_core_version_dependencies_test.info
deleted file mode 100644
index 9b66cf0..0000000
--- a/core/modules/system/tests/modules/system_incompatible_core_version_dependencies_test/system_incompatible_core_version_dependencies_test.info
+++ /dev/null
@@ -1,7 +0,0 @@
-name = "System incompatible core version dependencies test"
-description = "Support module for testing system dependencies."
-package = Testing
-version = VERSION
-core = 8.x
-hidden = TRUE
-dependencies[] = system_incompatible_core_version_test
diff --git a/core/modules/system/tests/modules/system_incompatible_core_version_dependencies_test/system_incompatible_core_version_dependencies_test.info.yml b/core/modules/system/tests/modules/system_incompatible_core_version_dependencies_test/system_incompatible_core_version_dependencies_test.info.yml
new file mode 100644
index 0000000..c9afb16
--- /dev/null
+++ b/core/modules/system/tests/modules/system_incompatible_core_version_dependencies_test/system_incompatible_core_version_dependencies_test.info.yml
@@ -0,0 +1,8 @@
+name: 'System incompatible core version dependencies test'
+description: 'Support module for testing system dependencies.'
+package: Testing
+version: VERSION
+core: 8.x
+hidden: true
+dependencies:
+    - system_incompatible_core_version_test
diff --git a/core/modules/system/tests/modules/system_incompatible_core_version_test/system_incompatible_core_version_test.info b/core/modules/system/tests/modules/system_incompatible_core_version_test/system_incompatible_core_version_test.info
deleted file mode 100644
index ced53e9..0000000
--- a/core/modules/system/tests/modules/system_incompatible_core_version_test/system_incompatible_core_version_test.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = "System incompatible core version test"
-description = "Support module for testing system dependencies."
-package = Testing
-version = VERSION
-core = 5.x
-hidden = TRUE
diff --git a/core/modules/system/tests/modules/system_incompatible_core_version_test/system_incompatible_core_version_test.info.yml b/core/modules/system/tests/modules/system_incompatible_core_version_test/system_incompatible_core_version_test.info.yml
new file mode 100644
index 0000000..ecb158f
--- /dev/null
+++ b/core/modules/system/tests/modules/system_incompatible_core_version_test/system_incompatible_core_version_test.info.yml
@@ -0,0 +1,6 @@
+name: 'System incompatible core version test'
+description: 'Support module for testing system dependencies.'
+package: Testing
+version: VERSION
+core: 5.x
+hidden: true
diff --git a/core/modules/system/tests/modules/system_incompatible_module_version_dependencies_test/system_incompatible_module_version_dependencies_test.info b/core/modules/system/tests/modules/system_incompatible_module_version_dependencies_test/system_incompatible_module_version_dependencies_test.info
deleted file mode 100644
index 8c02083..0000000
--- a/core/modules/system/tests/modules/system_incompatible_module_version_dependencies_test/system_incompatible_module_version_dependencies_test.info
+++ /dev/null
@@ -1,8 +0,0 @@
-name = "System incompatible module version dependencies test"
-description = "Support module for testing system dependencies."
-package = Testing
-version = VERSION
-core = 8.x
-hidden = TRUE
-; system_incompatible_module_version_test declares version 1.0
-dependencies[] = system_incompatible_module_version_test (>2.0)
diff --git a/core/modules/system/tests/modules/system_incompatible_module_version_dependencies_test/system_incompatible_module_version_dependencies_test.info.yml b/core/modules/system/tests/modules/system_incompatible_module_version_dependencies_test/system_incompatible_module_version_dependencies_test.info.yml
new file mode 100644
index 0000000..b182157
--- /dev/null
+++ b/core/modules/system/tests/modules/system_incompatible_module_version_dependencies_test/system_incompatible_module_version_dependencies_test.info.yml
@@ -0,0 +1,8 @@
+name: 'System incompatible module version dependencies test'
+description: 'Support module for testing system dependencies.'
+package: Testing
+version: VERSION
+core: 8.x
+hidden: true
+dependencies:
+    - 'system_incompatible_module_version_test (>2.0)'
diff --git a/core/modules/system/tests/modules/system_incompatible_module_version_test/system_incompatible_module_version_test.info b/core/modules/system/tests/modules/system_incompatible_module_version_test/system_incompatible_module_version_test.info
deleted file mode 100644
index 2c93c59..0000000
--- a/core/modules/system/tests/modules/system_incompatible_module_version_test/system_incompatible_module_version_test.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = "System incompatible module version test"
-description = "Support module for testing system dependencies."
-package = Testing
-version = 1.0
-core = 8.x
-hidden = TRUE
diff --git a/core/modules/system/tests/modules/system_incompatible_module_version_test/system_incompatible_module_version_test.info.yml b/core/modules/system/tests/modules/system_incompatible_module_version_test/system_incompatible_module_version_test.info.yml
new file mode 100644
index 0000000..237c038
--- /dev/null
+++ b/core/modules/system/tests/modules/system_incompatible_module_version_test/system_incompatible_module_version_test.info.yml
@@ -0,0 +1,6 @@
+name: 'System incompatible module version test'
+description: 'Support module for testing system dependencies.'
+package: Testing
+version: '1.0'
+core: 8.x
+hidden: true
diff --git a/core/modules/system/tests/modules/system_module_test/system_module_test.info b/core/modules/system/tests/modules/system_module_test/system_module_test.info
deleted file mode 100644
index 5184a33..0000000
--- a/core/modules/system/tests/modules/system_module_test/system_module_test.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = "System test"
-description = "Provides hook implementations for testing System module functionality."
-package = Testing
-version = VERSION
-core = 8.x
-hidden = TRUE
diff --git a/core/modules/system/tests/modules/system_module_test/system_module_test.info.yml b/core/modules/system/tests/modules/system_module_test/system_module_test.info.yml
new file mode 100644
index 0000000..e28e2cc
--- /dev/null
+++ b/core/modules/system/tests/modules/system_module_test/system_module_test.info.yml
@@ -0,0 +1,6 @@
+name: 'System test'
+description: 'Provides hook implementations for testing System module functionality.'
+package: Testing
+version: VERSION
+core: 8.x
+hidden: true
diff --git a/core/modules/system/tests/modules/system_test/system_test.info b/core/modules/system/tests/modules/system_test/system_test.info
deleted file mode 100644
index 8479b39..0000000
--- a/core/modules/system/tests/modules/system_test/system_test.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = System test
-description = Support module for system testing.
-package = Testing
-version = VERSION
-core = 8.x
-hidden = TRUE
diff --git a/core/modules/system/tests/modules/system_test/system_test.info.yml b/core/modules/system/tests/modules/system_test/system_test.info.yml
new file mode 100644
index 0000000..c9bd5c9
--- /dev/null
+++ b/core/modules/system/tests/modules/system_test/system_test.info.yml
@@ -0,0 +1,6 @@
+name: 'System test'
+description: 'Support module for system testing.'
+package: Testing
+version: VERSION
+core: 8.x
+hidden: true
diff --git a/core/modules/system/tests/modules/taxonomy_test/taxonomy_test.info b/core/modules/system/tests/modules/taxonomy_test/taxonomy_test.info
deleted file mode 100644
index b4489d6..0000000
--- a/core/modules/system/tests/modules/taxonomy_test/taxonomy_test.info
+++ /dev/null
@@ -1,7 +0,0 @@
-name = "Taxonomy test module"
-description = "Tests functions and hooks not used in core".
-package = Testing
-version = VERSION
-core = 8.x
-hidden = TRUE
-dependencies[] = taxonomy
diff --git a/core/modules/system/tests/modules/taxonomy_test/taxonomy_test.info.yml b/core/modules/system/tests/modules/taxonomy_test/taxonomy_test.info.yml
new file mode 100644
index 0000000..95304a5
--- /dev/null
+++ b/core/modules/system/tests/modules/taxonomy_test/taxonomy_test.info.yml
@@ -0,0 +1,8 @@
+name: 'Taxonomy test module'
+description: '"Tests functions and hooks not used in core".'
+package: Testing
+version: VERSION
+core: 8.x
+hidden: true
+dependencies:
+    - taxonomy
diff --git a/core/modules/system/tests/modules/test_page_test/test_page_test.info b/core/modules/system/tests/modules/test_page_test/test_page_test.info
deleted file mode 100644
index 6ee896c..0000000
--- a/core/modules/system/tests/modules/test_page_test/test_page_test.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = Test page
-description = Provides a test page for automated tests.
-package = Testing
-version = VERSION
-core = 8.x
-hidden = TRUE
diff --git a/core/modules/system/tests/modules/test_page_test/test_page_test.info.yml b/core/modules/system/tests/modules/test_page_test/test_page_test.info.yml
new file mode 100644
index 0000000..e3860e6
--- /dev/null
+++ b/core/modules/system/tests/modules/test_page_test/test_page_test.info.yml
@@ -0,0 +1,6 @@
+name: 'Test page'
+description: 'Provides a test page for automated tests.'
+package: Testing
+version: VERSION
+core: 8.x
+hidden: true
diff --git a/core/modules/system/tests/modules/theme_page_test/theme_page_test.info b/core/modules/system/tests/modules/theme_page_test/theme_page_test.info
deleted file mode 100644
index 989d1dc..0000000
--- a/core/modules/system/tests/modules/theme_page_test/theme_page_test.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = "Theme page test"
-description = "Support module for theme system testing."
-package = Testing
-version = VERSION
-core = 8.x
-hidden = TRUE
diff --git a/core/modules/system/tests/modules/theme_page_test/theme_page_test.info.yml b/core/modules/system/tests/modules/theme_page_test/theme_page_test.info.yml
new file mode 100644
index 0000000..f70fe24
--- /dev/null
+++ b/core/modules/system/tests/modules/theme_page_test/theme_page_test.info.yml
@@ -0,0 +1,6 @@
+name: 'Theme page test'
+description: 'Support module for theme system testing.'
+package: Testing
+version: VERSION
+core: 8.x
+hidden: true
diff --git a/core/modules/system/tests/modules/theme_test/theme_test.info b/core/modules/system/tests/modules/theme_test/theme_test.info
deleted file mode 100644
index c4d0659..0000000
--- a/core/modules/system/tests/modules/theme_test/theme_test.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = "Theme test"
-description = "Support module for theme system testing."
-package = Testing
-version = VERSION
-core = 8.x
-hidden = TRUE
diff --git a/core/modules/system/tests/modules/theme_test/theme_test.info.yml b/core/modules/system/tests/modules/theme_test/theme_test.info.yml
new file mode 100644
index 0000000..6cf33f7
--- /dev/null
+++ b/core/modules/system/tests/modules/theme_test/theme_test.info.yml
@@ -0,0 +1,6 @@
+name: 'Theme test'
+description: 'Support module for theme system testing.'
+package: Testing
+version: VERSION
+core: 8.x
+hidden: true
diff --git a/core/modules/system/tests/modules/update_script_test/update_script_test.info b/core/modules/system/tests/modules/update_script_test/update_script_test.info
deleted file mode 100644
index 04bf73c..0000000
--- a/core/modules/system/tests/modules/update_script_test/update_script_test.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = "Update script test"
-description = "Support module for update script testing."
-package = Testing
-version = VERSION
-core = 8.x
-hidden = TRUE
diff --git a/core/modules/system/tests/modules/update_script_test/update_script_test.info.yml b/core/modules/system/tests/modules/update_script_test/update_script_test.info.yml
new file mode 100644
index 0000000..b50cbb8
--- /dev/null
+++ b/core/modules/system/tests/modules/update_script_test/update_script_test.info.yml
@@ -0,0 +1,6 @@
+name: 'Update script test'
+description: 'Support module for update script testing.'
+package: Testing
+version: VERSION
+core: 8.x
+hidden: true
diff --git a/core/modules/system/tests/modules/update_test_1/update_test_1.info b/core/modules/system/tests/modules/update_test_1/update_test_1.info
deleted file mode 100644
index 5a5b14f..0000000
--- a/core/modules/system/tests/modules/update_test_1/update_test_1.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = "Update test"
-description = "Support module for update testing."
-package = Testing
-version = VERSION
-core = 8.x
-hidden = TRUE
diff --git a/core/modules/system/tests/modules/update_test_1/update_test_1.info.yml b/core/modules/system/tests/modules/update_test_1/update_test_1.info.yml
new file mode 100644
index 0000000..d01ceec
--- /dev/null
+++ b/core/modules/system/tests/modules/update_test_1/update_test_1.info.yml
@@ -0,0 +1,6 @@
+name: 'Update test'
+description: 'Support module for update testing.'
+package: Testing
+version: VERSION
+core: 8.x
+hidden: true
diff --git a/core/modules/system/tests/modules/update_test_2/update_test_2.info b/core/modules/system/tests/modules/update_test_2/update_test_2.info
deleted file mode 100644
index 5a5b14f..0000000
--- a/core/modules/system/tests/modules/update_test_2/update_test_2.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = "Update test"
-description = "Support module for update testing."
-package = Testing
-version = VERSION
-core = 8.x
-hidden = TRUE
diff --git a/core/modules/system/tests/modules/update_test_2/update_test_2.info.yml b/core/modules/system/tests/modules/update_test_2/update_test_2.info.yml
new file mode 100644
index 0000000..d01ceec
--- /dev/null
+++ b/core/modules/system/tests/modules/update_test_2/update_test_2.info.yml
@@ -0,0 +1,6 @@
+name: 'Update test'
+description: 'Support module for update testing.'
+package: Testing
+version: VERSION
+core: 8.x
+hidden: true
diff --git a/core/modules/system/tests/modules/update_test_3/update_test_3.info b/core/modules/system/tests/modules/update_test_3/update_test_3.info
deleted file mode 100644
index 5a5b14f..0000000
--- a/core/modules/system/tests/modules/update_test_3/update_test_3.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = "Update test"
-description = "Support module for update testing."
-package = Testing
-version = VERSION
-core = 8.x
-hidden = TRUE
diff --git a/core/modules/system/tests/modules/update_test_3/update_test_3.info.yml b/core/modules/system/tests/modules/update_test_3/update_test_3.info.yml
new file mode 100644
index 0000000..d01ceec
--- /dev/null
+++ b/core/modules/system/tests/modules/update_test_3/update_test_3.info.yml
@@ -0,0 +1,6 @@
+name: 'Update test'
+description: 'Support module for update testing.'
+package: Testing
+version: VERSION
+core: 8.x
+hidden: true
diff --git a/core/modules/system/tests/modules/url_alter_test/url_alter_test.info b/core/modules/system/tests/modules/url_alter_test/url_alter_test.info
deleted file mode 100644
index 1947b2e..0000000
--- a/core/modules/system/tests/modules/url_alter_test/url_alter_test.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = Url_alter tests
-description = A support modules for url_alter hook testing.
-core = 8.x
-package = Testing
-version = VERSION
-hidden = TRUE
diff --git a/core/modules/system/tests/modules/url_alter_test/url_alter_test.info.yml b/core/modules/system/tests/modules/url_alter_test/url_alter_test.info.yml
new file mode 100644
index 0000000..7c78ba8
--- /dev/null
+++ b/core/modules/system/tests/modules/url_alter_test/url_alter_test.info.yml
@@ -0,0 +1,6 @@
+name: 'Url_alter tests'
+description: 'A support modules for url_alter hook testing.'
+core: 8.x
+package: Testing
+version: VERSION
+hidden: true
diff --git a/core/modules/system/tests/themes/test_basetheme/test_basetheme.info b/core/modules/system/tests/themes/test_basetheme/test_basetheme.info
deleted file mode 100644
index 2b5f66e..0000000
--- a/core/modules/system/tests/themes/test_basetheme/test_basetheme.info
+++ /dev/null
@@ -1,7 +0,0 @@
-name = Theme test base theme
-description = Test theme which acts as a base theme for other test subthemes.
-core = 8.x
-hidden = TRUE
-
-settings[basetheme_only] = base theme value
-settings[subtheme_override] = base theme value
diff --git a/core/modules/system/tests/themes/test_basetheme/test_basetheme.info.yml b/core/modules/system/tests/themes/test_basetheme/test_basetheme.info.yml
new file mode 100644
index 0000000..b0df71f
--- /dev/null
+++ b/core/modules/system/tests/themes/test_basetheme/test_basetheme.info.yml
@@ -0,0 +1,7 @@
+name: 'Theme test base theme'
+description: 'Test theme which acts as a base theme for other test subthemes.'
+core: 8.x
+hidden: true
+settings:
+    basetheme_only: 'base theme value'
+    subtheme_override: 'base theme value'
diff --git a/core/modules/system/tests/themes/test_invalid_basetheme/test_invalid_basetheme.info b/core/modules/system/tests/themes/test_invalid_basetheme/test_invalid_basetheme.info
deleted file mode 100644
index 915a5c7..0000000
--- a/core/modules/system/tests/themes/test_invalid_basetheme/test_invalid_basetheme.info
+++ /dev/null
@@ -1,5 +0,0 @@
-name = Theme test with invalid base theme
-description = Test theme which has a non-existent base theme.
-core = 8.x
-base theme = not_real_test_basetheme
-hidden = TRUE
diff --git a/core/modules/system/tests/themes/test_invalid_basetheme/test_invalid_basetheme.info.yml b/core/modules/system/tests/themes/test_invalid_basetheme/test_invalid_basetheme.info.yml
new file mode 100644
index 0000000..b7f7316
--- /dev/null
+++ b/core/modules/system/tests/themes/test_invalid_basetheme/test_invalid_basetheme.info.yml
@@ -0,0 +1,5 @@
+name: 'Theme test with invalid base theme'
+description: 'Test theme which has a non-existent base theme.'
+core: 8.x
+'base theme': not_real_test_basetheme
+hidden: true
diff --git a/core/modules/system/tests/themes/test_invalid_engine/test_invalid_engine.info b/core/modules/system/tests/themes/test_invalid_engine/test_invalid_engine.info
deleted file mode 100644
index 335600d..0000000
--- a/core/modules/system/tests/themes/test_invalid_engine/test_invalid_engine.info
+++ /dev/null
@@ -1,5 +0,0 @@
-name = Theme test with invalid theme engine
-description = Test theme which has a non-existent theme engine.
-core = 8.x
-hidden = TRUE
-engine = not_real_engine
\ No newline at end of file
diff --git a/core/modules/system/tests/themes/test_invalid_engine/test_invalid_engine.info.yml b/core/modules/system/tests/themes/test_invalid_engine/test_invalid_engine.info.yml
new file mode 100644
index 0000000..6f62174
--- /dev/null
+++ b/core/modules/system/tests/themes/test_invalid_engine/test_invalid_engine.info.yml
@@ -0,0 +1,5 @@
+name: 'Theme test with invalid theme engine'
+description: 'Test theme which has a non-existent theme engine.'
+core: 8.x
+hidden: true
+engine: not_real_engine
diff --git a/core/modules/system/tests/themes/test_subtheme/test_subtheme.info b/core/modules/system/tests/themes/test_subtheme/test_subtheme.info
deleted file mode 100644
index 974e00f..0000000
--- a/core/modules/system/tests/themes/test_subtheme/test_subtheme.info
+++ /dev/null
@@ -1,7 +0,0 @@
-name = Theme test subtheme
-description = Test theme which uses test_basetheme as the base theme.
-core = 8.x
-base theme = test_basetheme
-hidden = TRUE
-
-settings[subtheme_override] = subtheme value
diff --git a/core/modules/system/tests/themes/test_subtheme/test_subtheme.info.yml b/core/modules/system/tests/themes/test_subtheme/test_subtheme.info.yml
new file mode 100644
index 0000000..de0e9fd
--- /dev/null
+++ b/core/modules/system/tests/themes/test_subtheme/test_subtheme.info.yml
@@ -0,0 +1,7 @@
+name: 'Theme test subtheme'
+description: 'Test theme which uses test_basetheme as the base theme.'
+core: 8.x
+'base theme': test_basetheme
+hidden: true
+settings:
+    subtheme_override: 'subtheme value'
diff --git a/core/modules/system/tests/themes/test_theme/test_theme.info b/core/modules/system/tests/themes/test_theme/test_theme.info
deleted file mode 100644
index b5d1bfc..0000000
--- a/core/modules/system/tests/themes/test_theme/test_theme.info
+++ /dev/null
@@ -1,18 +0,0 @@
-name = Test theme
-description = Theme for testing the theme system
-core = 8.x
-hidden = TRUE
-
-; Normally, themes may list CSS files like this, and if they exist in the theme
-; folder, then they get added to the page. If they have the same file name as a
-; module CSS file, then the theme's version overrides the module's version, so
-; that the module's version is not added to the page. Additionally, a theme may
-; have an entry like this one, without having the corresponding CSS file in the
-; theme's folder, and in this case, it just stops the module's version from
-; being loaded, and does not replace it with an alternate version. We have this
-; here in order for a test to ensure that this correctly prevents the module
-; version from being loaded, and that errors aren't caused by the lack of this
-; file within the theme folder.
-stylesheets[all][] = system.base.css
-
-settings[theme_test_setting] = default value
diff --git a/core/modules/system/tests/themes/test_theme/test_theme.info.yml b/core/modules/system/tests/themes/test_theme/test_theme.info.yml
new file mode 100644
index 0000000..99da765
--- /dev/null
+++ b/core/modules/system/tests/themes/test_theme/test_theme.info.yml
@@ -0,0 +1,8 @@
+name: 'Test theme'
+description: 'Theme for testing the theme system'
+core: 8.x
+hidden: true
+stylesheets:
+    all: [system.base.css]
+settings:
+    theme_test_setting: 'default value'
diff --git a/core/modules/taxonomy/taxonomy.info b/core/modules/taxonomy/taxonomy.info
deleted file mode 100644
index 837b556..0000000
--- a/core/modules/taxonomy/taxonomy.info
+++ /dev/null
@@ -1,7 +0,0 @@
-name = Taxonomy
-description = Enables the categorization of content.
-package = Core
-version = VERSION
-core = 8.x
-dependencies[] = options
-configure = admin/structure/taxonomy
diff --git a/core/modules/taxonomy/taxonomy.info.yml b/core/modules/taxonomy/taxonomy.info.yml
new file mode 100644
index 0000000..5a4ed09
--- /dev/null
+++ b/core/modules/taxonomy/taxonomy.info.yml
@@ -0,0 +1,8 @@
+name: Taxonomy
+description: 'Enables the categorization of content.'
+package: Core
+version: VERSION
+core: 8.x
+dependencies:
+    - options
+configure: admin/structure/taxonomy
diff --git a/core/modules/toolbar/toolbar.info b/core/modules/toolbar/toolbar.info
deleted file mode 100644
index 758dc9c..0000000
--- a/core/modules/toolbar/toolbar.info
+++ /dev/null
@@ -1,5 +0,0 @@
-name = Toolbar
-description = Provides a toolbar that shows the top-level administration menu items and links from other modules.
-core = 8.x
-package = Core
-version = VERSION
diff --git a/core/modules/toolbar/toolbar.info.yml b/core/modules/toolbar/toolbar.info.yml
new file mode 100644
index 0000000..28b3366
--- /dev/null
+++ b/core/modules/toolbar/toolbar.info.yml
@@ -0,0 +1,5 @@
+name: Toolbar
+description: 'Provides a toolbar that shows the top-level administration menu items and links from other modules.'
+core: 8.x
+package: Core
+version: VERSION
diff --git a/core/modules/tracker/tracker.info b/core/modules/tracker/tracker.info
deleted file mode 100644
index b39eb3f..0000000
--- a/core/modules/tracker/tracker.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = Tracker
-description = Enables tracking of recent content for users.
-dependencies[] = comment
-package = Core
-version = VERSION
-core = 8.x
diff --git a/core/modules/tracker/tracker.info.yml b/core/modules/tracker/tracker.info.yml
new file mode 100644
index 0000000..7930c4a
--- /dev/null
+++ b/core/modules/tracker/tracker.info.yml
@@ -0,0 +1,7 @@
+name: Tracker
+description: 'Enables tracking of recent content for users.'
+dependencies:
+    - comment
+package: Core
+version: VERSION
+core: 8.x
diff --git a/core/modules/translation/tests/translation_test.info b/core/modules/translation/tests/translation_test.info
deleted file mode 100644
index 5b42c5a..0000000
--- a/core/modules/translation/tests/translation_test.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = "Content Translation Test"
-description = "Support module for the content translation tests."
-core = 8.x
-package = Testing
-version = VERSION
-hidden = TRUE
diff --git a/core/modules/translation/tests/translation_test.info.yml b/core/modules/translation/tests/translation_test.info.yml
new file mode 100644
index 0000000..aa8377c
--- /dev/null
+++ b/core/modules/translation/tests/translation_test.info.yml
@@ -0,0 +1,6 @@
+name: 'Content Translation Test'
+description: 'Support module for the content translation tests.'
+core: 8.x
+package: Testing
+version: VERSION
+hidden: true
diff --git a/core/modules/translation/translation.info b/core/modules/translation/translation.info
deleted file mode 100644
index cc3922f..0000000
--- a/core/modules/translation/translation.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = Content Translation
-description = Allows content to be translated into different languages.
-dependencies[] = language
-package = Core
-version = VERSION
-core = 8.x
diff --git a/core/modules/translation/translation.info.yml b/core/modules/translation/translation.info.yml
new file mode 100644
index 0000000..414a942
--- /dev/null
+++ b/core/modules/translation/translation.info.yml
@@ -0,0 +1,7 @@
+name: 'Content Translation'
+description: 'Allows content to be translated into different languages.'
+dependencies:
+    - language
+package: Core
+version: VERSION
+core: 8.x
diff --git a/core/modules/update/tests/aaa_update_test.tar.gz b/core/modules/update/tests/aaa_update_test.tar.gz
index 34f96c8..356fc4c 100644
--- a/core/modules/update/tests/aaa_update_test.tar.gz
+++ b/core/modules/update/tests/aaa_update_test.tar.gz
@@ -1 +1,2 @@
-M aaa_update_test.tar SN0쯸S;]Z@P@'*vZ&ڡTlqȹ	{ R#G=B(f1l$1!F]^ڑ`9{,M7i⑀ob$O3F?5KO|pgпcJg QHp	8Q*YtrId: !EQEnwj@Vz-!-J㚊e4_<xKhQ.=6(UkY=<ڬ`M_{~3v̮8+P8 3[\Y٭l,n0uأar`W   
\ No newline at end of file
+ yP Mk0p	-c6a]Ki+S4/dC{!ļkKaެ&Cx6>GIiq/bqrf̒(zZy\XQvCSƩ3~q{4CߊFS(
+>aI)MWiSuZUghJ[KU>exjwO|mj"չ]IUYJ7$>8N8Q2?	ci?YGׄЀ>mZ7϶i;矄{iB&              9 (  
\ No newline at end of file
diff --git a/core/modules/update/tests/modules/aaa_update_test/aaa_update_test.info b/core/modules/update/tests/modules/aaa_update_test/aaa_update_test.info
deleted file mode 100644
index 6064678..0000000
--- a/core/modules/update/tests/modules/aaa_update_test/aaa_update_test.info
+++ /dev/null
@@ -1,5 +0,0 @@
-name = AAA Update test
-description = Support module for update module testing.
-package = Testing
-core = 8.x
-hidden = TRUE
diff --git a/core/modules/update/tests/modules/aaa_update_test/aaa_update_test.info.yml b/core/modules/update/tests/modules/aaa_update_test/aaa_update_test.info.yml
new file mode 100644
index 0000000..accd816
--- /dev/null
+++ b/core/modules/update/tests/modules/aaa_update_test/aaa_update_test.info.yml
@@ -0,0 +1,5 @@
+name: 'AAA Update test'
+description: 'Support module for update module testing.'
+package: Testing
+core: 8.x
+hidden: true
diff --git a/core/modules/update/tests/modules/bbb_update_test/bbb_update_test.info b/core/modules/update/tests/modules/bbb_update_test/bbb_update_test.info
deleted file mode 100644
index 95aacba..0000000
--- a/core/modules/update/tests/modules/bbb_update_test/bbb_update_test.info
+++ /dev/null
@@ -1,5 +0,0 @@
-name = BBB Update test
-description = Support module for update module testing.
-package = Testing
-core = 8.x
-hidden = TRUE
diff --git a/core/modules/update/tests/modules/bbb_update_test/bbb_update_test.info.yml b/core/modules/update/tests/modules/bbb_update_test/bbb_update_test.info.yml
new file mode 100644
index 0000000..6b20b2d
--- /dev/null
+++ b/core/modules/update/tests/modules/bbb_update_test/bbb_update_test.info.yml
@@ -0,0 +1,5 @@
+name: 'BBB Update test'
+description: 'Support module for update module testing.'
+package: Testing
+core: 8.x
+hidden: true
diff --git a/core/modules/update/tests/modules/ccc_update_test/ccc_update_test.info b/core/modules/update/tests/modules/ccc_update_test/ccc_update_test.info
deleted file mode 100644
index f4df516..0000000
--- a/core/modules/update/tests/modules/ccc_update_test/ccc_update_test.info
+++ /dev/null
@@ -1,5 +0,0 @@
-name = CCC Update test
-description = Support module for update module testing.
-package = Testing
-core = 8.x
-hidden = TRUE
diff --git a/core/modules/update/tests/modules/ccc_update_test/ccc_update_test.info.yml b/core/modules/update/tests/modules/ccc_update_test/ccc_update_test.info.yml
new file mode 100644
index 0000000..6cd25a0
--- /dev/null
+++ b/core/modules/update/tests/modules/ccc_update_test/ccc_update_test.info.yml
@@ -0,0 +1,5 @@
+name: 'CCC Update test'
+description: 'Support module for update module testing.'
+package: Testing
+core: 8.x
+hidden: true
diff --git a/core/modules/update/tests/modules/update_test/update_test.info b/core/modules/update/tests/modules/update_test/update_test.info
deleted file mode 100644
index 708dc97..0000000
--- a/core/modules/update/tests/modules/update_test/update_test.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = Update test
-description = Support module for update module testing.
-package = Testing
-version = VERSION
-core = 8.x
-hidden = TRUE
diff --git a/core/modules/update/tests/modules/update_test/update_test.info.yml b/core/modules/update/tests/modules/update_test/update_test.info.yml
new file mode 100644
index 0000000..b86daf3
--- /dev/null
+++ b/core/modules/update/tests/modules/update_test/update_test.info.yml
@@ -0,0 +1,6 @@
+name: 'Update test'
+description: 'Support module for update module testing.'
+package: Testing
+version: VERSION
+core: 8.x
+hidden: true
diff --git a/core/modules/update/tests/themes/update_test_basetheme/update_test_basetheme.info b/core/modules/update/tests/themes/update_test_basetheme/update_test_basetheme.info
deleted file mode 100644
index c8550b5..0000000
--- a/core/modules/update/tests/themes/update_test_basetheme/update_test_basetheme.info
+++ /dev/null
@@ -1,4 +0,0 @@
-name = Update test base theme
-description = Test theme which acts as a base theme for other test subthemes.
-core = 8.x
-hidden = TRUE
diff --git a/core/modules/update/tests/themes/update_test_basetheme/update_test_basetheme.info.yml b/core/modules/update/tests/themes/update_test_basetheme/update_test_basetheme.info.yml
new file mode 100644
index 0000000..5d3258a
--- /dev/null
+++ b/core/modules/update/tests/themes/update_test_basetheme/update_test_basetheme.info.yml
@@ -0,0 +1,4 @@
+name: 'Update test base theme'
+description: 'Test theme which acts as a base theme for other test subthemes.'
+core: 8.x
+hidden: true
diff --git a/core/modules/update/tests/themes/update_test_subtheme/update_test_subtheme.info b/core/modules/update/tests/themes/update_test_subtheme/update_test_subtheme.info
deleted file mode 100644
index c783dc2..0000000
--- a/core/modules/update/tests/themes/update_test_subtheme/update_test_subtheme.info
+++ /dev/null
@@ -1,5 +0,0 @@
-name = Update test subtheme
-description = Test theme which uses update_test_basetheme as the base theme.
-core = 8.x
-base theme = update_test_basetheme
-hidden = TRUE
diff --git a/core/modules/update/tests/themes/update_test_subtheme/update_test_subtheme.info.yml b/core/modules/update/tests/themes/update_test_subtheme/update_test_subtheme.info.yml
new file mode 100644
index 0000000..00fd44f
--- /dev/null
+++ b/core/modules/update/tests/themes/update_test_subtheme/update_test_subtheme.info.yml
@@ -0,0 +1,5 @@
+name: 'Update test subtheme'
+description: 'Test theme which uses update_test_basetheme as the base theme.'
+core: 8.x
+'base theme': update_test_basetheme
+hidden: true
diff --git a/core/modules/update/update.compare.inc b/core/modules/update/update.compare.inc
index 2262404..2bacac4 100644
--- a/core/modules/update/update.compare.inc
+++ b/core/modules/update/update.compare.inc
@@ -149,15 +149,15 @@ function update_process_info_list(&$projects, $list, $project_type, $status, $ad
       continue;
     }
 
-    // If we don't already know it, grab the change time on the .info file
+    // If we don't already know it, grab the change time on the .info.yml file
     // itself. Note: we need to use the ctime, not the mtime (modification
     // time) since many (all?) tar implementations will go out of their way to
     // set the mtime on the files it creates to the timestamps recorded in the
     // tarball. We want to see the last time the file was changed on disk,
-    // which is left alone by tar and correctly set to the time the .info file
-    // was unpacked.
+    // which is left alone by tar and correctly set to the time the .info.yml
+    // file was unpacked.
     if (!isset($file->info['_info_file_ctime'])) {
-      $info_filename = dirname($file->uri) . '/' . $file->name . '.info';
+      $info_filename = dirname($file->uri) . '/' . $file->name . '.info.yml';
       $file->info['_info_file_ctime'] = filectime($info_filename);
     }
 
@@ -809,13 +809,13 @@ function update_project_cache($cid) {
  * Filters the project .info data to only save attributes we need.
  *
  * @param array $info
- *   Array of .info file data as returned by drupal_parse_info_file().
+ *   Array of .info.yml file data as returned by drupal_parse_info_file().
  * @param $additional_whitelist
  *   (optional) Array of additional elements to be collected from the .info
  *   file. Defaults to array().
  *
  * @return
- *   Array of .info file data we need for the update manager.
+ *   Array of .info.yml file data we need for the update manager.
  *
  * @see update_process_info_list()
  */
diff --git a/core/modules/update/update.info b/core/modules/update/update.info
deleted file mode 100644
index 17e8d7a..0000000
--- a/core/modules/update/update.info
+++ /dev/null
@@ -1,7 +0,0 @@
-name = Update Manager
-description = Checks for available updates, and can securely install or update modules and themes via a web interface.
-version = VERSION
-package = Core
-core = 8.x
-configure = admin/reports/updates/settings
-dependencies[] = file
diff --git a/core/modules/update/update.info.yml b/core/modules/update/update.info.yml
new file mode 100644
index 0000000..a2feed3
--- /dev/null
+++ b/core/modules/update/update.info.yml
@@ -0,0 +1,8 @@
+name: 'Update Manager'
+description: 'Checks for available updates, and can securely install or update modules and themes via a web interface.'
+version: VERSION
+package: Core
+core: 8.x
+configure: admin/reports/updates/settings
+dependencies:
+    - file
diff --git a/core/modules/update/update.module b/core/modules/update/update.module
index 51e77e6..1f45ce7 100644
--- a/core/modules/update/update.module
+++ b/core/modules/update/update.module
@@ -694,7 +694,7 @@ function update_verify_update_archive($project, $archive_file, $directory) {
   // functionality).
   $compatible_project = FALSE;
   $incompatible = array();
-  $files = file_scan_directory("$directory/$project", '/^' . DRUPAL_PHP_FUNCTION_PATTERN . '\.info$/', array('key' => 'name', 'min_depth' => 0));
+  $files = file_scan_directory("$directory/$project", '/^' . DRUPAL_PHP_FUNCTION_PATTERN . '\.info.yml$/', array('key' => 'name', 'min_depth' => 0));
   foreach ($files as $key => $file) {
     // Get the .info file for the module or theme this file belongs to.
     $info = drupal_parse_info_file($file->uri);
diff --git a/core/modules/user/tests/user_form_test.info b/core/modules/user/tests/user_form_test.info
deleted file mode 100644
index ed2f39e..0000000
--- a/core/modules/user/tests/user_form_test.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = "User module form tests"
-description = "Support module for user form testing."
-package = Testing
-version = VERSION
-core = 8.x
-hidden = TRUE
diff --git a/core/modules/user/tests/user_form_test.info.yml b/core/modules/user/tests/user_form_test.info.yml
new file mode 100644
index 0000000..f6be592
--- /dev/null
+++ b/core/modules/user/tests/user_form_test.info.yml
@@ -0,0 +1,6 @@
+name: 'User module form tests'
+description: 'Support module for user form testing.'
+package: Testing
+version: VERSION
+core: 8.x
+hidden: true
diff --git a/core/modules/user/user.info b/core/modules/user/user.info
deleted file mode 100644
index 7e497e6..0000000
--- a/core/modules/user/user.info
+++ /dev/null
@@ -1,8 +0,0 @@
-name = User
-description = Manages the user registration and login system.
-package = Core
-version = VERSION
-core = 8.x
-required = TRUE
-configure = admin/config/people
-stylesheets[all][] = user.css
diff --git a/core/modules/user/user.info.yml b/core/modules/user/user.info.yml
new file mode 100644
index 0000000..ef97e2a
--- /dev/null
+++ b/core/modules/user/user.info.yml
@@ -0,0 +1,9 @@
+name: User
+description: 'Manages the user registration and login system.'
+package: Core
+version: VERSION
+core: 8.x
+required: true
+configure: admin/config/people
+stylesheets:
+    all: [user.css]
diff --git a/core/modules/xmlrpc/tests/modules/xmlrpc_test/xmlrpc_test.info b/core/modules/xmlrpc/tests/modules/xmlrpc_test/xmlrpc_test.info
deleted file mode 100644
index 6985439..0000000
--- a/core/modules/xmlrpc/tests/modules/xmlrpc_test/xmlrpc_test.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = "XML-RPC Test"
-description = "Support module for XML-RPC tests according to the validator1 specification."
-package = Testing
-version = VERSION
-core = 8.x
-hidden = TRUE
diff --git a/core/modules/xmlrpc/tests/modules/xmlrpc_test/xmlrpc_test.info.yml b/core/modules/xmlrpc/tests/modules/xmlrpc_test/xmlrpc_test.info.yml
new file mode 100644
index 0000000..f8f1a77
--- /dev/null
+++ b/core/modules/xmlrpc/tests/modules/xmlrpc_test/xmlrpc_test.info.yml
@@ -0,0 +1,6 @@
+name: 'XML-RPC Test'
+description: 'Support module for XML-RPC tests according to the validator1 specification.'
+package: Testing
+version: VERSION
+core: 8.x
+hidden: true
diff --git a/core/modules/xmlrpc/xmlrpc.info b/core/modules/xmlrpc/xmlrpc.info
deleted file mode 100644
index 6e5f676..0000000
--- a/core/modules/xmlrpc/xmlrpc.info
+++ /dev/null
@@ -1,5 +0,0 @@
-name = XML-RPC
-description = Provides XML-RPC functionality.
-package = Core
-version = VERSION
-core = 8.x
diff --git a/core/modules/xmlrpc/xmlrpc.info.yml b/core/modules/xmlrpc/xmlrpc.info.yml
new file mode 100644
index 0000000..b48b7fa
--- /dev/null
+++ b/core/modules/xmlrpc/xmlrpc.info.yml
@@ -0,0 +1,5 @@
+name: XML-RPC
+description: 'Provides XML-RPC functionality.'
+package: Core
+version: VERSION
+core: 8.x
diff --git a/core/profiles/minimal/minimal.info b/core/profiles/minimal/minimal.info
deleted file mode 100644
index 545e85c..0000000
--- a/core/profiles/minimal/minimal.info
+++ /dev/null
@@ -1,7 +0,0 @@
-name = Minimal
-description = Build a custom site without pre-configured functionality. Suitable for advanced users.
-version = VERSION
-core = 8.x
-dependencies[] = node
-dependencies[] = block
-dependencies[] = dblog
diff --git a/core/profiles/minimal/minimal.info.yml b/core/profiles/minimal/minimal.info.yml
new file mode 100644
index 0000000..16205d2
--- /dev/null
+++ b/core/profiles/minimal/minimal.info.yml
@@ -0,0 +1,8 @@
+name: Minimal
+description: 'Build a custom site without pre-configured functionality. Suitable for advanced users.'
+version: VERSION
+core: 8.x
+dependencies:
+    - node
+    - block
+    - dblog
diff --git a/core/profiles/standard/standard.info b/core/profiles/standard/standard.info
deleted file mode 100644
index 8b8a33b..0000000
--- a/core/profiles/standard/standard.info
+++ /dev/null
@@ -1,24 +0,0 @@
-name = Standard
-description = Install with commonly used features pre-configured.
-version = VERSION
-core = 8.x
-dependencies[] = node
-dependencies[] = block
-dependencies[] = color
-dependencies[] = comment
-dependencies[] = contextual
-dependencies[] = help
-dependencies[] = image
-dependencies[] = menu
-dependencies[] = number
-dependencies[] = options
-dependencies[] = path
-dependencies[] = taxonomy
-dependencies[] = dblog
-dependencies[] = search
-dependencies[] = shortcut
-dependencies[] = toolbar
-dependencies[] = overlay
-dependencies[] = field_ui
-dependencies[] = file
-dependencies[] = rdf
diff --git a/core/profiles/standard/standard.info.yml b/core/profiles/standard/standard.info.yml
new file mode 100644
index 0000000..1242586
--- /dev/null
+++ b/core/profiles/standard/standard.info.yml
@@ -0,0 +1,25 @@
+name: Standard
+description: 'Install with commonly used features pre-configured.'
+version: VERSION
+core: 8.x
+dependencies:
+    - node
+    - block
+    - color
+    - comment
+    - contextual
+    - help
+    - image
+    - menu
+    - number
+    - options
+    - path
+    - taxonomy
+    - dblog
+    - search
+    - shortcut
+    - toolbar
+    - overlay
+    - field_ui
+    - file
+    - rdf
diff --git a/core/profiles/testing/modules/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info b/core/profiles/testing/modules/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info
deleted file mode 100644
index 53515e7..0000000
--- a/core/profiles/testing/modules/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = "Drupal system listing compatible test"
-description = "Support module for testing the drupal_system_listing function."
-package = Testing
-version = VERSION
-core = 8.x
-hidden = TRUE
diff --git a/core/profiles/testing/modules/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info.yml b/core/profiles/testing/modules/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info.yml
new file mode 100644
index 0000000..26e8c74
--- /dev/null
+++ b/core/profiles/testing/modules/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info.yml
@@ -0,0 +1,6 @@
+name: 'Drupal system listing compatible test'
+description: 'Support module for testing the drupal_system_listing function.'
+package: Testing
+version: VERSION
+core: 8.x
+hidden: true
diff --git a/core/profiles/testing/modules/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info b/core/profiles/testing/modules/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info
deleted file mode 100644
index c067987..0000000
--- a/core/profiles/testing/modules/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info
+++ /dev/null
@@ -1,9 +0,0 @@
-name = "Drupal system listing incompatible test"
-description = "Support module for testing the drupal_system_listing function."
-package = Testing
-version = VERSION
-; This deliberately has the wrong core version, to test that it does not take
-; precedence over the version of the same module that is in the
-; modules/simpletest/tests directory.
-core = 6.x
-hidden = TRUE
diff --git a/core/profiles/testing/modules/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info.yml b/core/profiles/testing/modules/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info.yml
new file mode 100644
index 0000000..04295c5
--- /dev/null
+++ b/core/profiles/testing/modules/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info.yml
@@ -0,0 +1,6 @@
+name: 'Drupal system listing incompatible test'
+description: 'Support module for testing the drupal_system_listing function.'
+package: Testing
+version: VERSION
+core: 6.x
+hidden: true
diff --git a/core/profiles/testing/testing.info b/core/profiles/testing/testing.info
deleted file mode 100644
index fff3df2..0000000
--- a/core/profiles/testing/testing.info
+++ /dev/null
@@ -1,7 +0,0 @@
-name = Testing
-description = Minimal profile for running tests. Includes absolutely required modules only.
-version = VERSION
-core = 8.x
-hidden = TRUE
-; @todo Remove dependency on Node module.
-dependencies[] = node
diff --git a/core/profiles/testing/testing.info.yml b/core/profiles/testing/testing.info.yml
new file mode 100644
index 0000000..fe729b3
--- /dev/null
+++ b/core/profiles/testing/testing.info.yml
@@ -0,0 +1,7 @@
+name: Testing
+description: 'Minimal profile for running tests. Includes absolutely required modules only.'
+version: VERSION
+core: 8.x
+hidden: true
+dependencies:
+    - node
diff --git a/core/scripts/convert-info-yml.php b/core/scripts/convert-info-yml.php
new file mode 100644
index 0000000..a5bfaed
--- /dev/null
+++ b/core/scripts/convert-info-yml.php
@@ -0,0 +1,130 @@
+<?php
+
+/**
+ * @file
+ * Converts .info files into .info.yml files.
+ *
+ * Usage:
+ * @code
+ *   php core/scripts/convert-info-yml.php path/to/some.info [...]
+ * @endcode
+ */
+
+use Symfony\Component\Yaml\Yaml;
+
+// Customize if needed.
+$git_path = 'git';
+
+
+define('DRUPAL_ROOT', getcwd());
+
+require_once DRUPAL_ROOT . '/core/includes/bootstrap.inc';
+drupal_bootstrap(DRUPAL_BOOTSTRAP_CONFIGURATION);
+
+$info_files = $_SERVER['argv'];
+array_shift($info_files);
+
+foreach ($info_files as $info_file) {
+  $info = file_get_contents($info_file);
+  $info = drupal_parse_info_format($info);
+  $yaml = Yaml::dump($info);
+  $yaml_file = $info_file . '.yml';
+  file_put_contents($yaml_file, $yaml);
+  system($git_path . ' rm ' . escapeshellarg($info_file));
+  system($git_path . ' add ' . escapeshellarg($yaml_file));
+}
+
+/**
+ * Parses data in Drupal's .info format.
+ *
+ * Data should be in an .ini-like format to specify values. White-space
+ * generally doesn't matter, except inside values:
+ * @code
+ *   key = value
+ *   key = "value"
+ *   key = 'value'
+ *   key = "multi-line
+ *   value"
+ *   key = 'multi-line
+ *   value'
+ *   key
+ *   =
+ *   'value'
+ * @endcode
+ *
+ * Arrays are created using a HTTP GET alike syntax:
+ * @code
+ *   key[] = "numeric array"
+ *   key[index] = "associative array"
+ *   key[index][] = "nested numeric array"
+ *   key[index][index] = "nested associative array"
+ * @endcode
+ *
+ * PHP constants are substituted in, but only when used as the entire value.
+ * Comments should start with a semi-colon at the beginning of a line.
+ *
+ * @param $data
+ *   A string to parse.
+ *
+ * @return
+ *   The info array.
+ *
+ * @see drupal_parse_info_file()
+ */
+function drupal_parse_info_format($data) {
+  $info = array();
+  $constants = get_defined_constants();
+
+  if (preg_match_all('
+    @^\s*                           # Start at the beginning of a line, ignoring leading whitespace
+    ((?:
+      [^=;\[\]]|                    # Key names cannot contain equal signs, semi-colons or square brackets,
+      \[[^\[\]]*\]                  # unless they are balanced and not nested
+    )+?)
+    \s*=\s*                         # Key/value pairs are separated by equal signs (ignoring white-space)
+    (?:
+      ("(?:[^"]|(?<=\\\\)")*")|     # Double-quoted string, which may contain slash-escaped quotes/slashes
+      (\'(?:[^\']|(?<=\\\\)\')*\')| # Single-quoted string, which may contain slash-escaped quotes/slashes
+      ([^\r\n]*?)                   # Non-quoted string
+    )\s*$                           # Stop at the next end of a line, ignoring trailing whitespace
+    @msx', $data, $matches, PREG_SET_ORDER)) {
+    foreach ($matches as $match) {
+      // Fetch the key and value string.
+      $i = 0;
+      foreach (array('key', 'value1', 'value2', 'value3') as $var) {
+        $$var = isset($match[++$i]) ? $match[$i] : '';
+      }
+      $value = stripslashes(substr($value1, 1, -1)) . stripslashes(substr($value2, 1, -1)) . $value3;
+
+      // Parse array syntax.
+      $keys = preg_split('/\]?\[/', rtrim($key, ']'));
+      $last = array_pop($keys);
+      $parent = &$info;
+
+      // Create nested arrays.
+      foreach ($keys as $key) {
+        if ($key == '') {
+          $key = count($parent);
+        }
+        if (!isset($parent[$key]) || !is_array($parent[$key])) {
+          $parent[$key] = array();
+        }
+        $parent = &$parent[$key];
+      }
+
+      // Handle PHP constants.
+      // Note: All constants except VERSION are converted to their actual values.
+      if ($value !== 'VERSION' && isset($constants[$value])) {
+        $value = $constants[$value];
+      }
+
+      // Insert actual value.
+      if ($last == '') {
+        $last = count($parent);
+      }
+      $parent[$last] = $value;
+    }
+  }
+
+  return $info;
+}
diff --git a/core/themes/bartik/bartik.info b/core/themes/bartik/bartik.info
deleted file mode 100644
index c0c206d..0000000
--- a/core/themes/bartik/bartik.info
+++ /dev/null
@@ -1,33 +0,0 @@
-name = Bartik
-description = A flexible, recolorable theme with many regions and a responsive, mobile-first layout.
-package = Core
-version = VERSION
-core = 8.x
-
-stylesheets[all][] = css/layout.css
-stylesheets[all][] = css/style.css
-stylesheets[all][] = css/colors.css
-stylesheets[print][] = css/print.css
-
-regions[header] = Header
-regions[help] = Help
-regions[page_top] = Page top
-regions[page_bottom] = Page bottom
-regions[highlighted] = Highlighted
-
-regions[featured] = Featured
-regions[content] = Content
-regions[sidebar_first] = Sidebar first
-regions[sidebar_second] = Sidebar second
-
-regions[triptych_first] = Triptych first
-regions[triptych_middle] = Triptych middle
-regions[triptych_last] = Triptych last
-
-regions[footer_firstcolumn] = Footer first column
-regions[footer_secondcolumn] = Footer second column
-regions[footer_thirdcolumn] = Footer third column
-regions[footer_fourthcolumn] = Footer fourth column
-regions[footer] = Footer
-
-settings[shortcut_module_link] = 0
diff --git a/core/themes/bartik/bartik.info.yml b/core/themes/bartik/bartik.info.yml
new file mode 100644
index 0000000..4a37d73
--- /dev/null
+++ b/core/themes/bartik/bartik.info.yml
@@ -0,0 +1,28 @@
+name: Bartik
+description: 'A flexible, recolorable theme with many regions and a responsive, mobile-first layout.'
+package: Core
+version: VERSION
+core: 8.x
+stylesheets:
+    all: [css/layout.css, css/style.css, css/colors.css]
+    print: [css/print.css]
+regions:
+    header: Header
+    help: Help
+    page_top: 'Page top'
+    page_bottom: 'Page bottom'
+    highlighted: Highlighted
+    featured: Featured
+    content: Content
+    sidebar_first: 'Sidebar first'
+    sidebar_second: 'Sidebar second'
+    triptych_first: 'Triptych first'
+    triptych_middle: 'Triptych middle'
+    triptych_last: 'Triptych last'
+    footer_firstcolumn: 'Footer first column'
+    footer_secondcolumn: 'Footer second column'
+    footer_thirdcolumn: 'Footer third column'
+    footer_fourthcolumn: 'Footer fourth column'
+    footer: Footer
+settings:
+    shortcut_module_link: '0'
diff --git a/core/themes/seven/seven.info b/core/themes/seven/seven.info
deleted file mode 100644
index 969f749..0000000
--- a/core/themes/seven/seven.info
+++ /dev/null
@@ -1,14 +0,0 @@
-name = Seven
-description = A simple one-column, tableless, fluid width administration theme.
-package = Core
-version = VERSION
-core = 8.x
-stylesheets[screen][] = reset.css
-stylesheets[screen][] = style.css
-settings[shortcut_module_link] = 1
-regions[content] = Content
-regions[help] = Help
-regions[page_top] = Page top
-regions[page_bottom] = Page bottom
-regions[sidebar_first] = First sidebar
-regions_hidden[] = sidebar_first
diff --git a/core/themes/seven/seven.info.yml b/core/themes/seven/seven.info.yml
new file mode 100644
index 0000000..86e8926
--- /dev/null
+++ b/core/themes/seven/seven.info.yml
@@ -0,0 +1,17 @@
+name: Seven
+description: 'A simple one-column, tableless, fluid width administration theme.'
+package: Core
+version: VERSION
+core: 8.x
+stylesheets:
+    screen: [reset.css, style.css]
+settings:
+    shortcut_module_link: '1'
+regions:
+    content: Content
+    help: Help
+    page_top: 'Page top'
+    page_bottom: 'Page bottom'
+    sidebar_first: 'First sidebar'
+regions_hidden:
+    - sidebar_first
diff --git a/core/themes/stark/stark.info b/core/themes/stark/stark.info
deleted file mode 100644
index fbab2a0..0000000
--- a/core/themes/stark/stark.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = Stark
-description = This theme demonstrates Drupal's default HTML markup and CSS styles. To learn how to build your own theme and override Drupal's default code, see the <a href="http://drupal.org/theme-guide">Theming Guide</a>.
-package = Core
-version = VERSION
-core = 8.x
-stylesheets[all][] = css/layout.css
diff --git a/core/themes/stark/stark.info.yml b/core/themes/stark/stark.info.yml
new file mode 100644
index 0000000..152c88d
--- /dev/null
+++ b/core/themes/stark/stark.info.yml
@@ -0,0 +1,7 @@
+name: Stark
+description: 'This theme demonstrates Drupal''s default HTML markup and CSS styles. To learn how to build your own theme and override Drupal''s default code, see the <a href="http://drupal.org/theme-guide">Theming Guide</a>.'
+package: Core
+version: VERSION
+core: 8.x
+stylesheets:
+    all: [css/layout.css]
