diff --git a/core/includes/bootstrap.inc b/core/includes/bootstrap.inc
index 60b086a..5fd2e71 100644
--- a/core/includes/bootstrap.inc
+++ b/core/includes/bootstrap.inc
@@ -922,7 +922,7 @@ function drupal_get_filename($type, $name, $filename = NULL) {
         $extension = 'engine';
       }
       elseif ($type == 'theme') {
-        $extension = 'info';
+        $extension = 'info.yml';
       }
       // Profiles are converted into modules in system_rebuild_module_data().
       // @todo Remove false-exposure of profiles as modules.
diff --git a/core/includes/common.inc b/core/includes/common.inc
index f4c7e00..96a9110 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\PhpStorage\PhpStorageFactory;
 use Drupal\Component\Utility\NestedArray;
 use Drupal\Core\Cache\CacheBackendInterface;
@@ -2483,7 +2484,7 @@ function drupal_add_html_head_link($attributes, $header = FALSE) {
  *     enabled, this should be set to TRUE if the stylesheet is present on every
  *     page of the website for users for whom it is present at all. This
  *     defaults to FALSE. It is set to TRUE for stylesheets added via module and
- *     theme .info files. Modules that add stylesheets within hook_init()
+ *     theme .info.yml files. Modules that add stylesheets within hook_init()
  *     implementations, or from other code that ensures that the stylesheet is
  *     added to all website pages, should also set this flag to TRUE. All
  *     stylesheets within the same group that have the 'every_page' flag set to
@@ -3228,7 +3229,7 @@ function drupal_load_stylesheet($file, $optimize = NULL, $reset_basepath = TRUE)
   $basepath = dirname($file);
 
   // Load the CSS stylesheet. We suppress errors because themes may specify
-  // stylesheets in their .info file that don't exist in the theme's path,
+  // stylesheets in their .info.yml file that don't exist in the theme's path,
   // but are merely there to disable certain module CSS files.
   if ($contents = @file_get_contents($file)) {
     // Return the processed stylesheet.
@@ -3607,7 +3608,7 @@ function drupal_region_class($region) {
  *     enabled, this should be set to TRUE if the JavaScript is present on every
  *     page of the website for users for whom it is present at all. This
  *     defaults to FALSE. It is set to TRUE for JavaScript files that are added
- *     via module and theme .info files. Modules that add JavaScript within
+ *     via module and theme .info.yml files. Modules that add JavaScript within
  *     hook_init() implementations, or from other code that ensures that the
  *     JavaScript is added to all website pages, should also set this flag to
  *     TRUE. All JavaScript files within the same group and that have the
@@ -6148,39 +6149,39 @@ function element_set_attributes(array &$element, array $map) {
 }
 
 /**
- * Parses Drupal module and theme .info files.
+ * Parses Drupal module and theme .info.yml 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.
  * - 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.
+ * See forum.info.yml for an example of a module .info.yml 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.
+ * - base theme: Name of a base theme, if applicable
+ * - regions: Listed regions
+ * - features: Features available
+ * - stylesheets: Theme stylesheets
+ * - scripts: Theme scripts
  *
- * See bartik.info for an example of a theme .info file.
+ * See bartik.info.yml for an example of a theme .info.yml file.
  *
- * @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());
@@ -6191,104 +6192,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] : '';
+      $info[$filename] = Yaml::parse($filename);
+      if (isset($info[$filename]['version']) && $info[$filename]['version'] === 'VERSION') {
+        $info[$filename]['version'] = VERSION;
       }
-      $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.
-      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/image.inc b/core/includes/image.inc
index f0b91bf..2f15eb3 100644
--- a/core/includes/image.inc
+++ b/core/includes/image.inc
@@ -24,7 +24,7 @@
  *
  * Image toolkits are discovered based on the associated module's
  * hook_image_toolkits. Additionally the image toolkit include file
- * must be identified in the files array in the module.info file. The
+ * must be identified in the files array in the module.info.yml file. The
  * toolkit must then be enabled using the admin/config/media/image-toolkit
  * form.
  *
diff --git a/core/includes/install.core.inc b/core/includes/install.core.inc
index 86a45f7..6fb3f7e 100644
--- a/core/includes/install.core.inc
+++ b/core/includes/install.core.inc
@@ -185,7 +185,7 @@ function install_state_defaults() {
     // redirect.
     'parameters_changed' => FALSE,
     // An array of information about the chosen installation profile. This will
-    // be filled in based on the profile's .info file.
+    // be filled in based on the profile's .info.yml file.
     'profile_info' => array(),
     // An array of available installation profiles.
     'profiles' => array(),
diff --git a/core/includes/install.inc b/core/includes/install.inc
index e9d666f..2df611c 100644
--- a/core/includes/install.inc
+++ b/core/includes/install.inc
@@ -84,7 +84,7 @@ function drupal_load_updates() {
  * Loads the installation profile, extracting its defined distribution name.
  *
  * @return
- *   The distribution name defined in the profile's .info file. Defaults to
+ *   The distribution name defined in the profile's .info.yml file. Defaults to
  *   "Drupal" if none is explicitly provided by the installation profile.
  *
  * @see install_profile_info()
@@ -859,17 +859,17 @@ function drupal_check_module($module) {
 }
 
 /**
- * Retrieves information about an installation profile from its .info file.
+ * Retrieves information about an installation profile from its .info.yml file.
  *
- * The information stored in a profile .info file is similar to that stored in
- * a normal Drupal module .info file. For example:
+ * The information stored in a profile .info.yml file is similar to that stored
+ * in a normal Drupal module .info.yml file. For example:
  * - name: The real name of the installation profile for display purposes.
  * - description: A brief description of the profile.
  * - dependencies: An array of shortnames of other modules that this install
  *   profile requires.
  *
- * Additional, less commonly-used information that can appear in a profile.info
- * file but not in a normal Drupal module .info file includes:
+ * Additional, less commonly-used information that can appear in a
+ * profile.info.yml file but not in a normal Drupal module .info.yml file includes:
  * - distribution_name: The name of the Drupal distribution that is being
  *   installed, to be shown throughout the installation process. Defaults to
  *   'Drupal'.
@@ -884,7 +884,7 @@ function drupal_check_module($module) {
  * information for dependencies. If you only need information from the info
  * file itself, use system_get_info().
  *
- * Example of .info file:
+ * Example of .info.yml file:
  * @code
  *    name = Minimal
  *    description = Start fresh, with only a few modules enabled.
@@ -913,7 +913,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 d99b39d..fd834b1 100644
--- a/core/includes/module.inc
+++ b/core/includes/module.inc
@@ -631,7 +631,7 @@ function module_uninstall($module_list = array(), $uninstall_dependents = TRUE)
  * Returns an array of modules required by core.
  */
 function drupal_required_modules() {
-  $files = drupal_system_listing('/^' . DRUPAL_PHP_FUNCTION_PATTERN . '\.info$/', 'modules');
+  $files = drupal_system_listing('/^' . DRUPAL_PHP_FUNCTION_PATTERN . '\.info.yml$/', 'modules');
   $required = array();
 
   // An installation profile is required and one must always be loaded.
diff --git a/core/includes/theme.inc b/core/includes/theme.inc
index 3483330..d583f4a 100644
--- a/core/includes/theme.inc
+++ b/core/includes/theme.inc
@@ -121,7 +121,7 @@ function drupal_theme_initialize() {
  * @param $theme
  *   An object with the following information:
  *     filename
- *       The .info file for this theme. The 'path' to
+ *       The .info.yml file for this theme. The 'path' to
  *       the theme will be in this file's directory. (Required)
  *     owner
  *       The path to the .theme file or the .engine file to load for
@@ -693,22 +693,22 @@ function _theme_build_registry($theme, $base_theme, $theme_engine) {
  *   An associative array of the currently available themes. The keys are the
  *   themes' machine names and the values are objects having the following
  *   properties:
- *   - filename: The filepath and name of the .info file.
+ *   - filename: The filepath and name of the .info.yml file.
  *   - name: The machine name of the theme.
  *   - status: 1 for enabled, 0 for disabled themes.
- *   - info: The contents of the .info file.
+ *   - info: The contents of the .info.yml file.
  *   - stylesheets: A two dimensional array, using the first key for the
  *     media attribute (e.g. 'all'), the second for the name of the file
  *     (e.g. style.css). The value is a complete filepath (e.g.
  *     themes/bartik/style.css). Not set if no stylesheets are defined in the
- *     .info file.
+ *     .info.yml file.
  *   - scripts: An associative array of JavaScripts, using the filename as key
  *     and the complete filepath as value. Not set if no scripts are defined in
- *     the .info file.
+ *     the .info.yml file.
  *   - prefix: The base theme engine prefix.
  *   - engine: The machine name of the theme engine.
  *   - base_theme: If this is a sub-theme, the machine name of the base theme
- *     defined in the .info file. Otherwise, the element is not set.
+ *     defined in the .info.yml file. Otherwise, the element is not set.
  *   - base_themes: If this is a sub-theme, an associative array of the
  *     base-theme ancestors of this theme, starting with this theme's base
  *     theme, then the base theme's own base theme, etc. Each entry has an
@@ -1357,8 +1357,8 @@ function drupal_find_theme_templates($cache, $extension, $path) {
  * The final setting is obtained from the last value found in the following
  * sources:
  * - the default global settings specified in this function
- * - the default theme-specific settings defined in any base theme's .info file
- * - the default theme-specific settings defined in the theme's .info file
+ * - the default theme-specific settings defined in any base theme's .info.yml file
+ * - the default theme-specific settings defined in the theme's .info.yml file
  * - the saved values from the global theme settings form
  * - the saved values from the theme's settings form
  * To only retrieve the default global theme setting, an empty string should be
@@ -1398,7 +1398,7 @@ function theme_get_setting($setting_name, $theme = NULL) {
       $cache[$theme]['toggle_' . $feature] = 1;
     }
 
-    // Get the values for the theme-specific settings from the .info files of
+    // Get the values for the theme-specific settings from the .info.yml files of
     // the theme and all its base themes.
     if ($theme) {
       $themes = list_themes();
diff --git a/core/includes/theme.maintenance.inc b/core/includes/theme.maintenance.inc
index 0b426e2..932928f 100644
--- a/core/includes/theme.maintenance.inc
+++ b/core/includes/theme.maintenance.inc
@@ -64,7 +64,7 @@ function _drupal_maintenance_theme() {
   $themes = list_themes();
 
   // list_themes() triggers a drupal_alter() in maintenance mode, but we can't
-  // let themes alter the .info data until we know a theme's base themes. So
+  // let themes alter the .info.yml data until we know a theme's base themes. So
   // don't set global $theme until after list_themes() builds its cache.
   $theme = $custom_theme;
 
diff --git a/core/lib/Drupal/Core/SystemListing.php b/core/lib/Drupal/Core/SystemListing.php
index 6390f2b..d933d12 100644
--- a/core/lib/Drupal/Core/SystemListing.php
+++ b/core/lib/Drupal/Core/SystemListing.php
@@ -186,6 +186,7 @@ protected function scanDirectory($dir, $key, $mask, $nomask) {
               $file->uri = $uri;
               $file->filename = $filename;
               $file->name = pathinfo($filename, PATHINFO_FILENAME);
+              $this->processFile($file);
               $files[$file->$key] = $file;
             }
           }
@@ -195,4 +196,8 @@ protected function scanDirectory($dir, $key, $mask, $nomask) {
     }
     return $files;
   }
+
+  protected function processFile($file) {
+  }
+
 }
diff --git a/core/lib/Drupal/Core/SystemListingInfo.php b/core/lib/Drupal/Core/SystemListingInfo.php
index 8d45e1d..d1c444d 100644
--- a/core/lib/Drupal/Core/SystemListingInfo.php
+++ b/core/lib/Drupal/Core/SystemListingInfo.php
@@ -54,8 +54,8 @@ protected function process(array $files, array $files_to_add) {
     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')) {
-        // Get the .info file for the module or theme this file belongs to.
+      if (file_exists($info_file = dirname($file->uri) . '/' . $file->name . '.info.yml')) {
+        // Get the .info.yml file for the module or theme this file belongs to.
         $info = drupal_parse_info_file($info_file);
 
         // If the module or theme is incompatible with Drupal core, remove it
@@ -69,4 +69,11 @@ protected function process(array $files, array $files_to_add) {
     return $files_to_add;
   }
 
+  /**
+   * Overrides Drupal\Core\SystemListing::scanDirectory().
+   */
+  protected function processFile($file) {
+    $file->name = basename($file->name, '.info');
+  }
+
 }
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/lib/Drupal/Core/Utility/ModuleInfo.php b/core/lib/Drupal/Core/Utility/ModuleInfo.php
index 9ab2ea6..eca0874 100644
--- a/core/lib/Drupal/Core/Utility/ModuleInfo.php
+++ b/core/lib/Drupal/Core/Utility/ModuleInfo.php
@@ -10,7 +10,7 @@
 use Drupal\Core\Utility\CacheArray;
 
 /**
- * Extends CacheArray to lazy load .info properties for modules.
+ * Extends CacheArray to lazy load .info.yml properties for modules.
  *
  * Use system_get_module_info() rather than instantiating this class directly.
  */
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_bulk_test/action_bulk_test.info b/core/modules/action/tests/action_bulk_test/action_bulk_test.info
deleted file mode 100644
index 3698370..0000000
--- a/core/modules/action/tests/action_bulk_test/action_bulk_test.info
+++ /dev/null
@@ -1,8 +0,0 @@
-name = Action bulk form test
-description = Support module for action bulk form testing.
-package = Testing
-version = VERSION
-core = 8.x
-hidden = TRUE
-dependencies[] = action
-dependencies[] = views
diff --git a/core/modules/action/tests/action_bulk_test/action_bulk_test.info.yml b/core/modules/action/tests/action_bulk_test/action_bulk_test.info.yml
new file mode 100644
index 0000000..3d7e9c6
--- /dev/null
+++ b/core/modules/action/tests/action_bulk_test/action_bulk_test.info.yml
@@ -0,0 +1,9 @@
+name: 'Action bulk form test'
+description: 'Support module for action bulk form testing.'
+package: Testing
+version: VERSION
+core: 8.x
+hidden: true
+dependencies:
+  - action
+  - views
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..f796d39
--- /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 66e1e51..0000000
--- a/core/modules/aggregator/aggregator.info
+++ /dev/null
@@ -1,7 +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
-dependencies[] = file
diff --git a/core/modules/aggregator/aggregator.info.yml b/core/modules/aggregator/aggregator.info.yml
new file mode 100644
index 0000000..4cade24
--- /dev/null
+++ b/core/modules/aggregator/aggregator.info.yml
@@ -0,0 +1,8 @@
+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
+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/custom_block/custom_block.info b/core/modules/block/custom_block/custom_block.info
deleted file mode 100644
index f38e540..0000000
--- a/core/modules/block/custom_block/custom_block.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = Custom Block
-description = Allows the creation of custom blocks through the user interface.
-package = Core
-version = VERSION
-core = 8.x
-dependencies[] = block
diff --git a/core/modules/block/custom_block/custom_block.info.yml b/core/modules/block/custom_block/custom_block.info.yml
new file mode 100644
index 0000000..08b231d
--- /dev/null
+++ b/core/modules/block/custom_block/custom_block.info.yml
@@ -0,0 +1,7 @@
+name: 'Custom Block'
+description: 'Allows the creation of custom blocks through the user interface.'
+package: Core
+version: VERSION
+core: 8.x
+dependencies:
+  - block
diff --git a/core/modules/block/lib/Drupal/block/BlockListController.php b/core/modules/block/lib/Drupal/block/BlockListController.php
index d21e1a9..786907e 100644
--- a/core/modules/block/lib/Drupal/block/BlockListController.php
+++ b/core/modules/block/lib/Drupal/block/BlockListController.php
@@ -77,7 +77,7 @@ protected function sort(Block $a, Block $b) {
     if ($status) {
       return $status;
     }
-    // Sort by region (in the order defined by theme .info file).
+    // Sort by region (in the order defined by theme .info.yml file).
     $aregion = $a->get('region');
     $bregion = $b->get('region');
     if ((!empty($aregion) && !empty($bregion)) && ($place = ($regions[$aregion] - $regions[$bregion]))) {
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/block_test.module b/core/modules/block/tests/block_test.module
index 03f94b0..6abb95f 100644
--- a/core/modules/block/tests/block_test.module
+++ b/core/modules/block/tests/block_test.module
@@ -9,6 +9,6 @@
  * Implements hook_system_theme_info().
  */
 function block_test_system_theme_info() {
-  $themes['block_test_theme'] = drupal_get_path('module', 'block_test') . '/themes/block_test_theme/block_test_theme.info';
+  $themes['block_test_theme'] = drupal_get_path('module', 'block_test') . '/themes/block_test_theme/block_test_theme.info.yml';
   return $themes;
 }
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..c19cbf5
--- /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 b42a72b..0000000
--- a/core/modules/book/book.info
+++ /dev/null
@@ -1,7 +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
diff --git a/core/modules/book/book.info.yml b/core/modules/book/book.info.yml
new file mode 100644
index 0000000..7c250b1
--- /dev/null
+++ b/core/modules/book/book.info.yml
@@ -0,0 +1,8 @@
+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
diff --git a/core/modules/breakpoint/breakpoint.info b/core/modules/breakpoint/breakpoint.info
deleted file mode 100644
index 793bdcd..0000000
--- a/core/modules/breakpoint/breakpoint.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = Breakpoint
-description = Manage breakpoints and breakpoint groups for responsive designs.
-package = Core
-version = VERSION
-core = 8.x
-
diff --git a/core/modules/breakpoint/breakpoint.info.yml b/core/modules/breakpoint/breakpoint.info.yml
new file mode 100644
index 0000000..5b5521a
--- /dev/null
+++ b/core/modules/breakpoint/breakpoint.info.yml
@@ -0,0 +1,5 @@
+name: Breakpoint
+description: 'Manage breakpoints and breakpoint groups for responsive designs.'
+package: Core
+version: VERSION
+core: 8.x
diff --git a/core/modules/breakpoint/tests/breakpoint_theme_test.info b/core/modules/breakpoint/tests/breakpoint_theme_test.info
deleted file mode 100644
index d2896f6..0000000
--- a/core/modules/breakpoint/tests/breakpoint_theme_test.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = Breakpoint theme test
-description = Test breakpoints provided by themes
-package = Other
-core = 8.x
-hidden = TRUE
-dependencies[] = breakpoint
diff --git a/core/modules/breakpoint/tests/breakpoint_theme_test.info.yml b/core/modules/breakpoint/tests/breakpoint_theme_test.info.yml
new file mode 100644
index 0000000..93aaee0
--- /dev/null
+++ b/core/modules/breakpoint/tests/breakpoint_theme_test.info.yml
@@ -0,0 +1,7 @@
+name: 'Breakpoint theme test'
+description: 'Test breakpoints provided by themes'
+package: Other
+core: 8.x
+hidden: true
+dependencies:
+  - breakpoint
diff --git a/core/modules/breakpoint/tests/breakpoint_theme_test.module b/core/modules/breakpoint/tests/breakpoint_theme_test.module
index 50b5ff0..765cc50 100644
--- a/core/modules/breakpoint/tests/breakpoint_theme_test.module
+++ b/core/modules/breakpoint/tests/breakpoint_theme_test.module
@@ -8,6 +8,6 @@
  * Implements hook_system_theme_info().
  */
 function breakpoint_theme_test_system_theme_info() {
-  $themes['breakpoint_test_theme'] = drupal_get_path('module', 'breakpoint_theme_test') . '/themes/breakpoint_test_theme/breakpoint_test_theme.info';
+  $themes['breakpoint_test_theme'] = drupal_get_path('module', 'breakpoint_theme_test') . '/themes/breakpoint_test_theme/breakpoint_test_theme.info.yml';
   return $themes;
 }
diff --git a/core/modules/breakpoint/tests/themes/breakpoint_test_theme/breakpoint_test_theme.info b/core/modules/breakpoint/tests/themes/breakpoint_test_theme/breakpoint_test_theme.info
deleted file mode 100644
index e3dab72..0000000
--- a/core/modules/breakpoint/tests/themes/breakpoint_test_theme/breakpoint_test_theme.info
+++ /dev/null
@@ -1,5 +0,0 @@
-name = Breakpoint test theme
-description = Test theme for breakpoint.
-core = 8.x
-base theme = bartik
-hidden = TRUE
diff --git a/core/modules/breakpoint/tests/themes/breakpoint_test_theme/breakpoint_test_theme.info.yml b/core/modules/breakpoint/tests/themes/breakpoint_test_theme/breakpoint_test_theme.info.yml
new file mode 100644
index 0000000..8bbf218
--- /dev/null
+++ b/core/modules/breakpoint/tests/themes/breakpoint_test_theme/breakpoint_test_theme.info.yml
@@ -0,0 +1,5 @@
+name: 'Breakpoint test theme'
+description: 'Test theme for breakpoint.'
+core: 8.x
+'base theme': bartik
+hidden: true
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 340df76..0000000
--- a/core/modules/comment/comment.info
+++ /dev/null
@@ -1,8 +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
diff --git a/core/modules/comment/comment.info.yml b/core/modules/comment/comment.info.yml
new file mode 100644
index 0000000..71d14b6
--- /dev/null
+++ b/core/modules/comment/comment.info.yml
@@ -0,0 +1,9 @@
+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
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..0f61107
--- /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/comment/tests/modules/comment_test_views/comment_test_views.info b/core/modules/comment/tests/modules/comment_test_views/comment_test_views.info
deleted file mode 100644
index b1e08b3..0000000
--- a/core/modules/comment/tests/modules/comment_test_views/comment_test_views.info
+++ /dev/null
@@ -1,8 +0,0 @@
-name = Comment test views
-description = Provides default views for views comment tests.
-package = Testing
-version = VERSION
-core = 8.x
-dependencies[] = comment
-dependencies[] = views
-hidden = TRUE
diff --git a/core/modules/comment/tests/modules/comment_test_views/comment_test_views.info.yml b/core/modules/comment/tests/modules/comment_test_views/comment_test_views.info.yml
new file mode 100644
index 0000000..03ca3a9
--- /dev/null
+++ b/core/modules/comment/tests/modules/comment_test_views/comment_test_views.info.yml
@@ -0,0 +1,9 @@
+name: 'Comment test views'
+description: 'Provides default views for views comment tests.'
+package: Testing
+version: VERSION
+core: 8.x
+dependencies:
+  - comment
+  - views
+hidden: true
diff --git a/core/modules/config/config.info b/core/modules/config/config.info
deleted file mode 100644
index efab7a1..0000000
--- a/core/modules/config/config.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = Configuration manager
-description = Allows administrators to manage configuration changes.
-package = Core
-version = VERSION
-core = 8.x
-configure = admin/config/development/sync
diff --git a/core/modules/config/config.info.yml b/core/modules/config/config.info.yml
new file mode 100644
index 0000000..fa99778
--- /dev/null
+++ b/core/modules/config/config.info.yml
@@ -0,0 +1,6 @@
+name: 'Configuration manager'
+description: 'Allows administrators to manage configuration changes.'
+package: Core
+version: VERSION
+core: 8.x
+configure: admin/config/development/sync
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/config/tests/config_test_invalid_name/config_test_invalid_name.info b/core/modules/config/tests/config_test_invalid_name/config_test_invalid_name.info
deleted file mode 100644
index 8532cdb..0000000
--- a/core/modules/config/tests/config_test_invalid_name/config_test_invalid_name.info
+++ /dev/null
@@ -1,5 +0,0 @@
-name = Invalid configuration name
-package = Core
-version = VERSION
-core = 8.x
-hidden = TRUE
diff --git a/core/modules/config/tests/config_test_invalid_name/config_test_invalid_name.info.yml b/core/modules/config/tests/config_test_invalid_name/config_test_invalid_name.info.yml
new file mode 100644
index 0000000..9699c46
--- /dev/null
+++ b/core/modules/config/tests/config_test_invalid_name/config_test_invalid_name.info.yml
@@ -0,0 +1,5 @@
+name: 'Invalid configuration name'
+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/edit/edit.info b/core/modules/edit/edit.info
deleted file mode 100644
index 4074a7b..0000000
--- a/core/modules/edit/edit.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = Edit
-description = In-place content editing.
-package = Core
-core = 8.x
-version = VERSION
-dependencies[] = field
diff --git a/core/modules/edit/edit.info.yml b/core/modules/edit/edit.info.yml
new file mode 100644
index 0000000..bde745b
--- /dev/null
+++ b/core/modules/edit/edit.info.yml
@@ -0,0 +1,7 @@
+name: Edit
+description: 'In-place content editing.'
+package: Core
+core: 8.x
+version: VERSION
+dependencies:
+  - field
diff --git a/core/modules/edit/tests/modules/edit_test.info b/core/modules/edit/tests/modules/edit_test.info
deleted file mode 100644
index 4df4a3f..0000000
--- a/core/modules/edit/tests/modules/edit_test.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = Edit test
-description = Support module for the Edit module tests.
-core = 8.x
-package = Testing
-version = VERSION
-hidden = TRUE
diff --git a/core/modules/edit/tests/modules/edit_test.info.yml b/core/modules/edit/tests/modules/edit_test.info.yml
new file mode 100644
index 0000000..d92aadf
--- /dev/null
+++ b/core/modules/edit/tests/modules/edit_test.info.yml
@@ -0,0 +1,6 @@
+name: 'Edit test'
+description: 'Support module for the Edit module tests.'
+core: 8.x
+package: Testing
+version: VERSION
+hidden: true
diff --git a/core/modules/editor/editor.info b/core/modules/editor/editor.info
deleted file mode 100644
index 995d003..0000000
--- a/core/modules/editor/editor.info
+++ /dev/null
@@ -1,7 +0,0 @@
-name = Text Editor
-description = "Allows to associate text formats with text editor libraries such as WYSIWYGs or toolbars."
-package = Core
-version = VERSION
-core = 8.x
-dependencies[] = filter
-configure = admin/config/content/formats
diff --git a/core/modules/editor/editor.info.yml b/core/modules/editor/editor.info.yml
new file mode 100644
index 0000000..e339754
--- /dev/null
+++ b/core/modules/editor/editor.info.yml
@@ -0,0 +1,8 @@
+name: 'Text Editor'
+description: 'Allows to associate text formats with text editor libraries such as WYSIWYGs or toolbars.'
+package: Core
+version: VERSION
+core: 8.x
+dependencies:
+  - filter
+configure: admin/config/content/formats
diff --git a/core/modules/editor/tests/modules/editor_test.info b/core/modules/editor/tests/modules/editor_test.info
deleted file mode 100644
index 9745677..0000000
--- a/core/modules/editor/tests/modules/editor_test.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = Text Editor test
-description = Support module for the Text Editor module tests.
-core = 8.x
-package = Testing
-version = VERSION
-hidden = TRUE
diff --git a/core/modules/editor/tests/modules/editor_test.info.yml b/core/modules/editor/tests/modules/editor_test.info.yml
new file mode 100644
index 0000000..6af8641
--- /dev/null
+++ b/core/modules/editor/tests/modules/editor_test.info.yml
@@ -0,0 +1,6 @@
+name: 'Text Editor test'
+description: 'Support module for the Text Editor module tests.'
+core: 8.x
+package: Testing
+version: VERSION
+hidden: true
diff --git a/core/modules/email/email.info b/core/modules/email/email.info
deleted file mode 100644
index c5b7437..0000000
--- a/core/modules/email/email.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = E-mail
-description = Defines a field type for e-mail addresses.
-package = Core
-version = VERSION
-core = 8.x
-dependencies[] = field
diff --git a/core/modules/email/email.info.yml b/core/modules/email/email.info.yml
new file mode 100644
index 0000000..c4f31f1
--- /dev/null
+++ b/core/modules/email/email.info.yml
@@ -0,0 +1,7 @@
+name: E-mail
+description: 'Defines a field type for e-mail addresses.'
+package: Core
+version: VERSION
+core: 8.x
+dependencies:
+  - field
diff --git a/core/modules/entity/entity.info b/core/modules/entity/entity.info
deleted file mode 100644
index 5887b39..0000000
--- a/core/modules/entity/entity.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = Entity
-description = Generic entity functionality.
-package = Core
-version = VERSION
-core = 8.x
-required = TRUE
diff --git a/core/modules/entity/entity.info.yml b/core/modules/entity/entity.info.yml
new file mode 100644
index 0000000..c5da924
--- /dev/null
+++ b/core/modules/entity/entity.info.yml
@@ -0,0 +1,6 @@
+name: Entity
+description: 'Generic entity functionality.'
+package: Core
+version: VERSION
+core: 8.x
+required: true
diff --git a/core/modules/field/field.info b/core/modules/field/field.info
deleted file mode 100644
index c74da0e..0000000
--- a/core/modules/field/field.info
+++ /dev/null
@@ -1,7 +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
diff --git a/core/modules/field/field.info.yml b/core/modules/field/field.info.yml
new file mode 100644
index 0000000..8cd31f1
--- /dev/null
+++ b/core/modules/field/field.info.yml
@@ -0,0 +1,8 @@
+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
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/tests/modules/field_test_views/field_test_views.info b/core/modules/field/tests/modules/field_test_views/field_test_views.info
deleted file mode 100644
index b997534..0000000
--- a/core/modules/field/tests/modules/field_test_views/field_test_views.info
+++ /dev/null
@@ -1,7 +0,0 @@
-name = User test views
-description = Provides default views for views user tests.
-package = Testing
-version = VERSION
-core = 8.x
-dependencies[] = views
-hidden = TRUE
diff --git a/core/modules/field/tests/modules/field_test_views/field_test_views.info.yml b/core/modules/field/tests/modules/field_test_views/field_test_views.info.yml
new file mode 100644
index 0000000..ba7a4d9
--- /dev/null
+++ b/core/modules/field/tests/modules/field_test_views/field_test_views.info.yml
@@ -0,0 +1,8 @@
+name: 'User test views'
+description: 'Provides default views for views user tests.'
+package: Testing
+version: VERSION
+core: 8.x
+dependencies:
+  - views
+hidden: true
diff --git a/core/modules/field_sql_storage/field_sql_storage.info b/core/modules/field_sql_storage/field_sql_storage.info
deleted file mode 100644
index 2106ac7..0000000
--- a/core/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_sql_storage/field_sql_storage.info.yml b/core/modules/field_sql_storage/field_sql_storage.info.yml
new file mode 100644
index 0000000..f372518
--- /dev/null
+++ b/core/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_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..2a06ac3
--- /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..9e3e904
--- /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/filter/tests/filter_test/filter_test.info b/core/modules/filter/tests/filter_test/filter_test.info
deleted file mode 100644
index ee27c29..0000000
--- a/core/modules/filter/tests/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/filter/tests/filter_test/filter_test.info.yml b/core/modules/filter/tests/filter_test/filter_test.info.yml
new file mode 100644
index 0000000..9435261
--- /dev/null
+++ b/core/modules/filter/tests/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/forum/forum.info b/core/modules/forum/forum.info
deleted file mode 100644
index 79317ea..0000000
--- a/core/modules/forum/forum.info
+++ /dev/null
@@ -1,10 +0,0 @@
-name = Forum
-description = Provides discussion forums.
-dependencies[] = node
-dependencies[] = history
-dependencies[] = taxonomy
-dependencies[] = comment
-package = Core
-version = VERSION
-core = 8.x
-configure = admin/structure/forum
diff --git a/core/modules/forum/forum.info.yml b/core/modules/forum/forum.info.yml
new file mode 100644
index 0000000..5d55d08
--- /dev/null
+++ b/core/modules/forum/forum.info.yml
@@ -0,0 +1,11 @@
+name: Forum
+description: 'Provides discussion forums.'
+dependencies:
+  - node
+  - history
+  - taxonomy
+  - comment
+package: Core
+version: VERSION
+core: 8.x
+configure: admin/structure/forum
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/history/history.info b/core/modules/history/history.info
deleted file mode 100644
index 7658749..0000000
--- a/core/modules/history/history.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = History
-description = Records which user has read which content.
-package = Core
-version = VERSION
-core = 8.x
-dependencies[] = node
diff --git a/core/modules/history/history.info.yml b/core/modules/history/history.info.yml
new file mode 100644
index 0000000..f88dd0f
--- /dev/null
+++ b/core/modules/history/history.info.yml
@@ -0,0 +1,7 @@
+name: History
+description: 'Records which user has read which content.'
+package: Core
+version: VERSION
+core: 8.x
+dependencies:
+  - node
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..93d4602
--- /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/jsonld/jsonld.info b/core/modules/jsonld/jsonld.info
deleted file mode 100644
index fce4688..0000000
--- a/core/modules/jsonld/jsonld.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = JSON-LD
-description = Serializes entities using JSON-LD format.
-package = Core
-version = VERSION
-core = 8.x
-dependencies[] = rdf
diff --git a/core/modules/jsonld/jsonld.info.yml b/core/modules/jsonld/jsonld.info.yml
new file mode 100644
index 0000000..474aa4d
--- /dev/null
+++ b/core/modules/jsonld/jsonld.info.yml
@@ -0,0 +1,7 @@
+name: JSON-LD
+description: 'Serializes entities using JSON-LD format.'
+package: Core
+version: VERSION
+core: 8.x
+dependencies:
+  - rdf
diff --git a/core/modules/language/language.info b/core/modules/language/language.info
deleted file mode 100644
index 53ab979..0000000
--- a/core/modules/language/language.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = Language
-description = Allows users to configure languages and apply them to content.
-package = Multilingual
-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..ab5444d
--- /dev/null
+++ b/core/modules/language/language.info.yml
@@ -0,0 +1,6 @@
+name: Language
+description: 'Allows users to configure languages and apply them to content.'
+package: Multilingual
+version: VERSION
+core: 8.x
+configure: admin/config/regional/language
diff --git a/core/modules/language/tests/language_elements_test/language_elements_test.info b/core/modules/language/tests/language_elements_test/language_elements_test.info
deleted file mode 100644
index c88befb..0000000
--- a/core/modules/language/tests/language_elements_test/language_elements_test.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = "Language form elements test"
-description = "Support module for the language form elements tests."
-core = 8.x
-package = Testing
-version = VERSION
-hidden = TRUE
diff --git a/core/modules/language/tests/language_elements_test/language_elements_test.info.yml b/core/modules/language/tests/language_elements_test/language_elements_test.info.yml
new file mode 100644
index 0000000..25df8f7
--- /dev/null
+++ b/core/modules/language/tests/language_elements_test/language_elements_test.info.yml
@@ -0,0 +1,6 @@
+name: 'Language form elements test'
+description: 'Support module for the language form elements tests.'
+core: 8.x
+package: Testing
+version: VERSION
+hidden: true
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/layout/layout.info b/core/modules/layout/layout.info
deleted file mode 100644
index 187bfea..0000000
--- a/core/modules/layout/layout.info
+++ /dev/null
@@ -1,5 +0,0 @@
-name = Layout
-description = Makes it possible to swap different page layouts.
-package = Core
-version = VERSION
-core = 8.x
diff --git a/core/modules/layout/layout.info.yml b/core/modules/layout/layout.info.yml
new file mode 100644
index 0000000..d4fe090
--- /dev/null
+++ b/core/modules/layout/layout.info.yml
@@ -0,0 +1,5 @@
+name: Layout
+description: 'Makes it possible to swap different page layouts.'
+package: Core
+version: VERSION
+core: 8.x
diff --git a/core/modules/layout/tests/layout_test.info b/core/modules/layout/tests/layout_test.info
deleted file mode 100644
index 7b054a9..0000000
--- a/core/modules/layout/tests/layout_test.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = Layout test
-description = Helps with testing layouts.
-package = Testing
-version = VERSION
-core = 8.x
-hidden = TRUE
diff --git a/core/modules/layout/tests/layout_test.info.yml b/core/modules/layout/tests/layout_test.info.yml
new file mode 100644
index 0000000..7a3ddca
--- /dev/null
+++ b/core/modules/layout/tests/layout_test.info.yml
@@ -0,0 +1,6 @@
+name: 'Layout test'
+description: 'Helps with testing layouts.'
+package: Testing
+version: VERSION
+core: 8.x
+hidden: true
diff --git a/core/modules/layout/tests/layout_test.module b/core/modules/layout/tests/layout_test.module
index 74de123..0e84a95 100644
--- a/core/modules/layout/tests/layout_test.module
+++ b/core/modules/layout/tests/layout_test.module
@@ -46,6 +46,6 @@ function layout_test_page() {
  * Implements hook_system_theme_info().
  */
 function layout_test_system_theme_info() {
-  $themes['layout_test_theme'] = drupal_get_path('module', 'layout_test') . '/themes/layout_test_theme/layout_test_theme.info';
+  $themes['layout_test_theme'] = drupal_get_path('module', 'layout_test') . '/themes/layout_test_theme/layout_test_theme.info.yml';
   return $themes;
 }
diff --git a/core/modules/layout/tests/themes/layout_test_theme/layout_test_theme.info b/core/modules/layout/tests/themes/layout_test_theme/layout_test_theme.info
deleted file mode 100644
index 84bcff0..0000000
--- a/core/modules/layout/tests/themes/layout_test_theme/layout_test_theme.info
+++ /dev/null
@@ -1,4 +0,0 @@
-name = Layout test theme
-description = Theme for testing the layout system
-core = 8.x
-hidden = TRUE
diff --git a/core/modules/layout/tests/themes/layout_test_theme/layout_test_theme.info.yml b/core/modules/layout/tests/themes/layout_test_theme/layout_test_theme.info.yml
new file mode 100644
index 0000000..d4d083f
--- /dev/null
+++ b/core/modules/layout/tests/themes/layout_test_theme/layout_test_theme.info.yml
@@ -0,0 +1,4 @@
+name: 'Layout test theme'
+description: 'Theme for testing the layout system'
+core: 8.x
+hidden: true
diff --git a/core/modules/link/link.info b/core/modules/link/link.info
deleted file mode 100644
index a43c222..0000000
--- a/core/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/link/link.info.yml b/core/modules/link/link.info.yml
new file mode 100644
index 0000000..e322b03
--- /dev/null
+++ b/core/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/locale/locale.api.php b/core/modules/locale/locale.api.php
index 5005018..383050b 100644
--- a/core/modules/locale/locale.api.php
+++ b/core/modules/locale/locale.api.php
@@ -9,10 +9,10 @@
  * @defgroup interface_translation_properties Interface translation properties
  * @{
  *
- * .info file properties for interface translation settings.
+ * .info.yml file properties for interface translation settings.
  *
  * For modules hosted on drupal.org, a project definition is automatically added
- * to the .info file. Only modules with this project definition are discovered
+ * to the .info.yml file. Only modules with this project definition are discovered
  * by the update module and use it to check for new releases. Locale module uses
  * the same data to build a list of modules to check for new translations.
  * Therefore modules not hosted at drupal.org, such as custom modules, custom
@@ -21,10 +21,10 @@
  *
  * Custom modules which contain new strings should provide po file(s) containing
  * source strings and string translations in gettext format. The translation
- * file can be located both local and remote. Use the following .info file
+ * file can be located both local and remote. Use the following .info.yml file
  * properties to inform Locale module to load and import the translations.
  *
- * Example .info file properties for a custom module with a po file located in
+ * Example .info.yml file properties for a custom module with a po file located in
  * the module's folder.
  * @code
  * interface translation project = example_module
@@ -47,22 +47,22 @@
  * the same project/code tree. Both "interface translation project" and
  * "interface translation server pattern" definitions of these modules should match.
  *
- * Example .info file properties for a custom module with a po file located on
- * a remote translation server.
+ * Example .info.yml file properties for a custom module with a po file located
+ * on a remote translation server.
  * @code
  * interface translation project = example_module
  * interface translation server pattern = http://example.com/files/translations/%core/%project/%project-%version.%language.po
  * @endcode
  *
- * Custom themes, features and distributions can implement these .info file
- * properties in their .info file too.
+ * Custom themes, features and distributions can implement these .info.yml file
+ * properties in their .info.yml file too.
  *
  * To change the interface translation settings of modules and themes hosted at
  * drupal.org use hook_locale_translation_projects_alter(). Possible changes
  * include changing the po file location (server pattern) or removing the
  * project from the translation update list.
  *
- * Available .info file properties:
+ * Available .info.yml file properties:
  * - "interface translation project": project name. Required.
  *   Name of the project a (sub-)module belongs to. Multiple modules sharing
  *   the same project name will be listed as one the translation status list.
diff --git a/core/modules/locale/locale.compare.inc b/core/modules/locale/locale.compare.inc
index 267cd9d..327c821 100644
--- a/core/modules/locale/locale.compare.inc
+++ b/core/modules/locale/locale.compare.inc
@@ -50,7 +50,7 @@ function locale_translation_build_projects() {
     return array();
   }
 
-  // Get the project list based on .info files.
+  // Get the project list based on .info.yml files.
   $projects = locale_translation_project_list();
 
   // Mark all previous projects as disabled and store new project data.
@@ -128,7 +128,7 @@ function locale_translation_build_projects() {
  * Fetch an array of projects for translation update.
  *
  * @return array
- *   Array of project data including .info file data.
+ *   Array of project data including .info.yml file data.
  */
 function locale_translation_project_list() {
   // This function depends on Update module. We degrade gracefully.
@@ -164,22 +164,22 @@ function locale_translation_project_list() {
 /**
  * Prepare module and theme data.
  *
- * Modify .info file data before it is processed by update_process_info_list().
+ * Modify .info.yml file data before it is processed by update_process_info_list().
  * In order for update_process_info_list() to recognize a project, it requires
- * the 'project' parameter in the .info file data.
+ * the 'project' parameter in the .info.yml file data.
  *
  * Custom modules or themes can bring their own gettext translation file. To
  * enable import of this file the module or theme defines "interface translation
- * project = myproject" in its .info file. This function will add a project
+ * project = myproject" in its .info.yml file. This function will add a project
  * "myproject" to the info data.
  *
  * @param array $data
- *   Array of .info file data.
+ *   Array of .info.yml file data.
  * @param string $type
  *   The project type. i.e. module, theme.
  *
  * @return array
- *   Array of .info file data.
+ *   Array of .info.yml file data.
  */
 function _locale_translation_prepare_project_list($data, $type) {
   foreach ($data as $name => $file) {
@@ -356,7 +356,7 @@ function _locale_translation_batch_status_operations($projects, $langcodes) {
  * path to the po source files. If no server_pattern is defined the default
  * translation directory is checked for the po file. When a server_pattern is
  * defined the specified location is checked. The server_pattern can be set in
- * the module's .info file or by using hook_locale_translation_projects_alter().
+ * the module's .info.yml file or by using hook_locale_translation_projects_alter().
  *
  * @param array $projects
  *   Array of project names for which to check the state of translation files.
diff --git a/core/modules/locale/locale.info b/core/modules/locale/locale.info
deleted file mode 100644
index bb9c0e3..0000000
--- a/core/modules/locale/locale.info
+++ /dev/null
@@ -1,8 +0,0 @@
-name = Interface Translation
-description = Translates the built-in user interface.
-package = Multilingual
-version = VERSION
-core = 8.x
-configure = admin/config/regional/translate
-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..039098f
--- /dev/null
+++ b/core/modules/locale/locale.info.yml
@@ -0,0 +1,8 @@
+name: 'Interface Translation'
+description: 'Translates the built-in user interface.'
+package: Multilingual
+version: VERSION
+core: 8.x
+dependencies:
+  - language
+  - file
diff --git a/core/modules/locale/locale.translation.inc b/core/modules/locale/locale.translation.inc
index d6060f6..ce4f6ac 100644
--- a/core/modules/locale/locale.translation.inc
+++ b/core/modules/locale/locale.translation.inc
@@ -152,7 +152,7 @@ function locale_translation_build_sources($projects = array(), $langcodes = arra
  * The "local" files property of the source object contains the definition of a
  * po file we are looking for. The file name defaults to
  * %project-%version.%language.po. Per project this value can be overridden
- * using the server_pattern directive in the module's .info file or by using
+ * using the server_pattern directive in the module's .info.yml file or by using
  * hook_locale_translation_projects_alter().
  *
  * @param object $source
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_translate/locale_test_translate.info b/core/modules/locale/tests/modules/locale_test_translate/locale_test_translate.info
deleted file mode 100644
index 32dcd52..0000000
--- a/core/modules/locale/tests/modules/locale_test_translate/locale_test_translate.info
+++ /dev/null
@@ -1,10 +0,0 @@
-name = Locale test translate
-description = Translation test module for locale module testing.
-package = Testing
-version = 1.3
-core = 8.x
-hidden = TRUE
-
-; Definitions for interface translations.
-interface translation project = locale_test_translate
-interface translation server pattern = core/modules/locale/tests/test.%language.po
diff --git a/core/modules/locale/tests/modules/locale_test_translate/locale_test_translate.info.yml b/core/modules/locale/tests/modules/locale_test_translate/locale_test_translate.info.yml
new file mode 100644
index 0000000..a212a14
--- /dev/null
+++ b/core/modules/locale/tests/modules/locale_test_translate/locale_test_translate.info.yml
@@ -0,0 +1,8 @@
+name: 'Locale test translate'
+description: 'Translation test module for locale module testing.'
+package: Testing
+version: '1.3'
+core: 8.x
+hidden: true
+'interface translation project': locale_test_translate
+'interface translation server pattern': core/modules/locale/tests/test.%language.po
diff --git a/core/modules/locale/tests/modules/locale_test_translate/locale_test_translate.module b/core/modules/locale/tests/modules/locale_test_translate/locale_test_translate.module
index 98eb358..498099f 100644
--- a/core/modules/locale/tests/modules/locale_test_translate/locale_test_translate.module
+++ b/core/modules/locale/tests/modules/locale_test_translate/locale_test_translate.module
@@ -9,7 +9,7 @@
  * Implements hook_system_info_alter().
  *
  * By default this modules is hidden but once enabled it behaves like a normal
- * (not hidden) module. This hook implementation changes the .info data by
+ * (not hidden) module. This hook implementation changes the .info.yml data by
  * setting the hidden status to FALSE.
  */
 function locale_test_translate_system_info_alter(&$info, $file, $type) {
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/node/tests/modules/node_test_views/node_test_views.info b/core/modules/node/tests/modules/node_test_views/node_test_views.info
deleted file mode 100644
index 039175c..0000000
--- a/core/modules/node/tests/modules/node_test_views/node_test_views.info
+++ /dev/null
@@ -1,8 +0,0 @@
-name = Node test views
-description = Provides default views for views node tests.
-package = Testing
-version = VERSION
-core = 8.x
-dependencies[] = node
-dependencies[] = views
-hidden = TRUE
diff --git a/core/modules/node/tests/modules/node_test_views/node_test_views.info.yml b/core/modules/node/tests/modules/node_test_views/node_test_views.info.yml
new file mode 100644
index 0000000..d82e4af
--- /dev/null
+++ b/core/modules/node/tests/modules/node_test_views/node_test_views.info.yml
@@ -0,0 +1,9 @@
+name: 'Node test views'
+description: 'Provides default views for views node tests.'
+package: Testing
+version: VERSION
+core: 8.x
+dependencies:
+  - node
+  - views
+hidden: true
diff --git a/core/modules/number/number.info b/core/modules/number/number.info
deleted file mode 100644
index aabe3d7..0000000
--- a/core/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/number/number.info.yml b/core/modules/number/number.info.yml
new file mode 100644
index 0000000..f216118
--- /dev/null
+++ b/core/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/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..00e82dd
--- /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/options/options.info b/core/modules/options/options.info
deleted file mode 100644
index f19e952..0000000
--- a/core/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/options/options.info.yml b/core/modules/options/options.info.yml
new file mode 100644
index 0000000..ca4d1ef
--- /dev/null
+++ b/core/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/options/tests/options_test.info b/core/modules/options/tests/options_test.info
deleted file mode 100644
index 34acbf10..0000000
--- a/core/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/options/tests/options_test.info.yml b/core/modules/options/tests/options_test.info.yml
new file mode 100644
index 0000000..cc88206
--- /dev/null
+++ b/core/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/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/picture/picture.info b/core/modules/picture/picture.info
deleted file mode 100644
index 47649d5..0000000
--- a/core/modules/picture/picture.info
+++ /dev/null
@@ -1,8 +0,0 @@
-name = Picture
-description = Provides an image formatter and breakpoint mappings to output responsive images using the HTML5 picture tag.
-package = Core
-version = VERSION
-core = 8.x
-dependencies[] = breakpoint
-dependencies[] = image
-configure = admin/config/media/picturemapping
diff --git a/core/modules/picture/picture.info.yml b/core/modules/picture/picture.info.yml
new file mode 100644
index 0000000..17d706c
--- /dev/null
+++ b/core/modules/picture/picture.info.yml
@@ -0,0 +1,9 @@
+name: Picture
+description: 'Provides an image formatter and breakpoint mappings to output responsive images using the HTML5 picture tag.'
+package: Core
+version: VERSION
+core: 8.x
+dependencies:
+  - breakpoint
+  - image
+configure: admin/config/media/picturemapping
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..762d8cd
--- /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/rdf/tests/rdf_test_mapping/rdf_test_mapping.info b/core/modules/rdf/tests/rdf_test_mapping/rdf_test_mapping.info
deleted file mode 100644
index d04be41..0000000
--- a/core/modules/rdf/tests/rdf_test_mapping/rdf_test_mapping.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = "RDF module mapping test"
-description = "Test mapping subscriber for RDF mapping tests."
-package = Testing
-core = 8.x
-hidden = TRUE
-dependencies[] = rdf
diff --git a/core/modules/rdf/tests/rdf_test_mapping/rdf_test_mapping.info.yml b/core/modules/rdf/tests/rdf_test_mapping/rdf_test_mapping.info.yml
new file mode 100644
index 0000000..0c2050f
--- /dev/null
+++ b/core/modules/rdf/tests/rdf_test_mapping/rdf_test_mapping.info.yml
@@ -0,0 +1,7 @@
+name: 'RDF module mapping test'
+description: 'Test mapping subscriber for RDF mapping tests.'
+package: Testing
+core: 8.x
+hidden: true
+dependencies:
+  - rdf
diff --git a/core/modules/rest/rest.info b/core/modules/rest/rest.info
deleted file mode 100644
index c0bf4bd..0000000
--- a/core/modules/rest/rest.info
+++ /dev/null
@@ -1,8 +0,0 @@
-name = RESTful web services
-description = Exposes entities and other resources as RESTful web API
-package = Core
-version = VERSION
-core = 8.x
-; @todo Remove this dependency once hard coding to JSON-LD is gone.
-dependencies[] = jsonld
-configure = admin/config/services/rest
diff --git a/core/modules/rest/rest.info.yml b/core/modules/rest/rest.info.yml
new file mode 100644
index 0000000..58b4a65
--- /dev/null
+++ b/core/modules/rest/rest.info.yml
@@ -0,0 +1,8 @@
+name: 'RESTful web services'
+description: 'Exposes entities and other resources as RESTful web API'
+package: Core
+version: VERSION
+core: 8.x
+dependencies:
+  - jsonld
+configure: admin/config/services/rest
diff --git a/core/modules/rest/tests/modules/rest_test_views/rest_test_views.info b/core/modules/rest/tests/modules/rest_test_views/rest_test_views.info
deleted file mode 100644
index b529491..0000000
--- a/core/modules/rest/tests/modules/rest_test_views/rest_test_views.info
+++ /dev/null
@@ -1,8 +0,0 @@
-name = REST test views
-description = Provides default views for views REST tests.
-package = Testing
-version = VERSION
-core = 8.x
-dependencies[] = rest
-dependencies[] = views
-hidden = TRUE
diff --git a/core/modules/rest/tests/modules/rest_test_views/rest_test_views.info.yml b/core/modules/rest/tests/modules/rest_test_views/rest_test_views.info.yml
new file mode 100644
index 0000000..9c10d34
--- /dev/null
+++ b/core/modules/rest/tests/modules/rest_test_views/rest_test_views.info.yml
@@ -0,0 +1,9 @@
+name: 'REST test views'
+description: 'Provides default views for views REST tests.'
+package: Testing
+version: VERSION
+core: 8.x
+dependencies:
+  - rest
+  - views
+hidden: true
diff --git a/core/modules/search/search.info b/core/modules/search/search.info
deleted file mode 100644
index 768b861..0000000
--- a/core/modules/search/search.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = Search
-description = Enables site-wide keyword searching.
-package = Core
-version = VERSION
-core = 8.x
-configure = admin/config/search/settings
diff --git a/core/modules/search/search.info.yml b/core/modules/search/search.info.yml
new file mode 100644
index 0000000..0b3f1ae
--- /dev/null
+++ b/core/modules/search/search.info.yml
@@ -0,0 +1,6 @@
+name: Search
+description: 'Enables site-wide keyword searching.'
+package: Core
+version: VERSION
+core: 8.x
+configure: admin/config/search/settings
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 6c1b76d..0000000
--- a/core/modules/statistics/statistics.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = Statistics
-description = Logs content 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..9c2f46c
--- /dev/null
+++ b/core/modules/statistics/statistics.info.yml
@@ -0,0 +1,6 @@
+name: Statistics
+description: 'Logs content 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/Bootstrap/GetFilenameUnitTest.php b/core/modules/system/lib/Drupal/system/Tests/Bootstrap/GetFilenameUnitTest.php
index 27ea1d7..2256c4e 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Bootstrap/GetFilenameUnitTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Bootstrap/GetFilenameUnitTest.php
@@ -33,7 +33,7 @@ function testDrupalGetFilename() {
     $this->assertIdentical(drupal_get_filename('module', 'php'), 'core/modules/php/php.module', 'Retrieve module location.');
 
     // Retrieving the location of a theme.
-    $this->assertIdentical(drupal_get_filename('theme', 'stark'), 'core/themes/stark/stark.info', 'Retrieve theme location.');
+    $this->assertIdentical(drupal_get_filename('theme', 'stark'), 'core/themes/stark/stark.info.yml', 'Retrieve theme location.');
 
     // Retrieving the location of a theme engine.
     $this->assertIdentical(drupal_get_filename('theme_engine', 'phptemplate'), 'core/themes/engines/phptemplate/phptemplate.engine', 'Retrieve theme engine location.');
diff --git a/core/modules/system/lib/Drupal/system/Tests/Common/ParseInfoFileUnitTest.php b/core/modules/system/lib/Drupal/system/Tests/Common/ParseInfoFileUnitTest.php
index e4cb0f3..ed7f056 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Common/ParseInfoFileUnitTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Common/ParseInfoFileUnitTest.php
@@ -15,19 +15,19 @@
 class ParseInfoFileUnitTest extends UnitTestBase {
   public static function getInfo() {
     return array(
-      'name' => 'Parsing .info files',
+      'name' => 'Parsing .info.yml files',
       'description' => 'Tests the drupal_parse_info_file() API function.',
       'group' => 'Common',
     );
   }
 
   /**
-   * Parses an example .info file and verifies the results.
+   * Parses an example .info.yml file and verifies the results.
    */
   function testParseInfoFile() {
     $info_values = drupal_parse_info_file(drupal_get_path('module', 'system') . '/tests/common_test_info.txt');
     $this->assertEqual($info_values['simple_string'], 'A simple string', 'Simple string value was parsed correctly.', 'System');
-    $this->assertEqual($info_values['simple_constant'], WATCHDOG_INFO, 'Constant value was parsed correctly.', 'System');
+    $this->assertEqual($info_values['simple_constant'], VERSION, 'Constant value was parsed correctly.', 'System');
     $this->assertEqual($info_values['double_colon'], 'dummyClassName::', 'Value containing double-colon was parsed correctly.', 'System');
   }
 }
diff --git a/core/modules/system/lib/Drupal/system/Tests/FileTransfer/FileTransferTest.php b/core/modules/system/lib/Drupal/system/Tests/FileTransfer/FileTransferTest.php
index e106e04..080e8fd 100644
--- a/core/modules/system/lib/Drupal/system/Tests/FileTransfer/FileTransferTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/FileTransfer/FileTransferTest.php
@@ -35,7 +35,7 @@ function setUp() {
   function _getFakeModuleFiles() {
     $files = array(
       'fake.module',
-      'fake.info',
+      'fake.info.yml',
       'theme' => array(
         'fake.tpl.php'
       ),
diff --git a/core/modules/system/lib/Drupal/system/Tests/Module/ModuleApiTest.php b/core/modules/system/lib/Drupal/system/Tests/Module/ModuleApiTest.php
index 75ce7cd..264e3cf 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Module/ModuleApiTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Module/ModuleApiTest.php
@@ -255,11 +255,11 @@ function testModuleMetaData() {
     // Generate the list of available modules.
     $modules = system_rebuild_module_data();
     // Check that the mtime field exists for the system module.
-    $this->assertTrue(!empty($modules['system']->info['mtime']), 'The system.info file modification time field is present.');
+    $this->assertTrue(!empty($modules['system']->info['mtime']), 'The system.info.yml file modification time field is present.');
     // Use 0 if mtime isn't present, to avoid an array index notice.
     $test_mtime = !empty($modules['system']->info['mtime']) ? $modules['system']->info['mtime'] : 0;
     // Ensure the mtime field contains a number that is greater than zero.
-    $this->assertTrue(is_numeric($test_mtime) && ($test_mtime > 0), 'The system.info file modification time field contains a timestamp.');
+    $this->assertTrue(is_numeric($test_mtime) && ($test_mtime > 0), 'The system.info.yml file modification time field contains a timestamp.');
   }
 
   /**
@@ -269,10 +269,10 @@ function testThemeMetaData() {
     // Generate the list of available themes.
     $themes = system_rebuild_theme_data();
     // Check that the mtime field exists for the bartik theme.
-    $this->assertTrue(!empty($themes['bartik']->info['mtime']), 'The bartik.info file modification time field is present.');
+    $this->assertTrue(!empty($themes['bartik']->info['mtime']), 'The bartik.info.yml file modification time field is present.');
     // Use 0 if mtime isn't present, to avoid an array index notice.
     $test_mtime = !empty($themes['bartik']->info['mtime']) ? $themes['bartik']->info['mtime'] : 0;
     // Ensure the mtime field contains a number that is greater than zero.
-    $this->assertTrue(is_numeric($test_mtime) && ($test_mtime > 0), 'The bartik.info file modification time field contains a timestamp.');
+    $this->assertTrue(is_numeric($test_mtime) && ($test_mtime > 0), 'The bartik.info.yml file modification time field contains a timestamp.');
   }
 }
diff --git a/core/modules/system/lib/Drupal/system/Tests/System/InfoAlterTest.php b/core/modules/system/lib/Drupal/system/Tests/System/InfoAlterTest.php
index 670f869..aa2e1ae 100644
--- a/core/modules/system/lib/Drupal/system/Tests/System/InfoAlterTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/System/InfoAlterTest.php
@@ -22,7 +22,7 @@ public static function getInfo() {
   }
 
   /**
-   * Tests that theme .info data is rebuild after enabling a module.
+   * Tests that theme .info.yml data is rebuild after enabling a module.
    *
    * Tests that info data is rebuilt after a module that implements
    * hook_system_info_alter() is enabled. Also tests if core *_list() functions
@@ -45,7 +45,7 @@ function testSystemInfoAlter() {
     $list_themes = list_themes();
     $this->assertTrue(isset($list_themes['seven']->info['regions']['test_region']), 'Altered theme info was returned by list_themes().');
 
-    // Disable the module and verify that rebuilt .info does not contain it.
+    // Disable the module and verify that rebuilt .info.yml does not contain it.
     module_disable(array('module_test'), FALSE);
     $this->assertFalse(module_exists('module_test'), 'Test module is disabled.');
 
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 4f7a1c9..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'], 'Set a simple value.');
-    $this->assertEqual($parsed['quoted'], $expected['quoted'], 'Set a simple value in quotes.');
-    $this->assertEqual($parsed['multiline'], $expected['multiline'], 'Set a multiline value.');
-    $this->assertEqual($parsed['array'], $expected['array'], 'Set a simple array.');
-    $this->assertEqual($parsed['array_assoc'], $expected['array_assoc'], 'Set an associative array.');
-    $this->assertEqual($parsed['array_deep'], $expected['array_deep'], 'Set a nested array.');
-    $this->assertEqual($parsed['array_deep_assoc'], $expected['array_deep_assoc'], 'Set a nested associative array.');
-    $this->assertEqual($parsed['array_space'], $expected['array_space'], 'Set an array with a whitespace in the key.');
-    $this->assertEqual($parsed, $expected, 'Entire parsed .info string and expected array are identical.');
-  }
-}
diff --git a/core/modules/system/lib/Drupal/system/Tests/Theme/ThemeInfoStylesTest.php b/core/modules/system/lib/Drupal/system/Tests/Theme/ThemeInfoStylesTest.php
index c2b6c43..b954415 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Theme/ThemeInfoStylesTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Theme/ThemeInfoStylesTest.php
@@ -10,7 +10,7 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests processing of theme .info stylesheets.
+ * Tests processing of theme .info.yml stylesheets.
  */
 class ThemeInfoStylesTest extends WebTestBase {
 
@@ -23,8 +23,8 @@ class ThemeInfoStylesTest extends WebTestBase {
 
   public static function getInfo() {
     return array(
-      'name' => 'Theme .info styles',
-      'description' => 'Tests processing of theme .info stylesheets.',
+      'name' => 'Theme .info.yml styles',
+      'description' => 'Tests processing of theme .info.yml stylesheets.',
       'group' => 'Theme',
     );
   }
diff --git a/core/modules/system/lib/Drupal/system/Tests/Theme/ThemeTest.php b/core/modules/system/lib/Drupal/system/Tests/Theme/ThemeTest.php
index 6e9b383..6588995 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Theme/ThemeTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Theme/ThemeTest.php
@@ -102,20 +102,20 @@ function testAlter() {
   }
 
   /**
-   * Ensures a theme's .info file is able to override a module CSS file from being added to the page.
+   * Ensures a theme's .info.yml file is able to override a module CSS file from being added to the page.
    *
-   * @see test_theme.info
+   * @see test_theme.info.yml
    */
   function testCSSOverride() {
     // Reuse the same page as in testPreprocessForSuggestions(). We're testing
-    // what is output to the HTML HEAD based on what is in a theme's .info file,
-    // so it doesn't matter what page we get, as long as it is themed with the
-    // test theme. First we test with CSS aggregation disabled.
+    // what is output to the HTML HEAD based on what is in a theme's .info.yml
+    // file, so it doesn't matter what page we get, as long as it is themed with
+    // the test theme. First we test with CSS aggregation disabled.
     $config = config('system.performance');
     $config->set('css.preprocess', 0);
     $config->save();
     $this->drupalGet('theme-test/suggestion');
-    $this->assertNoText('system.base.css', 'The theme\'s .info file is able to override a module CSS file from being added to the page.');
+    $this->assertNoText('system.base.css', 'The theme\'s .info.yml file is able to override a module CSS file from being added to the page.');
 
     // Also test with aggregation enabled, simply ensuring no PHP errors are
     // triggered during drupal_build_css_cache() when a source file doesn't
diff --git a/core/modules/system/system.admin.inc b/core/modules/system/system.admin.inc
index 37a2bf2..5846d23 100644
--- a/core/modules/system/system.admin.inc
+++ b/core/modules/system/system.admin.inc
@@ -571,7 +571,7 @@ function system_theme_settings($form, &$form_state, $key = '') {
     // Process the theme and all its base themes.
     foreach ($theme_keys as $theme) {
       // Include the theme-settings.php file.
-      $filename = DRUPAL_ROOT . '/' . str_replace("/$theme.info", '', $themes[$theme]->filename) . '/theme-settings.php';
+      $filename = DRUPAL_ROOT . '/' . str_replace("/$theme.info.yml", '', $themes[$theme]->filename) . '/theme-settings.php';
       if (file_exists($filename)) {
         require_once $filename;
       }
@@ -769,9 +769,10 @@ function _system_is_incompatible(&$incompatible, $files, $file) {
 /**
  * Menu callback; provides module enable/disable interface.
  *
- * The list of modules gets populated by module.info files, which contain each
- * module's name, description, and information about which modules it requires.
- * See drupal_parse_info_file() for information on module.info descriptors.
+ * The list of modules gets populated by module.info.yml files, which contain
+ * each module's name, description, and information about which modules it
+ * requires.
+ * See drupal_parse_info_file() for information on module.info.yml descriptors.
  *
  * Dependency checking is performed to ensure that a module:
  * - can not be enabled if there are disabled modules it requires.
@@ -1316,7 +1317,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 79d6950..e04d448 100644
--- a/core/modules/system/system.api.php
+++ b/core/modules/system/system.api.php
@@ -1496,8 +1496,8 @@ function hook_init() {
  * Define image toolkits provided by this module.
  *
  * The file which includes each toolkit's functions must be declared as part of
- * the files array in the module .info file so that the registry will find and
- * parse it.
+ * the files array in the module .info.yml file so that the registry will find
+ * and parse it.
  *
  * The toolkit's functions must be named image_toolkitname_operation().
  * where the operation may be:
@@ -1634,32 +1634,32 @@ function hook_module_implements_alter(&$implementations, $hook) {
  *
  * @return
  *   An associative array. Each key is the system name of a theme and each value
- *   is the corresponding path to the theme's .info file.
+ *   is the corresponding path to the theme's .info.yml file.
  */
 function hook_system_theme_info() {
-  $themes['mymodule_test_theme'] = drupal_get_path('module', 'mymodule') . '/mymodule_test_theme/mymodule_test_theme.info';
+  $themes['mymodule_test_theme'] = drupal_get_path('module', 'mymodule') . '/mymodule_test_theme/mymodule_test_theme.info.yml';
   return $themes;
 }
 
 /**
- * Alter the information parsed from module and theme .info files
+ * Alter the information parsed from module and theme .info.yml files
  *
  * 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
- *   The .info file contents, passed by reference so that it can be altered.
+ *   The .info.yml file contents, passed by reference so that it can be altered.
  * @param $file
  *   Full information about the module or theme, including $file->name, and
  *   $file->filename
  * @param $type
- *   Either 'module' or 'theme', depending on the type of .info file that was
+ *   Either 'module' or 'theme', depending on the type of .info.yml file that was
  *   passed.
  */
 function hook_system_info_alter(&$info, $file, $type) {
-  // Only fill this in if the .info file does not define a 'datestamp'.
+  // Only fill this in if the .info.yml file does not define a 'datestamp'.
   if (empty($info['datestamp'])) {
     $info['datestamp'] = filemtime($file->filename);
   }
@@ -2468,7 +2468,7 @@ function hook_file_url_alter(&$uri) {
  * or at least the module will not install.
  * Other severity levels have no effect on the installation.
  * Module dependencies do not belong to these installation requirements,
- * but should be defined in the module's .info file.
+ * but should be defined in the module's .info.yml file.
  *
  * The 'runtime' phase is not limited to pure installation requirements
  * but can also be used for more general status information like maintenance
@@ -3066,7 +3066,7 @@ function hook_disable() {
  * inspect later. It is important to remove any temporary variables using
  * variable_del() before your last task has completed and control is handed
  * back to the installer.
- * 
+ *
  * @param array $install_state
  *   An array of information about the current installation state.
  *
@@ -3261,7 +3261,7 @@ function hook_install_tasks_alter(&$tasks, $install_state) {
 function hook_file_mimetype_mapping_alter(&$mapping) {
   // Add new MIME type 'drupal/info'.
   $mapping['mimetypes']['example_info'] = 'drupal/info';
-  // Add new extension '.info' and map it to the 'drupal/info' MIME type.
+  // Add new extension '.info.yml' and map it to the 'drupal/info' MIME type.
   $mapping['extensions']['info'] = 'example_info';
   // Override existing extension mapping for '.ogg' files.
   $mapping['extensions']['ogg'] = 189;
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 c621915..130afad 100644
--- a/core/modules/system/system.module
+++ b/core/modules/system/system.module
@@ -2752,8 +2752,8 @@ function system_check_directory($form_element) {
 /**
  * Returns an array of information about enabled modules or themes.
  *
- * This function returns the contents of the .info file for each enabled module
- * or theme.
+ * This function returns the contents of the .info.yml file for each enabled
+ * module or theme.
  *
  * @param $type
  *   Either 'module' or 'theme'.
@@ -2794,14 +2794,14 @@ function system_get_info($type, $name = NULL) {
 }
 
 /**
- * Return .info data for modules.
+ * Return .info.yml data for modules.
  *
  * @param string $property
- *   The .info property to retrieve.
+ *   The .info.yml property to retrieve.
  *
  * @return array
- *   An array keyed by module name, with the .info file property as values.
- *   Only modules with the property specified in their .info file will be
+ *   An array keyed by module name, with the .info.yml file property as values.
+ *   Only modules with the property specified in their .info.yml file will be
  *   returned.
  *
  * @see Drupal\Core\Utility\ModuleInfo
@@ -2815,7 +2815,7 @@ function system_get_module_info($property) {
 }
 
 /**
- * Helper function to scan and collect module .info data.
+ * Helper function to scan and collect module .info.yml data.
  *
  * @return
  *   An associative array of module information.
@@ -2852,11 +2852,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)) {
@@ -2868,13 +2868,13 @@ function _system_rebuild_module_data() {
     $modules[$key]->info = $module->info + $defaults;
 
     // Installation profiles are hidden by default, unless explicitly specified
-    // otherwise in the .info file.
+    // otherwise in the .info.yml file.
     if ($key == $profile && !isset($modules[$key]->info['hidden'])) {
       $modules[$key]->info['hidden'] = TRUE;
     }
 
     // Invoke hook_system_info_alter() to give installed modules a chance to
-    // modify the data in the .info files if necessary.
+    // modify the data in the .info.yml files if necessary.
     $type = 'module';
     drupal_alter('system_info', $modules[$key]->info, $modules[$key], $type);
   }
@@ -2946,14 +2946,14 @@ function _system_update_bootstrap_status() {
 }
 
 /**
- * Helper function to scan and collect theme .info data and their engines.
+ * Helper function to scan and collect theme .info.yml data and their engines.
  *
  * @return
  *   An associative array of themes information.
  */
 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) {
@@ -3002,7 +3002,7 @@ function _system_rebuild_theme_data() {
     $themes[$key]->info['mtime'] = filemtime($theme->uri);
 
     // Invoke hook_system_info_alter() to give installed modules a chance to
-    // modify the data in the .info files if necessary.
+    // modify the data in the .info.yml files if necessary.
     $type = 'theme';
     drupal_alter('system_info', $themes[$key]->info, $themes[$key], $type);
 
@@ -3099,15 +3099,15 @@ function system_rebuild_theme_data() {
 }
 
 /**
- * Prefixes all values in an .info file array with a given path.
+ * Prefixes all values in an .info.yml file array with a given path.
  *
- * This helper function is mainly used to prefix all array values of an .info
+ * This helper function is mainly used to prefix all array values of an .info.yml
  * file property with a single given path (to the module or theme); e.g., to
  * prefix all values of the 'stylesheets' or 'scripts' properties with the file
  * path to the defining module/theme.
  *
  * @param $info
- *   A nested array of data of an .info file to be processed.
+ *   A nested array of data of an .info.yml file to be processed.
  * @param $path
  *   A file path to prepend to each value in $info.
  *
diff --git a/core/modules/system/templates/region.tpl.php b/core/modules/system/templates/region.tpl.php
index 3c82ae1..7dc569c 100644
--- a/core/modules/system/templates/region.tpl.php
+++ b/core/modules/system/templates/region.tpl.php
@@ -12,7 +12,7 @@
  *   - region: The current template type, i.e., "theming hook".
  *   - region-[name]: The name of the region with underscores replaced with
  *     dashes. For example, the page_top region would have a region-page-top class.
- * - $region: The name of the region variable as defined in the theme's .info file.
+ * - $region: The name of the region variable as defined in the theme's .info.yml file.
  *
  * Helper variables:
  * - $is_admin: Flags true when the current user is an administrator.
diff --git a/core/modules/system/tests/common_test_info.txt b/core/modules/system/tests/common_test_info.txt
index ae217b9..07c633d 100644
--- a/core/modules/system/tests/common_test_info.txt
+++ b/core/modules/system/tests/common_test_info.txt
@@ -1,9 +1,3 @@
-; Test parsing with a simple string.
-simple_string = A simple string
-
-; Test that constants can be used as values.
-simple_constant = WATCHDOG_INFO
-
-; After parsing the .info file, 'double_colon' should hold the literal value.
-; Parsing should not throw a fatal error or try to access a class constant.
-double_colon = dummyClassName::
+simple_string: A simple string
+simple_constant: VERSION
+double_colon: dummyClassName::
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/ajax_test/ajax_test.module b/core/modules/system/tests/modules/ajax_test/ajax_test.module
index efb1966..951446a 100644
--- a/core/modules/system/tests/modules/ajax_test/ajax_test.module
+++ b/core/modules/system/tests/modules/ajax_test/ajax_test.module
@@ -43,7 +43,7 @@ function ajax_test_menu() {
  * Implements hook_system_theme_info().
  */
 function ajax_test_system_theme_info() {
-  $themes['test_theme'] = drupal_get_path('module', 'system') . '/tests/themes/test_theme/test_theme.info';
+  $themes['test_theme'] = drupal_get_path('module', 'system') . '/tests/themes/test_theme/test_theme.info.yml';
   return $themes;
 }
 
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 7a128ab..0000000
--- a/core/modules/system/tests/modules/common_test/common_test.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = "Common Test"
-description = "Support module for Common tests."
-package = Testing
-version = VERSION
-core = 8.x
-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..d59c74e
--- /dev/null
+++ b/core/modules/system/tests/modules/common_test/common_test.info.yml
@@ -0,0 +1,6 @@
+name: 'Common Test'
+description: 'Support module for Common tests.'
+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 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/design_test/design_test.info b/core/modules/system/tests/modules/design_test/design_test.info
deleted file mode 100644
index 5122427..0000000
--- a/core/modules/system/tests/modules/design_test/design_test.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = Design test
-description = Support module for design, markup, JavaScript, and CSS testing.
-package = Testing
-version = VERSION
-core = 8.x
-hidden = TRUE
diff --git a/core/modules/system/tests/modules/design_test/design_test.info.yml b/core/modules/system/tests/modules/design_test/design_test.info.yml
new file mode 100644
index 0000000..13dd37b
--- /dev/null
+++ b/core/modules/system/tests/modules/design_test/design_test.info.yml
@@ -0,0 +1,6 @@
+name: 'Design test'
+description: 'Support module for design, markup, JavaScript, and CSS testing.'
+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 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..f87e60f
--- /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_test/entity_test.info b/core/modules/system/tests/modules/entity_test/entity_test.info
deleted file mode 100644
index 1cedd82..0000000
--- a/core/modules/system/tests/modules/entity_test/entity_test.info
+++ /dev/null
@@ -1,8 +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
-dependencies[] = text
-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..05526ff
--- /dev/null
+++ b/core/modules/system/tests/modules/entity_test/entity_test.info.yml
@@ -0,0 +1,9 @@
+name: 'Entity CRUD test module'
+description: 'Provides entity types based upon the CRUD API.'
+package: Testing
+version: VERSION
+core: 8.x
+dependencies:
+  - field
+  - text
+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/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 e31a3eb..0000000
--- a/core/modules/system/tests/modules/menu_test/menu_test.info
+++ /dev/null
@@ -1,7 +0,0 @@
-name = "Hook menu tests"
-description = "Support module for menu hook testing."
-package = Testing
-version = VERSION
-core = 8.x
-hidden = TRUE
-dependencies[] = test_page_test
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..5f1e1bd
--- /dev/null
+++ b/core/modules/system/tests/modules/menu_test/menu_test.info.yml
@@ -0,0 +1,8 @@
+name: 'Hook menu tests'
+description: 'Support module for menu hook testing.'
+package: Testing
+version: VERSION
+core: 8.x
+hidden: true
+dependencies:
+  - test_page_test
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..a15f8cc
--- /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/serialization_test/serialization_test.info b/core/modules/system/tests/modules/serialization_test/serialization_test.info
deleted file mode 100644
index 7c6fa97..0000000
--- a/core/modules/system/tests/modules/serialization_test/serialization_test.info
+++ /dev/null
@@ -1,5 +0,0 @@
-name = Serialization test module
-description = "Support module for serialization tests."
-package = Testing
-core = 8.x
-hidden = TRUE
diff --git a/core/modules/system/tests/modules/serialization_test/serialization_test.info.yml b/core/modules/system/tests/modules/serialization_test/serialization_test.info.yml
new file mode 100644
index 0000000..24b5191
--- /dev/null
+++ b/core/modules/system/tests/modules/serialization_test/serialization_test.info.yml
@@ -0,0 +1,5 @@
+name: 'Serialization test module'
+description: 'Support module for serialization tests.'
+package: Testing
+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..4014ad4
--- /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..2a034df
--- /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..152082e
--- /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..098470d
--- /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_page_test/theme_page_test.module b/core/modules/system/tests/modules/theme_page_test/theme_page_test.module
index 63f8cb4..6fdd7bd 100644
--- a/core/modules/system/tests/modules/theme_page_test/theme_page_test.module
+++ b/core/modules/system/tests/modules/theme_page_test/theme_page_test.module
@@ -15,7 +15,7 @@ function theme_page_test_system_info_alter(&$info, $file, $type) {
  * Implements hook_system_theme_info().
  */
 function theme_page_test_system_theme_info() {
-  $themes['test_invalid_basetheme'] = drupal_get_path('module', 'system') . '/tests/themes/test_invalid_basetheme/test_invalid_basetheme.info';
-  $themes['test_invalid_engine'] = drupal_get_path('module', 'system') . '/tests/themes/test_invalid_engine/test_invalid_engine.info';
+  $themes['test_invalid_basetheme'] = drupal_get_path('module', 'system') . '/tests/themes/test_invalid_basetheme/test_invalid_basetheme.info.yml';
+  $themes['test_invalid_engine'] = drupal_get_path('module', 'system') . '/tests/themes/test_invalid_engine/test_invalid_engine.info.yml';
   return $themes;
 }
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/theme_test/theme_test.module b/core/modules/system/tests/modules/theme_test/theme_test.module
index 73ff44b..137fdfc 100644
--- a/core/modules/system/tests/modules/theme_test/theme_test.module
+++ b/core/modules/system/tests/modules/theme_test/theme_test.module
@@ -24,10 +24,10 @@ function theme_test_theme($existing, $type, $theme, $path) {
  * Implements hook_system_theme_info().
  */
 function theme_test_system_theme_info() {
-  $themes['test_theme'] = drupal_get_path('module', 'system') . '/tests/themes/test_theme/test_theme.info';
-  $themes['test_basetheme'] = drupal_get_path('module', 'system') . '/tests/themes/test_basetheme/test_basetheme.info';
-  $themes['test_subtheme'] = drupal_get_path('module', 'system') . '/tests/themes/test_subtheme/test_subtheme.info';
-  $themes['test_theme_twig'] = drupal_get_path('module', 'system') . '/tests/themes/test_theme_twig/test_theme_twig.info';
+  $themes['test_theme'] = drupal_get_path('module', 'system') . '/tests/themes/test_theme/test_theme.info.yml';
+  $themes['test_basetheme'] = drupal_get_path('module', 'system') . '/tests/themes/test_basetheme/test_basetheme.info.yml';
+  $themes['test_subtheme'] = drupal_get_path('module', 'system') . '/tests/themes/test_subtheme/test_subtheme.info.yml';
+  $themes['test_theme_twig'] = drupal_get_path('module', 'system') . '/tests/themes/test_theme_twig/test_theme_twig.info.yml';
   return $themes;
 }
 
@@ -112,10 +112,10 @@ function theme_test_template_test_page_callback() {
 }
 
 /**
- * Page callback; Adds stylesheets to test theme .info property processing.
+ * Page callback; Adds stylesheets to test theme .info.yml property processing.
  *
- * @see test_basetheme.info
- * @see test_subtheme.info
+ * @see test_basetheme.info.yml
+ * @see test_subtheme.info.yml
  * @see \Drupal\system\Tests\Theme\ThemeInfoStylesTest
  * @see http://drupal.org/node/967266#comment-3689670
  */
diff --git a/core/modules/system/tests/modules/transliterate_test/transliterate_test.info b/core/modules/system/tests/modules/transliterate_test/transliterate_test.info
deleted file mode 100644
index c6193f6..0000000
--- a/core/modules/system/tests/modules/transliterate_test/transliterate_test.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = "Transliteration test"
-description = "Helper module for Transliteration system tests."
-package = Testing
-version = VERSION
-core = 8.x
-hidden = TRUE
diff --git a/core/modules/system/tests/modules/transliterate_test/transliterate_test.info.yml b/core/modules/system/tests/modules/transliterate_test/transliterate_test.info.yml
new file mode 100644
index 0000000..ae68cee
--- /dev/null
+++ b/core/modules/system/tests/modules/transliterate_test/transliterate_test.info.yml
@@ -0,0 +1,6 @@
+name: 'Transliteration test'
+description: 'Helper module for Transliteration system tests.'
+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 7c8b67a..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 module to test altering the inbound and outbound path.
-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..7b14ae6
--- /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 module to test altering the inbound and outbound path.'
+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 24b1db6..0000000
--- a/core/modules/system/tests/themes/test_basetheme/test_basetheme.info
+++ /dev/null
@@ -1,18 +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
-
-; Unlike test_subtheme, the base theme does not use a ./css subdirectory.
-stylesheets[all][] = base-add.css
-stylesheets[all][] = base-add.sub-override.css
-stylesheets[all][] = base-add.sub-remove.css
-
-stylesheets-override[] = base-override.css
-stylesheets-override[] = base-override.sub-remove.css
-
-stylesheets-remove[] = base-remove.css
-stylesheets-remove[] = base-remove.sub-override.css
-
-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..be57c03
--- /dev/null
+++ b/core/modules/system/tests/themes/test_basetheme/test_basetheme.info.yml
@@ -0,0 +1,18 @@
+name: 'Theme test base theme'
+description: 'Test theme which acts as a base theme for other test subthemes.'
+core: 8.x
+hidden: true
+stylesheets:
+  all:
+    - base-add.css
+    - base-add.sub-override.css
+    - base-add.sub-remove.css
+stylesheets-override:
+  - base-override.css
+  - base-override.sub-remove.css
+stylesheets-remove:
+  - base-remove.css
+  - base-remove.sub-override.css
+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 a4590ce..0000000
--- a/core/modules/system/tests/themes/test_subtheme/test_subtheme.info
+++ /dev/null
@@ -1,20 +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
-
-; Unlike test_basetheme (and the original module CSS), this subtheme decides to
-; put all of its CSS into a ./css subdirectory. All overrides and removals are
-; expected to be based on a file's basename and should work nevertheless.
-stylesheets[all][] = css/sub-add.css
-
-stylesheets-override[] = css/sub-override.css
-stylesheets-override[] = css/base-add.sub-override.css
-stylesheets-override[] = css/base-remove.sub-override.css
-
-stylesheets-remove[] = sub-remove.css
-stylesheets-remove[] = base-add.sub-remove.css
-stylesheets-remove[] = base-override.sub-remove.css
-
-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..3eb0b1b
--- /dev/null
+++ b/core/modules/system/tests/themes/test_subtheme/test_subtheme.info.yml
@@ -0,0 +1,18 @@
+name: 'Theme test subtheme'
+description: 'Test theme which uses test_basetheme as the base theme.'
+core: 8.x
+'base theme': test_basetheme
+hidden: true
+stylesheets:
+  all:
+    - css/sub-add.css
+stylesheets-override:
+  - css/sub-override.css
+  - css/base-add.sub-override.css
+  - css/base-remove.sub-override.css
+stylesheets-remove:
+  - sub-remove.css
+  - base-add.sub-remove.css
+  - base-override.sub-remove.css
+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 aa2842b..0000000
--- a/core/modules/system/tests/themes/test_theme/test_theme.info
+++ /dev/null
@@ -1,8 +0,0 @@
-name = Test theme
-description = Theme for testing the theme system
-core = 8.x
-hidden = TRUE
-
-stylesheets-remove[] = 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..d762cbc
--- /dev/null
+++ b/core/modules/system/tests/themes/test_theme/test_theme.info.yml
@@ -0,0 +1,18 @@
+# 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.
+name: 'Test theme'
+description: 'Theme for testing the theme system'
+core: 8.x
+hidden: true
+stylesheets-remove:
+  - system.base.css
+settings:
+  theme_test_setting: 'default value'
diff --git a/core/modules/system/tests/themes/test_theme_twig/test_theme_twig.info b/core/modules/system/tests/themes/test_theme_twig/test_theme_twig.info
deleted file mode 100644
index 5097adb..0000000
--- a/core/modules/system/tests/themes/test_theme_twig/test_theme_twig.info
+++ /dev/null
@@ -1,5 +0,0 @@
-name = Test theme for Twig
-description = Theme for testing the theme system with twig engine
-engine = twig
-core = 8.x
-hidden = TRUE
diff --git a/core/modules/system/tests/themes/test_theme_twig/test_theme_twig.info.yml b/core/modules/system/tests/themes/test_theme_twig/test_theme_twig.info.yml
new file mode 100644
index 0000000..9a5eac1
--- /dev/null
+++ b/core/modules/system/tests/themes/test_theme_twig/test_theme_twig.info.yml
@@ -0,0 +1,5 @@
+name: 'Test theme for Twig'
+description: 'Theme for testing the theme system with twig engine'
+engine: twig
+core: 8.x
+hidden: true
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..1056bd6
--- /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/taxonomy/tests/modules/taxonomy_test_views/taxonomy_test_views.info b/core/modules/taxonomy/tests/modules/taxonomy_test_views/taxonomy_test_views.info
deleted file mode 100644
index bed1a77..0000000
--- a/core/modules/taxonomy/tests/modules/taxonomy_test_views/taxonomy_test_views.info
+++ /dev/null
@@ -1,8 +0,0 @@
-name = Taxonomy test views
-description = Provides default views for views taxonomy tests.
-package = Testing
-version = VERSION
-core = 8.x
-dependencies[] = taxonomy
-dependencies[] = views
-hidden = TRUE
diff --git a/core/modules/taxonomy/tests/modules/taxonomy_test_views/taxonomy_test_views.info.yml b/core/modules/taxonomy/tests/modules/taxonomy_test_views/taxonomy_test_views.info.yml
new file mode 100644
index 0000000..6243c9e
--- /dev/null
+++ b/core/modules/taxonomy/tests/modules/taxonomy_test_views/taxonomy_test_views.info.yml
@@ -0,0 +1,9 @@
+name: 'Taxonomy test views'
+description: 'Provides default views for views taxonomy tests.'
+package: Testing
+version: VERSION
+core: 8.x
+dependencies:
+  - taxonomy
+  - views
+hidden: true
diff --git a/core/modules/telephone/telephone.info b/core/modules/telephone/telephone.info
deleted file mode 100644
index 9ac6dac..0000000
--- a/core/modules/telephone/telephone.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = Telephone
-description = Defines a field type for telephone numbers.
-package = Core
-version = VERSION
-core = 8.x
-dependencies[] = field
diff --git a/core/modules/telephone/telephone.info.yml b/core/modules/telephone/telephone.info.yml
new file mode 100644
index 0000000..1e1c6b3
--- /dev/null
+++ b/core/modules/telephone/telephone.info.yml
@@ -0,0 +1,7 @@
+name: Telephone
+description: 'Defines a field type for telephone numbers.'
+package: Core
+version: VERSION
+core: 8.x
+dependencies:
+  - field
diff --git a/core/modules/text/text.info b/core/modules/text/text.info
deleted file mode 100644
index 3ba8357..0000000
--- a/core/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/text/text.info.yml b/core/modules/text/text.info.yml
new file mode 100644
index 0000000..db0de1c
--- /dev/null
+++ b/core/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/toolbar/tests/modules/toolbar_test/toolbar_test.info b/core/modules/toolbar/tests/modules/toolbar_test/toolbar_test.info
deleted file mode 100644
index b8e0c59..0000000
--- a/core/modules/toolbar/tests/modules/toolbar_test/toolbar_test.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = "Toolbar module API tests"
-description = "Support module for toolbar testing."
-package = Testing
-version = VERSION
-core = 8.x
-hidden = TRUE
diff --git a/core/modules/toolbar/tests/modules/toolbar_test/toolbar_test.info.yml b/core/modules/toolbar/tests/modules/toolbar_test/toolbar_test.info.yml
new file mode 100644
index 0000000..42be38d
--- /dev/null
+++ b/core/modules/toolbar/tests/modules/toolbar_test/toolbar_test.info.yml
@@ -0,0 +1,6 @@
+name: 'Toolbar module API tests'
+description: 'Support module for toolbar testing.'
+package: Testing
+version: VERSION
+core: 8.x
+hidden: true
diff --git a/core/modules/toolbar/toolbar.info b/core/modules/toolbar/toolbar.info
deleted file mode 100644
index a6fd841..0000000
--- a/core/modules/toolbar/toolbar.info
+++ /dev/null
@@ -1,9 +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
-
-dependencies[] = breakpoint
-
-configure = admin/structure/toolbar
diff --git a/core/modules/toolbar/toolbar.info.yml b/core/modules/toolbar/toolbar.info.yml
new file mode 100644
index 0000000..952821f
--- /dev/null
+++ b/core/modules/toolbar/toolbar.info.yml
@@ -0,0 +1,8 @@
+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
+dependencies:
+  - breakpoint
+configure: admin/structure/toolbar
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..1ee13ca
--- /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 a511ac1..0000000
--- a/core/modules/translation/translation.info
+++ /dev/null
@@ -1,10 +0,0 @@
-name = Content Translation (deprecated)
-description = Allows content to be translated into different languages.
-dependencies[] = node
-dependencies[] = language
-package = Multilingual
-version = VERSION
-core = 8.x
-; The Content Translation module is deprecated in Drupal 8.
-; See node_system_info_alter().
-hidden = TRUE
diff --git a/core/modules/translation/translation.info.yml b/core/modules/translation/translation.info.yml
new file mode 100644
index 0000000..3b87876
--- /dev/null
+++ b/core/modules/translation/translation.info.yml
@@ -0,0 +1,9 @@
+name: 'Content Translation (deprecated)'
+description: 'Allows content to be translated into different languages.'
+dependencies:
+  - node
+  - language
+package: Multilingual
+version: VERSION
+core: 8.x
+hidden: true
diff --git a/core/modules/translation_entity/tests/modules/translation_entity_test_views/translation_entity_test_views.info b/core/modules/translation_entity/tests/modules/translation_entity_test_views/translation_entity_test_views.info
deleted file mode 100644
index 39d267b..0000000
--- a/core/modules/translation_entity/tests/modules/translation_entity_test_views/translation_entity_test_views.info
+++ /dev/null
@@ -1,8 +0,0 @@
-name = Entity translation test views
-description = Provides default views for views entity translation tests.
-package = Testing
-version = VERSION
-core = 8.x
-dependencies[] = translation_entity
-dependencies[] = views
-hidden = TRUE
diff --git a/core/modules/translation_entity/tests/modules/translation_entity_test_views/translation_entity_test_views.info.yml b/core/modules/translation_entity/tests/modules/translation_entity_test_views/translation_entity_test_views.info.yml
new file mode 100644
index 0000000..46d1350
--- /dev/null
+++ b/core/modules/translation_entity/tests/modules/translation_entity_test_views/translation_entity_test_views.info.yml
@@ -0,0 +1,9 @@
+name: 'Entity translation test views'
+description: 'Provides default views for views entity translation tests.'
+package: Testing
+version: VERSION
+core: 8.x
+dependencies:
+  - translation_entity
+  - views
+hidden: true
diff --git a/core/modules/translation_entity/translation_entity.info b/core/modules/translation_entity/translation_entity.info
deleted file mode 100644
index 8a7ef0c..0000000
--- a/core/modules/translation_entity/translation_entity.info
+++ /dev/null
@@ -1,7 +0,0 @@
-name = Content Translation
-description =  Allows users to translate content entities.
-dependencies[] = language
-package = Multilingual
-version = VERSION
-core = 8.x
-configure = admin/config/regional/content-language
diff --git a/core/modules/translation_entity/translation_entity.info.yml b/core/modules/translation_entity/translation_entity.info.yml
new file mode 100644
index 0000000..dc33f33
--- /dev/null
+++ b/core/modules/translation_entity/translation_entity.info.yml
@@ -0,0 +1,8 @@
+name: 'Content Translation'
+description: 'Allows users to translate content entities.'
+dependencies:
+  - language
+package: Multilingual
+version: VERSION
+core: 8.x
+configure: admin/config/regional/content-language
diff --git a/core/modules/update/tests/aaa_update_test.tar.gz b/core/modules/update/tests/aaa_update_test.tar.gz
index 34f96c8..3246a86 100644
--- a/core/modules/update/tests/aaa_update_test.tar.gz
+++ b/core/modules/update/tests/aaa_update_test.tar.gz
@@ -1 +1 @@
-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
+ oQ ӽj0p~=:EB::X_2%{8j3)AXw:v3t[닍/zE7 ȵS4cRX`"k2"}d}H孰;?ۜϹOI'iٸ6=5g0J_}UDⷊs'X:XΥPםqiYY+2Ƅu3/<.$)GWVq4kt|e۠p~Ӱ5.              }0 (  
\ 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/modules/update_test/update_test.module b/core/modules/update/tests/modules/update_test/update_test.module
index 078bcf5..99aa453 100644
--- a/core/modules/update/tests/modules/update_test/update_test.module
+++ b/core/modules/update/tests/modules/update_test/update_test.module
@@ -45,9 +45,9 @@ function update_test_menu() {
  * Checks the 'update_test.settings:system_info' configuration and sees if we
  * need to alter the system info for the given $file based on the setting. The
  * setting is expected to be a nested associative array. If the key '#all' is
- * defined, its subarray will include .info keys and values for all modules and
- * themes on the system. Otherwise, the settings array is keyed by the module or
- * theme short name ($file->name) and the subarrays contain settings just for
+ * defined, its subarray will include .info.yml keys and values for all modules
+ * and themes on the system. Otherwise, the settings array is keyed by the module
+ * or theme short name ($file->name) and the subarrays contain settings just for
  * that module or theme.
  */
 function update_test_system_info_alter(&$info, $file) {
@@ -67,7 +67,7 @@ function update_test_system_info_alter(&$info, $file) {
  * Checks the 'update_test.settings:update_status' configuration and sees if we
  * need to alter the update status for the given project based on the setting.
  * The setting is expected to be a nested associative array. If the key '#all'
- * is defined, its subarray will include .info keys and values for all modules
+ * is defined, its subarray will include .info.yml keys and values for all modules
  * and themes on the system. Otherwise, the settings array is keyed by the
  * module or theme short name and the subarrays contain settings just for that
  * module or theme.
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.api.php b/core/modules/update/update.api.php
index 8dd23e9..b5621dd 100644
--- a/core/modules/update/update.api.php
+++ b/core/modules/update/update.api.php
@@ -43,19 +43,19 @@ function hook_update_projects_alter(&$projects) {
   $projects['disabled_project_name'] = array(
     // Machine-readable project short name (same as the array key above).
     'name' => 'disabled_project_name',
-    // Array of values from the main .info file for this project.
+    // Array of values from the main .info.yml file for this project.
     'info' => array(
       'name' => 'Some disabled module',
       'description' => 'A module not enabled on the site that you want to see in the available updates report.',
       'version' => '8.x-1.0',
       'core' => '8.x',
       // The maximum file change time (the "ctime" returned by the filectime()
-      // PHP method) for all of the .info files included in this project.
+      // PHP method) for all of the .info.yml files included in this project.
       '_info_file_ctime' => 1243888165,
     ),
     // The date stamp when the project was released, if known. If the disabled
     // project was an officially packaged release from drupal.org, this will
-    // be included in the .info file as the 'datestamp' field. This only
+    // be included in the .info.yml file as the 'datestamp' field. This only
     // really matters for development snapshot releases that are regenerated,
     // so it can be left undefined or set to 0 in most cases.
     'datestamp' => 1243888185,
diff --git a/core/modules/update/update.compare.inc b/core/modules/update/update.compare.inc
index 59ce287..e4fa8ed 100644
--- a/core/modules/update/update.compare.inc
+++ b/core/modules/update/update.compare.inc
@@ -28,13 +28,13 @@
  *   An associative array of currently enabled projects keyed by the
  *   machine-readable project short name. Each project contains:
  *   - name: The machine-readable project short name.
- *   - info: An array with values from the main .info file for this project.
+ *   - info: An array with values from the main .info.yml file for this project.
  *     - name: The human-readable name of the project.
  *     - package: The package that the project is grouped under.
  *     - version: The version of the project.
  *     - project: The Drupal.org project name.
- *     - datestamp: The date stamp of the project's main .info file.
- *     - _info_file_ctime: The maximum file change time for all of the .info
+ *     - datestamp: The date stamp of the project's main .info.yml file.
+ *     - _info_file_ctime: The maximum file change time for all of the .info.yml
  *       files included in this project.
  *   - datestamp: The date stamp when the project was released, if known.
  *   - includes: An associative array containing all projects included with this
@@ -87,7 +87,7 @@ function update_get_projects() {
  * should be included or not in the 'Available updates' report), those are only
  * processed after $projects has been populated with information about the
  * enabled code. Modules and themes set as hidden are always ignored. This
- * function also records the latest change time on the .info files for each
+ * function also records the latest change time on the .info.yml files for each
  * module or theme, which is important data which is used when deciding if the
  * cached available update data should be invalidated.
  *
@@ -101,7 +101,7 @@ function update_get_projects() {
  *   Boolean that controls what status (enabled or disabled) to process out of
  *   the $list and add to the $projects array.
  * @param $additional_whitelist
- *   (optional) Array of additional elements to be collected from the .info
+ *   (optional) Array of additional elements to be collected from the .info.yml
  *   file. Defaults to array().
  *
  * @see update_get_projects()
@@ -129,7 +129,7 @@ function update_process_info_list(&$projects, $list, $project_type, $status, $ad
       continue;
     }
 
-    // Skip if the .info file is broken.
+    // Skip if the .info.yml file is broken.
     if (empty($file->info)) {
       continue;
     }
@@ -139,7 +139,7 @@ function update_process_info_list(&$projects, $list, $project_type, $status, $ad
       continue;
     }
 
-    // If the .info doesn't define the 'project', try to figure it out.
+    // If the .info.yml doesn't define the 'project', try to figure it out.
     if (!isset($file->info['project'])) {
       $file->info['project'] = update_get_project_name($file);
     }
@@ -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
+    // 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);
     }
 
@@ -201,7 +201,7 @@ function update_process_info_list(&$projects, $list, $project_type, $status, $ad
       // project can have multiple modules or themes.
       $projects[$project_name] = array(
         'name' => $project_name,
-        // Only save attributes from the .info file we care about so we do not
+        // Only save attributes from the .info.yml file we care about so we do not
         // bloat our RAM usage needlessly.
         'info' => update_filter_project_info($file->info, $additional_whitelist),
         'datestamp' => $file->info['datestamp'],
@@ -293,7 +293,7 @@ function update_process_project_info(&$projects) {
       elseif (!isset($info['major'])) {
         // This would only happen for version strings that don't follow the
         // drupal.org convention. We let contribs define "major" in their
-        // .info in this case, and only if that's missing would we hit this.
+        // .info.yml in this case, and only if that's missing would we hit this.
         $info['major'] = -1;
       }
     }
@@ -656,7 +656,7 @@ function update_calculate_project_update_status(&$project_data, $available) {
     // If we're running a dev snapshot and have a timestamp, stop
     // searching for security updates once we hit an official release
     // older than what we've got. Allow 100 seconds of leeway to handle
-    // differences between the datestamp in the .info file and the
+    // differences between the datestamp in the .info.yml file and the
     // timestamp of the tarball itself (which are usually off by 1 or 2
     // seconds) so that we don't flag that as a new release.
     if ($project_data['install_type'] == 'dev') {
@@ -753,7 +753,7 @@ function update_calculate_project_update_status(&$project_data, $available) {
  * Retrieves data from {cache_update} or empties the cache when necessary.
  *
  * Two very expensive arrays computed by this module are the list of all
- * installed modules and themes (and .info data, project associations, etc), and
+ * installed modules and themes (and .info.yml data, project associations, etc), and
  * the current status of the site relative to the currently available releases.
  * These two arrays are cached in the {cache_update} table and used whenever
  * possible. The cache is cleared whenever the administrator visits the status
@@ -806,16 +806,16 @@ function update_project_cache($cid) {
 }
 
 /**
- * Filters the project .info data to only save attributes we need.
+ * Filters the project .info.yml 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
+ *   (optional) Array of additional elements to be collected from the .info.yml
  *   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.fetch.inc b/core/modules/update/update.fetch.inc
index d5f3593..476739a 100644
--- a/core/modules/update/update.fetch.inc
+++ b/core/modules/update/update.fetch.inc
@@ -232,7 +232,7 @@ function _update_refresh() {
  * @param $project
  *   Associative array of information about a project as created by
  *   update_get_projects(), including keys such as 'name' (short name), and the
- *   'info' array with data from a .info file for the project.
+ *   'info' array with data from a .info.yml file for the project.
  *
  * @see update_get_projects()
  * @see update_get_available()
@@ -272,8 +272,8 @@ function _update_create_fetch_task($project) {
 /**
  * Generates the URL to fetch information about project updates.
  *
- * This figures out the right URL to use, based on the project's .info file and
- * the global defaults. Appends optional query arguments when the site is
+ * This figures out the right URL to use, based on the project's .info.yml file
+ * and the global defaults. Appends optional query arguments when the site is
  * configured to report usage stats.
  *
  * @param $project
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..619cd1b
--- /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 00ef879..830c8d2 100644
--- a/core/modules/update/update.module
+++ b/core/modules/update/update.module
@@ -367,12 +367,12 @@ function _update_no_data() {
  * Tries to get update information from cache and refreshes it when necessary.
  *
  * In addition to checking the cache lifetime, this function also ensures that
- * there are no .info files for enabled modules or themes that have a newer
+ * there are no .info.yml files for enabled modules or themes that have a newer
  * modification timestamp than the last time we checked for available update
- * data. If any .info file was modified, it almost certainly means a new version
- * of something was installed. Without fresh available update data, the logic in
- * update_calculate_project_data() will be wrong and produce confusing, bogus
- * results.
+ * data. If any .info.yml file was modified, it almost certainly means a new
+ * version of something was installed. Without fresh available update data, the
+ * logic in update_calculate_project_data() will be wrong and produce confusing,
+ * bogus results.
  *
  * @param $refresh
  *   (optional) Boolean to indicate if this method should refresh the cache
@@ -401,9 +401,9 @@ function update_get_available($refresh = FALSE) {
       continue;
     }
 
-    // See if the .info file is newer than the last time we checked for data,
+    // See if the .info.yml file is newer than the last time we checked for data,
     // and if so, mark this project's data as needing to be re-fetched. Any
-    // time an admin upgrades their local installation, the .info file will
+    // time an admin upgrades their local installation, the .info.yml file will
     // be changed, so this is the only way we can be sure we're not showing
     // bogus information right after they upgrade.
     if ($project['info']['_info_file_ctime'] > $available[$key]['last_fetch']) {
@@ -667,7 +667,7 @@ function theme_update_last_check($variables) {
  * update manager does not yet support. See http://drupal.org/node/606592
  *
  * Then, we make sure that at least one module included in the archive file has
- * an .info file which claims that the code is compatible with the current
+ * an .info.yml file which claims that the code is compatible with the current
  * version of Drupal core.
  *
  * @see drupal_system_listing()
@@ -689,16 +689,16 @@ function update_verify_update_archive($project, $archive_file, $directory) {
     );
   }
 
-  // Parse all the .info files and make sure at least one is compatible with
+  // Parse all the .info.yml files and make sure at least one is compatible with
   // this version of Drupal core. If one is compatible, then the project as a
   // whole is considered compatible (since, for example, the project may ship
   // with some out-of-date modules that are not necessary for its overall
   // 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.
+    // Get the .info.yml file for the module or theme this file belongs to.
     $info = drupal_parse_info_file($file->uri);
 
     // If the module or theme is incompatible with Drupal core, set an error.
@@ -712,7 +712,7 @@ function update_verify_update_archive($project, $archive_file, $directory) {
   }
 
   if (empty($files)) {
-    $errors[] = t('%archive_file does not contain any .info files.', array('%archive_file' => drupal_basename($archive_file)));
+    $errors[] = t('%archive_file does not contain any .info.yml files.', array('%archive_file' => drupal_basename($archive_file)));
   }
   elseif (!$compatible_project) {
     $errors[] = format_plural(
diff --git a/core/modules/user/tests/modules/user_custom_phpass_params_test/user_custom_phpass_params_test.info b/core/modules/user/tests/modules/user_custom_phpass_params_test/user_custom_phpass_params_test.info
deleted file mode 100644
index 3e13f80..0000000
--- a/core/modules/user/tests/modules/user_custom_phpass_params_test/user_custom_phpass_params_test.info
+++ /dev/null
@@ -1,6 +0,0 @@
-name = "User custom phpass params test"
-description = "Support module for testing custom phpass password algorithm parameters."
-package = Testing
-version = VERSION
-core = 8.x
-hidden = TRUE
diff --git a/core/modules/user/tests/modules/user_custom_phpass_params_test/user_custom_phpass_params_test.info.yml b/core/modules/user/tests/modules/user_custom_phpass_params_test/user_custom_phpass_params_test.info.yml
new file mode 100644
index 0000000..fe06712
--- /dev/null
+++ b/core/modules/user/tests/modules/user_custom_phpass_params_test/user_custom_phpass_params_test.info.yml
@@ -0,0 +1,6 @@
+name: 'User custom phpass params test'
+description: 'Support module for testing custom phpass password algorithm parameters.'
+package: Testing
+version: VERSION
+core: 8.x
+hidden: true
diff --git a/core/modules/user/tests/modules/user_form_test/user_form_test.info b/core/modules/user/tests/modules/user_form_test/user_form_test.info
deleted file mode 100644
index ed2f39e..0000000
--- a/core/modules/user/tests/modules/user_form_test/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/modules/user_form_test/user_form_test.info.yml b/core/modules/user/tests/modules/user_form_test/user_form_test.info.yml
new file mode 100644
index 0000000..f6be592
--- /dev/null
+++ b/core/modules/user/tests/modules/user_form_test/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/tests/modules/user_test_views/user_test_views.info b/core/modules/user/tests/modules/user_test_views/user_test_views.info
deleted file mode 100644
index 52edbbb..0000000
--- a/core/modules/user/tests/modules/user_test_views/user_test_views.info
+++ /dev/null
@@ -1,8 +0,0 @@
-name = User test views
-description = Provides default views for views user tests.
-package = Testing
-version = VERSION
-core = 8.x
-dependencies[] = user
-dependencies[] = views
-hidden = TRUE
diff --git a/core/modules/user/tests/modules/user_test_views/user_test_views.info.yml b/core/modules/user/tests/modules/user_test_views/user_test_views.info.yml
new file mode 100644
index 0000000..8924605
--- /dev/null
+++ b/core/modules/user/tests/modules/user_test_views/user_test_views.info.yml
@@ -0,0 +1,9 @@
+name: 'User test views'
+description: 'Provides default views for views user tests.'
+package: Testing
+version: VERSION
+core: 8.x
+dependencies:
+  - user
+  - views
+hidden: true
diff --git a/core/modules/user/user.info b/core/modules/user/user.info
deleted file mode 100644
index 1d017da..0000000
--- a/core/modules/user/user.info
+++ /dev/null
@@ -1,7 +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
diff --git a/core/modules/user/user.info.yml b/core/modules/user/user.info.yml
new file mode 100644
index 0000000..119aff2
--- /dev/null
+++ b/core/modules/user/user.info.yml
@@ -0,0 +1,7 @@
+name: User
+description: 'Manages the user registration and login system.'
+package: Core
+version: VERSION
+core: 8.x
+required: true
+configure: admin/config/people
diff --git a/core/modules/views/tests/views_test_config/views_test_config.info b/core/modules/views/tests/views_test_config/views_test_config.info
deleted file mode 100644
index 625076c..0000000
--- a/core/modules/views/tests/views_test_config/views_test_config.info
+++ /dev/null
@@ -1,7 +0,0 @@
-name = Views Test Config
-description = Provides default views for tests.
-package = Testing
-version = VERSION
-core = 8.x
-dependencies[] = views
-hidden = TRUE
diff --git a/core/modules/views/tests/views_test_config/views_test_config.info.yml b/core/modules/views/tests/views_test_config/views_test_config.info.yml
new file mode 100644
index 0000000..7b30e10
--- /dev/null
+++ b/core/modules/views/tests/views_test_config/views_test_config.info.yml
@@ -0,0 +1,8 @@
+name: 'Views Test Config'
+description: 'Provides default views for tests.'
+package: Testing
+version: VERSION
+core: 8.x
+dependencies:
+  - views
+hidden: true
diff --git a/core/modules/views/tests/views_test_data/views_test_data.info b/core/modules/views/tests/views_test_data/views_test_data.info
deleted file mode 100644
index 7d2ae10..0000000
--- a/core/modules/views/tests/views_test_data/views_test_data.info
+++ /dev/null
@@ -1,7 +0,0 @@
-name = Views Test
-description = Test module for Views.
-package = Testing
-version = VERSION
-core = 8.x
-dependencies[] = views
-hidden = TRUE
diff --git a/core/modules/views/tests/views_test_data/views_test_data.info.yml b/core/modules/views/tests/views_test_data/views_test_data.info.yml
new file mode 100644
index 0000000..9209bbe
--- /dev/null
+++ b/core/modules/views/tests/views_test_data/views_test_data.info.yml
@@ -0,0 +1,8 @@
+name: 'Views Test'
+description: 'Test module for Views.'
+package: Testing
+version: VERSION
+core: 8.x
+dependencies:
+  - views
+hidden: true
diff --git a/core/modules/views/views.info b/core/modules/views/views.info
deleted file mode 100644
index edd7390..0000000
--- a/core/modules/views/views.info
+++ /dev/null
@@ -1,5 +0,0 @@
-name = Views
-description = Create customized lists and queries from your database.
-package = Core
-version = VERSION
-core = 8.x
diff --git a/core/modules/views/views.info.yml b/core/modules/views/views.info.yml
new file mode 100644
index 0000000..3cd7209
--- /dev/null
+++ b/core/modules/views/views.info.yml
@@ -0,0 +1,5 @@
+name: Views
+description: 'Create customized lists and queries from your database.'
+package: Core
+version: VERSION
+core: 8.x
diff --git a/core/modules/views/views_ui/views_ui.info b/core/modules/views/views_ui/views_ui.info
deleted file mode 100644
index 82c8ab3..0000000
--- a/core/modules/views/views_ui/views_ui.info
+++ /dev/null
@@ -1,7 +0,0 @@
-name = Views UI
-description = Administrative interface for Views.
-package = Core
-version = VERSION
-core = 8.x
-configure = admin/structure/views
-dependencies[] = views
diff --git a/core/modules/views/views_ui/views_ui.info.yml b/core/modules/views/views_ui/views_ui.info.yml
new file mode 100644
index 0000000..879e728
--- /dev/null
+++ b/core/modules/views/views_ui/views_ui.info.yml
@@ -0,0 +1,8 @@
+name: 'Views UI'
+description: 'Administrative interface for Views.'
+package: Core
+version: VERSION
+core: 8.x
+configure: admin/structure/views
+dependencies:
+  - views
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..948aeb4
--- /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 2773abe..0000000
--- a/core/profiles/standard/standard.info
+++ /dev/null
@@ -1,32 +0,0 @@
-name = Standard
-description = Install with commonly used features pre-configured.
-version = VERSION
-core = 8.x
-dependencies[] = node
-dependencies[] = history
-dependencies[] = block
-dependencies[] = breakpoint
-dependencies[] = color
-dependencies[] = config
-dependencies[] = comment
-dependencies[] = contextual
-dependencies[] = contact
-dependencies[] = custom_block
-dependencies[] = edit
-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
-dependencies[] = views
-dependencies[] = views_ui
diff --git a/core/profiles/standard/standard.info.yml b/core/profiles/standard/standard.info.yml
new file mode 100644
index 0000000..1dc7408
--- /dev/null
+++ b/core/profiles/standard/standard.info.yml
@@ -0,0 +1,33 @@
+name: Standard
+description: 'Install with commonly used features pre-configured.'
+version: VERSION
+core: 8.x
+dependencies:
+  - node
+  - history
+  - block
+  - breakpoint
+  - color
+  - config
+  - comment
+  - contextual
+  - contact
+  - custom_block
+  - edit
+  - help
+  - image
+  - menu
+  - number
+  - options
+  - path
+  - taxonomy
+  - dblog
+  - search
+  - shortcut
+  - toolbar
+  - overlay
+  - field_ui
+  - file
+  - rdf
+  - views
+  - views_ui
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..69122f4
--- /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/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..028de3e
--- /dev/null
+++ b/core/themes/bartik/bartik.info.yml
@@ -0,0 +1,32 @@
+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 b737eaf..0000000
--- a/core/themes/seven/seven.info
+++ /dev/null
@@ -1,19 +0,0 @@
-name = Seven
-description = A simple one-column, tableless, fluid width administration theme.
-package = Core
-version = VERSION
-core = 8.x
-
-stylesheets[screen][] = style.css
-stylesheets-override[] = vertical-tabs.css
-stylesheets-override[] = vertical-tabs-rtl.css
-stylesheets-override[] = jquery.ui.theme.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..2fe1cb3
--- /dev/null
+++ b/core/themes/seven/seven.info.yml
@@ -0,0 +1,22 @@
+name: Seven
+description: 'A simple one-column, tableless, fluid width administration theme.'
+package: Core
+version: VERSION
+core: 8.x
+stylesheets:
+  screen:
+    - style.css
+stylesheets-override:
+  - vertical-tabs.css
+  - vertical-tabs-rtl.css
+  - jquery.ui.theme.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..06a8629
--- /dev/null
+++ b/core/themes/stark/stark.info.yml
@@ -0,0 +1,8 @@
+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
