From b126c02e2dc855bb7f57df70c36a662c156ceaa6 Mon Sep 17 00:00:00 2001
From: xjm <xjm@65776.no-reply.drupal.org>
Date: Thu, 23 Jan 2020 15:28:49 -0600
Subject: [PATCH] =?UTF-8?q?Issue=20#3074993=20by=20tedbow,=20kim.pepper,?=
 =?UTF-8?q?=20bnjmnm,=20drumm,=20xjm,=20tim.plunkett,=20G=C3=A1bor=20Hojts?=
 =?UTF-8?q?y,=20alexpott:=20Use=20"current"=20in=20update=20URLs=20instead?=
 =?UTF-8?q?=20of=20CORE=5FCOMPATIBILITY=20to=20retrieve=20all=20future=20u?=
 =?UTF-8?q?pdates?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../update/src/Form/UpdateManagerUpdate.php   |   4 +-
 core/modules/update/src/ModuleVersion.php     | 131 ++++++
 core/modules/update/src/UpdateFetcher.php     |   2 +-
 .../update_test/aaa_update_test.1_0.xml       |   9 +-
 .../aaa_update_test.1_1-alpha1.xml            |  14 +-
 .../update_test/aaa_update_test.1_1-beta1.xml |  19 +-
 .../update_test/aaa_update_test.1_1.xml       |  23 +-
 .../aaa_update_test.1_2-alpha1.xml            |  28 +-
 .../update_test/aaa_update_test.1_2-beta1.xml |  33 +-
 .../update_test/aaa_update_test.1_2.xml       |  37 +-
 .../aaa_update_test.2_0-alpha1.xml            |  42 +-
 .../update_test/aaa_update_test.2_0-beta1.xml |  49 +--
 .../update_test/aaa_update_test.2_0.xml       |  51 +--
 .../aaa_update_test.sec.8.x-1.1_8.x-1.2.xml   |  17 +-
 .../aaa_update_test.sec.8.x-1.2.xml           |  17 +-
 .../aaa_update_test.sec.8.x-1.2_8.x-2.2.xml   |  39 +-
 ...aaa_update_test.sec.8.x-2.2_1.x_secure.xml |  31 +-
 .../update_test/bbb_update_test.1_0.xml       |   9 +-
 .../update_test/ccc_update_test.1_0.xml       |   9 +-
 .../modules/update_test/drupal.0.0-alpha1.xml |  11 +-
 .../modules/update_test/drupal.0.0-beta1.xml  |  17 +-
 .../tests/modules/update_test/drupal.0.0.xml  |  22 +-
 .../modules/update_test/drupal.0.1-alpha1.xml |  28 +-
 .../modules/update_test/drupal.0.1-beta1.xml  |  34 +-
 .../tests/modules/update_test/drupal.0.1.xml  |  39 +-
 .../modules/update_test/drupal.1.0-alpha1.xml |  45 +-
 .../modules/update_test/drupal.1.0-beta1.xml  |  51 +--
 .../tests/modules/update_test/drupal.1.0.xml  |  56 +--
 .../modules/update_test/drupal.1.1-alpha1.xml |  62 +--
 .../modules/update_test/drupal.1.1-beta1.xml  |  68 +--
 .../tests/modules/update_test/drupal.1.1.xml  |  73 +---
 .../tests/modules/update_test/drupal.9.xml    |  10 +-
 .../tests/modules/update_test/drupal.dev.xml  |  15 +-
 .../update_test/drupal.sec.0.1_0.2.xml        |  20 +-
 .../update_test/drupal.sec.0.2-rc2-b.xml      |  71 +---
 .../update_test/drupal.sec.0.2-rc2.xml        |  71 +---
 .../modules/update_test/drupal.sec.0.2.xml    |  20 +-
 .../modules/update_test/drupal.sec.1.2.xml    |  35 +-
 .../update_test/drupal.sec.1.2_insecure.xml   |  35 +-
 .../update_test_basetheme.1_1-sec.xml         |  13 +-
 .../update_test_new_module.1_1.xml            |   9 +-
 .../update_test/update_test_subtheme.1_0.xml  |   9 +-
 .../tests/src/Unit/ModuleVersionTest.php      | 400 ++++++++++++++++++
 .../tests/src/Unit/UpdateFetcherTest.php      |  12 +-
 core/modules/update/update.compare.inc        | 126 +++---
 45 files changed, 658 insertions(+), 1258 deletions(-)
 create mode 100644 core/modules/update/src/ModuleVersion.php
 create mode 100644 core/modules/update/tests/src/Unit/ModuleVersionTest.php

diff --git a/core/modules/update/src/Form/UpdateManagerUpdate.php b/core/modules/update/src/Form/UpdateManagerUpdate.php
index 4fcb54954f4b..fb5385c0260b 100644
--- a/core/modules/update/src/Form/UpdateManagerUpdate.php
+++ b/core/modules/update/src/Form/UpdateManagerUpdate.php
@@ -10,6 +10,7 @@
 use Drupal\Core\Url;
 use Drupal\update\UpdateFetcherInterface;
 use Drupal\update\UpdateManagerInterface;
+use Drupal\update\ModuleVersion;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
 /**
@@ -135,7 +136,8 @@ public function buildForm(array $form, FormStateInterface $form_state) {
 
       $recommended_release = $project['releases'][$project['recommended']];
       $recommended_version = '{{ release_version }} (<a href="{{ release_link }}" title="{{ project_title }}">{{ release_notes }}</a>)';
-      if ($recommended_release['version_major'] != $project['existing_major']) {
+      $recommended_version_parser = ModuleVersion::createFromVersionString($recommended_release['version']);
+      if ($recommended_version_parser->getMajorVersion() != $project['existing_major']) {
         $recommended_version .= '<div title="{{ major_update_warning_title }}" class="update-major-version-warning">{{ major_update_warning_text }}</div>';
       }
 
diff --git a/core/modules/update/src/ModuleVersion.php b/core/modules/update/src/ModuleVersion.php
new file mode 100644
index 000000000000..987674107f54
--- /dev/null
+++ b/core/modules/update/src/ModuleVersion.php
@@ -0,0 +1,131 @@
+<?php
+
+namespace Drupal\update;
+
+/**
+ * Provides a module version value object.
+ *
+ * @internal
+ *
+ * @see https://www.drupal.org/drupalorg/docs/apis/update-status-xml.
+ */
+final class ModuleVersion {
+
+  /**
+   * The '8.x-' prefix is used on contrib module version numbers.
+   *
+   * @var string
+   */
+  const CORE_PREFIX = '8.x-';
+
+  /**
+   * The major version.
+   *
+   * @var string
+   */
+  protected $majorVersion;
+
+  /**
+   * The version extra string.
+   *
+   * For example, if the module version is '2.0.3-alpha1', then the version
+   * extra string is 'alpha1'.
+   *
+   * @var string|null
+   */
+  protected $versionExtra;
+
+  /**
+   * Constructs a module version object from a version string.
+   *
+   * @param string $version_string
+   *   The version string.
+   *
+   * @return \Drupal\update\ModuleVersion
+   *   The module version instance.
+   */
+  public static function createFromVersionString($version_string) {
+    $original_version = $version_string;
+    if (strpos($version_string, static::CORE_PREFIX) === 0 && $version_string !== '8.x-dev') {
+      $version_string = preg_replace('/8\.x-/', '', $version_string, 1);
+    }
+    else {
+      // Ensure the version string has no unsupported core prefixes.
+      $dot_x_position = strpos($version_string, '.x-');
+      if ($dot_x_position === 1 || $dot_x_position === 2) {
+        $after_core_prefix = explode('.x-', $version_string)[1];
+        if ($after_core_prefix !== 'dev') {
+          throw new \UnexpectedValueException("Unexpected version core prefix in $version_string. The only core prefix expected in \Drupal\update\ModuleVersion is: 8.x-");
+        }
+      }
+    }
+    $version_parts = explode('.', $version_string);
+    $major_version = $version_parts[0];
+    $version_parts_count = count($version_parts);
+    $last_part_split = explode('-', $version_parts[count($version_parts) - 1]);
+    $version_extra = count($last_part_split) === 1 ? NULL : $last_part_split[1];
+    if ($version_parts_count > 3 || $version_parts_count < 2
+       || !is_numeric($major_version)
+       || ($version_parts_count === 3 && !is_numeric($version_parts[1]))
+      // The only case where a non-numeric version part other the extra part is
+      // allowed is in development versions like 8.x-1.x-dev, 1.2.x-dev or
+      // 1.x-dev.
+       || (!is_numeric($last_part_split[0]) && $last_part_split !== 'x' && $version_extra !== 'dev')) {
+      throw new \UnexpectedValueException("Unexpected version number in: $original_version");
+    }
+    return new static($major_version, $version_extra);
+  }
+
+  /**
+   * Constructs a ModuleVersion object.
+   *
+   * @param string $major_version
+   *   The major version.
+   * @param string|null $version_extra
+   *   The extra version string.
+   */
+  private function __construct($major_version, $version_extra) {
+    $this->majorVersion = $major_version;
+    $this->versionExtra = $version_extra;
+  }
+
+  /**
+   * Constructs a module version object from a support branch.
+   *
+   * This can be used to determine the major version of the branch.
+   * ::getVersionExtra() will always return NULL for branches.
+   *
+   * @param string $branch
+   *   The support branch.
+   *
+   * @return \Drupal\update\ModuleVersion
+   *   The module version instance.
+   */
+  public static function createFromSupportBranch($branch) {
+    if (substr($branch, -1) !== '.') {
+      throw new \UnexpectedValueException("Invalid support branch: $branch");
+    }
+    return static::createFromVersionString($branch . '0');
+  }
+
+  /**
+   * Gets the major version.
+   *
+   * @return string
+   *   The major version.
+   */
+  public function getMajorVersion() {
+    return $this->majorVersion;
+  }
+
+  /**
+   * Gets the version extra string at the end of the version number.
+   *
+   * @return string|null
+   *   The version extra string if available, or otherwise NULL.
+   */
+  public function getVersionExtra() {
+    return $this->versionExtra;
+  }
+
+}
diff --git a/core/modules/update/src/UpdateFetcher.php b/core/modules/update/src/UpdateFetcher.php
index 2b03c9c1011b..05cce763a67d 100644
--- a/core/modules/update/src/UpdateFetcher.php
+++ b/core/modules/update/src/UpdateFetcher.php
@@ -77,7 +77,7 @@ public function fetchProjectData(array $project, $site_key = '') {
   public function buildFetchUrl(array $project, $site_key = '') {
     $name = $project['name'];
     $url = $this->getFetchBaseUrl($project);
-    $url .= '/' . $name . '/' . \Drupal::CORE_COMPATIBILITY;
+    $url .= '/' . $name . '/current';
 
     // Only append usage information if we have a site key and the project is
     // enabled. We do not want to record usage statistics for disabled projects.
diff --git a/core/modules/update/tests/modules/update_test/aaa_update_test.1_0.xml b/core/modules/update/tests/modules/update_test/aaa_update_test.1_0.xml
index 82362fe84652..ee842fa5e6e6 100644
--- a/core/modules/update/tests/modules/update_test/aaa_update_test.1_0.xml
+++ b/core/modules/update/tests/modules/update_test/aaa_update_test.1_0.xml
@@ -3,10 +3,7 @@
 <title>AAA Update test</title>
 <short_name>aaa_update_test</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>1</recommended_major>
-<supported_majors>1</supported_majors>
-<default_major>1</default_major>
+<supported_branches>8.x-1.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/aaa_update_test</link>
   <terms>
@@ -17,14 +14,10 @@
   <name>aaa_update_test 8.x-1.0</name>
   <version>8.x-1.0</version>
   <tag>DRUPAL-8--1-0</tag>
-  <version_major>1</version_major>
-  <version_patch>0</version_patch>
   <status>published</status>
   <release_link>http://example.com/aaa_update_test-8-x-1-0-release</release_link>
   <download_link>http://example.com/aaa_update_test-8.x-1.0.tar.gz</download_link>
   <date>1250424521</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>1073741824</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/core/modules/update/tests/modules/update_test/aaa_update_test.1_1-alpha1.xml b/core/modules/update/tests/modules/update_test/aaa_update_test.1_1-alpha1.xml
index 61776abbdf74..2d7d8c306b3d 100644
--- a/core/modules/update/tests/modules/update_test/aaa_update_test.1_1-alpha1.xml
+++ b/core/modules/update/tests/modules/update_test/aaa_update_test.1_1-alpha1.xml
@@ -3,10 +3,7 @@
   <title>AAA Update test</title>
   <short_name>aaa_update_test</short_name>
   <dc:creator>Drupal</dc:creator>
-  <api_version>8.x</api_version>
-  <recommended_major>1</recommended_major>
-  <supported_majors>1</supported_majors>
-  <default_major>1</default_major>
+  <supported_branches>8.x-1.</supported_branches>
   <project_status>published</project_status>
   <link>http://example.com/project/aaa_update_test</link>
   <terms>
@@ -17,15 +14,10 @@
       <name>aaa_update_test 8.x-1.1-alpha1</name>
       <version>8.x-1.1-alpha1</version>
       <tag>DRUPAL-8--1-1-alpha1</tag>
-      <version_major>1</version_major>
-      <version_patch>1</version_patch>
-      <version_extra>alpha1</version_extra>
       <status>published</status>
       <release_link>http://example.com/aaa_update_test-8-x-1-1-alpha1-release</release_link>
       <download_link>http://example.com/aaa_update_test-8.x-1.1-alpha1.tar.gz</download_link>
       <date>1250414521</date>
-      <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-      <filesize>1073761824</filesize>
       <terms>
         <term><name>Release type</name><value>New features</value></term>
         <term><name>Release type</name><value>Bug fixes</value></term>
@@ -35,14 +27,10 @@
       <name>aaa_update_test 8.x-1.0</name>
       <version>8.x-1.0</version>
       <tag>DRUPAL-8--1-0</tag>
-      <version_major>1</version_major>
-      <version_patch>0</version_patch>
       <status>published</status>
       <release_link>http://example.com/aaa_update_test-8-x-1-0-release</release_link>
       <download_link>http://example.com/aaa_update_test-8.x-1.0.tar.gz</download_link>
       <date>1073781824</date>
-      <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-      <filesize>1073741824</filesize>
       <terms>
         <term><name>Release type</name><value>New features</value></term>
         <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/core/modules/update/tests/modules/update_test/aaa_update_test.1_1-beta1.xml b/core/modules/update/tests/modules/update_test/aaa_update_test.1_1-beta1.xml
index 4cb6e450a56a..d1531406d96c 100644
--- a/core/modules/update/tests/modules/update_test/aaa_update_test.1_1-beta1.xml
+++ b/core/modules/update/tests/modules/update_test/aaa_update_test.1_1-beta1.xml
@@ -3,10 +3,7 @@
 <title>AAA Update test</title>
 <short_name>aaa_update_test</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>1</recommended_major>
-<supported_majors>1</supported_majors>
-<default_major>1</default_major>
+<supported_branches>8.x-1.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/aaa_update_test</link>
   <terms>
@@ -17,15 +14,10 @@
     <name>aaa_update_test 8.x-1.1-beta1</name>
     <version>8.x-1.1-beta1</version>
     <tag>DRUPAL-8--1-1-beta1</tag>
-    <version_major>1</version_major>
-    <version_patch>1</version_patch>
-    <version_extra>beta1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-1-beta1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.1-beta1.tar.gz</download_link>
     <date>1250414521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073741824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -35,15 +27,10 @@
     <name>aaa_update_test 8.x-1.1-alpha1</name>
     <version>8.x-1.1-alpha1</version>
     <tag>DRUPAL-8--1-1-alpha1</tag>
-    <version_major>1</version_major>
-    <version_patch>1</version_patch>
-    <version_extra>alpha1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-1-alpha1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.1-alpha1.tar.gz</download_link>
     <date>1250414521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073761824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -53,14 +40,10 @@
     <name>aaa_update_test 8.x-1.0</name>
     <version>8.x-1.0</version>
     <tag>DRUPAL-8--1-0</tag>
-    <version_major>1</version_major>
-    <version_patch>0</version_patch>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-0-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.0.tar.gz</download_link>
     <date>1073781824</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073741824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/core/modules/update/tests/modules/update_test/aaa_update_test.1_1.xml b/core/modules/update/tests/modules/update_test/aaa_update_test.1_1.xml
index 14e9e7c1699e..97988435a1f2 100644
--- a/core/modules/update/tests/modules/update_test/aaa_update_test.1_1.xml
+++ b/core/modules/update/tests/modules/update_test/aaa_update_test.1_1.xml
@@ -3,10 +3,7 @@
 <title>AAA Update test</title>
 <short_name>aaa_update_test</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>1</recommended_major>
-<supported_majors>1</supported_majors>
-<default_major>1</default_major>
+<supported_branches>8.x-1.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/aaa_update_test</link>
   <terms>
@@ -17,14 +14,10 @@
     <name>aaa_update_test 8.x-1.1</name>
     <version>8.x-1.1</version>
     <tag>DRUPAL-8--1-1</tag>
-    <version_major>1</version_major>
-    <version_patch>1</version_patch>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.1.tar.gz</download_link>
     <date>1250424521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073751824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -34,15 +27,10 @@
     <name>aaa_update_test 8.x-1.1-beta1</name>
     <version>8.x-1.1-beta1</version>
     <tag>DRUPAL-8--1-1-beta1</tag>
-    <version_major>1</version_major>
-    <version_patch>1</version_patch>
-    <version_extra>beta1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-1-beta1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.1-beta1.tar.gz</download_link>
     <date>1250414521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073741824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -52,15 +40,10 @@
     <name>aaa_update_test 8.x-1.1-alpha1</name>
     <version>8.x-1.1-alpha1</version>
     <tag>DRUPAL-8--1-1-alpha1</tag>
-    <version_major>1</version_major>
-    <version_patch>1</version_patch>
-    <version_extra>alpha1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-1-alpha1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.1-alpha1.tar.gz</download_link>
     <date>1250414521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073761824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -70,14 +53,10 @@
     <name>aaa_update_test 8.x-1.0</name>
     <version>8.x-1.0</version>
     <tag>DRUPAL-8--1-0</tag>
-    <version_major>1</version_major>
-    <version_patch>0</version_patch>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-0-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.0.tar.gz</download_link>
     <date>1250404521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073781824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/core/modules/update/tests/modules/update_test/aaa_update_test.1_2-alpha1.xml b/core/modules/update/tests/modules/update_test/aaa_update_test.1_2-alpha1.xml
index f9541c8f5f4f..c503131514a0 100644
--- a/core/modules/update/tests/modules/update_test/aaa_update_test.1_2-alpha1.xml
+++ b/core/modules/update/tests/modules/update_test/aaa_update_test.1_2-alpha1.xml
@@ -3,10 +3,7 @@
 <title>AAA Update test</title>
 <short_name>aaa_update_test</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>1</recommended_major>
-<supported_majors>1</supported_majors>
-<default_major>1</default_major>
+<supported_branches>8.x-1.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/aaa_update_test</link>
   <terms>
@@ -17,15 +14,10 @@
     <name>aaa_update_test 8.x-1.2-alpha1</name>
     <version>8.x-1.2-alpha1</version>
     <tag>DRUPAL-8--1-1-alpha1</tag>
-    <version_major>1</version_major>
-    <version_patch>2</version_patch>
-    <version_extra>alpha1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-2-alpha1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.2-alpha1.tar.gz</download_link>
     <date>1250413521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073761824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -35,14 +27,10 @@
     <name>aaa_update_test 8.x-1.1</name>
     <version>8.x-1.1</version>
     <tag>DRUPAL-8--1-1</tag>
-    <version_major>1</version_major>
-    <version_patch>1</version_patch>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.1.tar.gz</download_link>
     <date>1250424521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073751824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -52,15 +40,10 @@
     <name>aaa_update_test 8.x-1.1-beta1</name>
     <version>8.x-1.1-beta1</version>
     <tag>DRUPAL-8--1-1-beta1</tag>
-    <version_major>1</version_major>
-    <version_patch>1</version_patch>
-    <version_extra>beta1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-1-beta1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.1-beta1.tar.gz</download_link>
     <date>1250414521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073741824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -70,15 +53,10 @@
     <name>aaa_update_test 8.x-1.1-alpha1</name>
     <version>8.x-1.1-alpha1</version>
     <tag>DRUPAL-8--1-1-alpha1</tag>
-    <version_major>1</version_major>
-    <version_patch>1</version_patch>
-    <version_extra>alpha1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-1-alpha1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.1-alpha1.tar.gz</download_link>
     <date>1250414521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073761824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -88,14 +66,10 @@
     <name>aaa_update_test 8.x-1.0</name>
     <version>8.x-1.0</version>
     <tag>DRUPAL-8--1-0</tag>
-    <version_major>1</version_major>
-    <version_patch>0</version_patch>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-0-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.0.tar.gz</download_link>
     <date>1250404521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073781824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/core/modules/update/tests/modules/update_test/aaa_update_test.1_2-beta1.xml b/core/modules/update/tests/modules/update_test/aaa_update_test.1_2-beta1.xml
index e166b3af9833..1092e8ff5b1c 100644
--- a/core/modules/update/tests/modules/update_test/aaa_update_test.1_2-beta1.xml
+++ b/core/modules/update/tests/modules/update_test/aaa_update_test.1_2-beta1.xml
@@ -3,10 +3,7 @@
 <title>AAA Update test</title>
 <short_name>aaa_update_test</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>1</recommended_major>
-<supported_majors>1</supported_majors>
-<default_major>1</default_major>
+<supported_branches>8.x-1.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/aaa_update_test</link>
   <terms>
@@ -17,15 +14,10 @@
     <name>aaa_update_test 8.x-1.2-beta1</name>
     <version>8.x-1.2-beta1</version>
     <tag>DRUPAL-8--1-1-beta1</tag>
-    <version_major>1</version_major>
-    <version_patch>2</version_patch>
-    <version_extra>beta1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-2-beta1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.2-beta1.tar.gz</download_link>
     <date>1250412521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073741824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -35,15 +27,10 @@
     <name>aaa_update_test 8.x-1.2-alpha1</name>
     <version>8.x-1.2-alpha1</version>
     <tag>DRUPAL-8--1-1-alpha1</tag>
-    <version_major>1</version_major>
-    <version_patch>2</version_patch>
-    <version_extra>alpha1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-2-alpha1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.2-alpha1.tar.gz</download_link>
     <date>1250413521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073761824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -53,14 +40,10 @@
     <name>aaa_update_test 8.x-1.1</name>
     <version>8.x-1.1</version>
     <tag>DRUPAL-8--1-1</tag>
-    <version_major>1</version_major>
-    <version_patch>1</version_patch>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.1.tar.gz</download_link>
     <date>1250424521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073751824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -70,15 +53,10 @@
     <name>aaa_update_test 8.x-1.1-beta1</name>
     <version>8.x-1.1-beta1</version>
     <tag>DRUPAL-8--1-1-beta1</tag>
-    <version_major>1</version_major>
-    <version_patch>1</version_patch>
-    <version_extra>beta1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-1-beta1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.1-beta1.tar.gz</download_link>
     <date>1250414521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073741824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -88,15 +66,10 @@
     <name>aaa_update_test 8.x-1.1-alpha1</name>
     <version>8.x-1.1-alpha1</version>
     <tag>DRUPAL-8--1-1-alpha1</tag>
-    <version_major>1</version_major>
-    <version_patch>1</version_patch>
-    <version_extra>alpha1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-1-alpha1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.1-alpha1.tar.gz</download_link>
     <date>1250414521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073761824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -106,14 +79,10 @@
     <name>aaa_update_test 8.x-1.0</name>
     <version>8.x-1.0</version>
     <tag>DRUPAL-8--1-0</tag>
-    <version_major>1</version_major>
-    <version_patch>0</version_patch>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-0-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.0.tar.gz</download_link>
     <date>1250404521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073781824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/core/modules/update/tests/modules/update_test/aaa_update_test.1_2.xml b/core/modules/update/tests/modules/update_test/aaa_update_test.1_2.xml
index d3d30934f744..46fab5c66d4c 100644
--- a/core/modules/update/tests/modules/update_test/aaa_update_test.1_2.xml
+++ b/core/modules/update/tests/modules/update_test/aaa_update_test.1_2.xml
@@ -3,10 +3,7 @@
 <title>AAA Update test</title>
 <short_name>aaa_update_test</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>1</recommended_major>
-<supported_majors>1</supported_majors>
-<default_major>1</default_major>
+<supported_branches>8.x-1.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/aaa_update_test</link>
   <terms>
@@ -17,14 +14,10 @@
     <name>aaa_update_test 8.x-1.2</name>
     <version>8.x-1.2</version>
     <tag>DRUPAL-8--1-1</tag>
-    <version_major>1</version_major>
-    <version_patch>2</version_patch>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-2-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.2.tar.gz</download_link>
     <date>1250421521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073751824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -34,15 +27,10 @@
     <name>aaa_update_test 8.x-1.2-beta1</name>
     <version>8.x-1.2-beta1</version>
     <tag>DRUPAL-8--1-1-beta1</tag>
-    <version_major>1</version_major>
-    <version_patch>2</version_patch>
-    <version_extra>beta1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-2-beta1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.2-beta1.tar.gz</download_link>
     <date>1250412521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073741824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -52,15 +40,10 @@
     <name>aaa_update_test 8.x-1.2-alpha1</name>
     <version>8.x-1.2-alpha1</version>
     <tag>DRUPAL-8--1-1-alpha1</tag>
-    <version_major>1</version_major>
-    <version_patch>2</version_patch>
-    <version_extra>alpha1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-2-alpha1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.2-alpha1.tar.gz</download_link>
     <date>1250413521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073761824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -70,14 +53,10 @@
     <name>aaa_update_test 8.x-1.1</name>
     <version>8.x-1.1</version>
     <tag>DRUPAL-8--1-1</tag>
-    <version_major>1</version_major>
-    <version_patch>1</version_patch>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.1.tar.gz</download_link>
     <date>1250424521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073751824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -87,15 +66,10 @@
     <name>aaa_update_test 8.x-1.1-beta1</name>
     <version>8.x-1.1-beta1</version>
     <tag>DRUPAL-8--1-1-beta1</tag>
-    <version_major>1</version_major>
-    <version_patch>1</version_patch>
-    <version_extra>beta1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-1-beta1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.1-beta1.tar.gz</download_link>
     <date>1250414521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073741824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -105,15 +79,10 @@
     <name>aaa_update_test 8.x-1.1-alpha1</name>
     <version>8.x-1.1-alpha1</version>
     <tag>DRUPAL-8--1-1-alpha1</tag>
-    <version_major>1</version_major>
-    <version_patch>1</version_patch>
-    <version_extra>alpha1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-1-alpha1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.1-alpha1.tar.gz</download_link>
     <date>1250414521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073761824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -123,14 +92,10 @@
     <name>aaa_update_test 8.x-1.0</name>
     <version>8.x-1.0</version>
     <tag>DRUPAL-8--1-0</tag>
-    <version_major>1</version_major>
-    <version_patch>0</version_patch>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-0-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.0.tar.gz</download_link>
     <date>1250404521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073781824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/core/modules/update/tests/modules/update_test/aaa_update_test.2_0-alpha1.xml b/core/modules/update/tests/modules/update_test/aaa_update_test.2_0-alpha1.xml
index 799abdbd3dd0..f96d3190881d 100644
--- a/core/modules/update/tests/modules/update_test/aaa_update_test.2_0-alpha1.xml
+++ b/core/modules/update/tests/modules/update_test/aaa_update_test.2_0-alpha1.xml
@@ -3,10 +3,7 @@
 <title>AAA Update test</title>
 <short_name>aaa_update_test</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>1</recommended_major>
-<supported_majors>1,2</supported_majors>
-<default_major>1</default_major>
+<supported_branches>8.x-1.,8.x-2.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/aaa_update_test</link>
   <terms>
@@ -17,15 +14,10 @@
     <name>aaa_update_test 8.x-2.0-alpha1</name>
     <version>8.x-2.0-alpha1</version>
     <tag>DRUPAL-8--2-0</tag>
-    <version_major>2</version_major>
-    <version_patch>0</version_patch>
-    <version_extra>alpha1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-2-0-alpha1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-2.0-alpha1.tar.gz</download_link>
     <date>1250422521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073781824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -35,14 +27,10 @@
     <name>aaa_update_test 8.x-1.2</name>
     <version>8.x-1.2</version>
     <tag>DRUPAL-8--1-1</tag>
-    <version_major>1</version_major>
-    <version_patch>2</version_patch>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-2-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.2.tar.gz</download_link>
     <date>1250421521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073751824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -52,15 +40,10 @@
     <name>aaa_update_test 8.x-1.2-beta1</name>
     <version>8.x-1.2-beta1</version>
     <tag>DRUPAL-8--1-1-beta1</tag>
-    <version_major>1</version_major>
-    <version_patch>2</version_patch>
-    <version_extra>beta1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-2-beta1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.2-beta1.tar.gz</download_link>
     <date>1250412521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073741824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -70,15 +53,10 @@
     <name>aaa_update_test 8.x-1.2-alpha1</name>
     <version>8.x-1.2-alpha1</version>
     <tag>DRUPAL-8--1-1-alpha1</tag>
-    <version_major>1</version_major>
-    <version_patch>2</version_patch>
-    <version_extra>alpha1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-2-alpha1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.2-alpha1.tar.gz</download_link>
     <date>1250413521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073761824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -88,14 +66,10 @@
     <name>aaa_update_test 8.x-1.1</name>
     <version>8.x-1.1</version>
     <tag>DRUPAL-8--1-1</tag>
-    <version_major>1</version_major>
-    <version_patch>1</version_patch>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.1.tar.gz</download_link>
     <date>1250424521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073751824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -105,15 +79,10 @@
     <name>aaa_update_test 8.x-1.1-beta1</name>
     <version>8.x-1.1-beta1</version>
     <tag>DRUPAL-8--1-1-beta1</tag>
-    <version_major>1</version_major>
-    <version_patch>1</version_patch>
-    <version_extra>beta1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-1-beta1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.1-beta1.tar.gz</download_link>
     <date>1250414521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073741824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -123,15 +92,10 @@
     <name>aaa_update_test 8.x-1.1-alpha1</name>
     <version>8.x-1.1-alpha1</version>
     <tag>DRUPAL-8--1-1-alpha1</tag>
-    <version_major>1</version_major>
-    <version_patch>1</version_patch>
-    <version_extra>alpha1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-1-alpha1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.1-alpha1.tar.gz</download_link>
     <date>1250414521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073761824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -141,14 +105,10 @@
     <name>aaa_update_test 8.x-1.0</name>
     <version>8.x-1.0</version>
     <tag>DRUPAL-8--1-0</tag>
-    <version_major>1</version_major>
-    <version_patch>0</version_patch>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-0-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.0.tar.gz</download_link>
     <date>1250404521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073781824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/core/modules/update/tests/modules/update_test/aaa_update_test.2_0-beta1.xml b/core/modules/update/tests/modules/update_test/aaa_update_test.2_0-beta1.xml
index e82a27f051df..de2e03e07b70 100644
--- a/core/modules/update/tests/modules/update_test/aaa_update_test.2_0-beta1.xml
+++ b/core/modules/update/tests/modules/update_test/aaa_update_test.2_0-beta1.xml
@@ -3,10 +3,7 @@
 <title>AAA Update test</title>
 <short_name>aaa_update_test</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>1</recommended_major>
-<supported_majors>1,2</supported_majors>
-<default_major>1</default_major>
+<supported_branches>8.x-1.,8.x-2.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/aaa_update_test</link>
   <terms>
@@ -17,15 +14,10 @@
     <name>aaa_update_test 8.x-2.0-beta1</name>
     <version>8.x-2.0-beta1</version>
     <tag>DRUPAL-8--2-0</tag>
-    <version_major>2</version_major>
-    <version_patch>0</version_patch>
-    <version_extra>beta1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-2-0-beta1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-2.0-beta1.tar.gz</download_link>
-    <date>1250422521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073782824</filesize>
+    <date>1250442521</date>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -35,15 +27,10 @@
     <name>aaa_update_test 8.x-2.0-alpha1</name>
     <version>8.x-2.0-alpha1</version>
     <tag>DRUPAL-8--2-0</tag>
-    <version_major>2</version_major>
-    <version_patch>0</version_patch>
-    <version_extra>alpha1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-2-0-alpha1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-2.0-alpha1.tar.gz</download_link>
     <date>1250422521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073781824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -53,14 +40,10 @@
     <name>aaa_update_test 8.x-1.2</name>
     <version>8.x-1.2</version>
     <tag>DRUPAL-8--1-1</tag>
-    <version_major>1</version_major>
-    <version_patch>2</version_patch>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-2-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.2.tar.gz</download_link>
     <date>1250421521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073751824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -70,15 +53,10 @@
     <name>aaa_update_test 8.x-1.2-beta1</name>
     <version>8.x-1.2-beta1</version>
     <tag>DRUPAL-8--1-1-beta1</tag>
-    <version_major>1</version_major>
-    <version_patch>2</version_patch>
-    <version_extra>beta1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-2-beta1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.2-beta1.tar.gz</download_link>
     <date>1250412521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073741824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -88,15 +66,10 @@
     <name>aaa_update_test 8.x-1.2-alpha1</name>
     <version>8.x-1.2-alpha1</version>
     <tag>DRUPAL-8--1-1-alpha1</tag>
-    <version_major>1</version_major>
-    <version_patch>2</version_patch>
-    <version_extra>alpha1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-2-alpha1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.2-alpha1.tar.gz</download_link>
     <date>1250413521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073761824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -106,14 +79,10 @@
     <name>aaa_update_test 8.x-1.1</name>
     <version>8.x-1.1</version>
     <tag>DRUPAL-8--1-1</tag>
-    <version_major>1</version_major>
-    <version_patch>1</version_patch>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.1.tar.gz</download_link>
     <date>1250424521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073751824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -123,15 +92,10 @@
     <name>aaa_update_test 8.x-1.1-beta1</name>
     <version>8.x-1.1-beta1</version>
     <tag>DRUPAL-8--1-1-beta1</tag>
-    <version_major>1</version_major>
-    <version_patch>1</version_patch>
-    <version_extra>beta1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-1-beta1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.1-beta1.tar.gz</download_link>
     <date>1250414521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073741824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -141,15 +105,10 @@
     <name>aaa_update_test 8.x-1.1-alpha1</name>
     <version>8.x-1.1-alpha1</version>
     <tag>DRUPAL-8--1-1-alpha1</tag>
-    <version_major>1</version_major>
-    <version_patch>1</version_patch>
-    <version_extra>alpha1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-1-alpha1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.1-alpha1.tar.gz</download_link>
     <date>1250414521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073761824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -159,14 +118,10 @@
     <name>aaa_update_test 8.x-1.0</name>
     <version>8.x-1.0</version>
     <tag>DRUPAL-8--1-0</tag>
-    <version_major>1</version_major>
-    <version_patch>0</version_patch>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-0-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.0.tar.gz</download_link>
     <date>1250404521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073781824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/core/modules/update/tests/modules/update_test/aaa_update_test.2_0.xml b/core/modules/update/tests/modules/update_test/aaa_update_test.2_0.xml
index 240f0db4fb38..d4ba2c4f8958 100644
--- a/core/modules/update/tests/modules/update_test/aaa_update_test.2_0.xml
+++ b/core/modules/update/tests/modules/update_test/aaa_update_test.2_0.xml
@@ -3,10 +3,7 @@
 <title>AAA Update test</title>
 <short_name>aaa_update_test</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>1</recommended_major>
-<supported_majors>1,2</supported_majors>
-<default_major>1</default_major>
+<supported_branches>8.x-1.,8.x-2.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/aaa_update_test</link>
   <terms>
@@ -17,14 +14,10 @@
     <name>aaa_update_test 8.x-2.0</name>
     <version>8.x-2.0</version>
     <tag>DRUPAL-8--2-0</tag>
-    <version_major>2</version_major>
-    <version_patch>0</version_patch>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-2-0-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-2.0.tar.gz</download_link>
     <date>1250422521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073781824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -34,15 +27,10 @@
     <name>aaa_update_test 8.x-2.0-beta1</name>
     <version>8.x-2.0-beta1</version>
     <tag>DRUPAL-8--2-0</tag>
-    <version_major>2</version_major>
-    <version_patch>0</version_patch>
-    <version_extra>beta1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-2-0-beta1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-2.0-beta1.tar.gz</download_link>
     <date>1250422521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073782824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -52,15 +40,10 @@
     <name>aaa_update_test 8.x-2.0-alpha1</name>
     <version>8.x-2.0-alpha1</version>
     <tag>DRUPAL-8--2-0</tag>
-    <version_major>2</version_major>
-    <version_patch>0</version_patch>
-    <version_extra>alpha1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-2-0-alpha1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-2.0-alpha1.tar.gz</download_link>
     <date>1250422521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073781824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -70,14 +53,10 @@
     <name>aaa_update_test 8.x-1.2</name>
     <version>8.x-1.2</version>
     <tag>DRUPAL-8--1-1</tag>
-    <version_major>1</version_major>
-    <version_patch>2</version_patch>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-2-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.2.tar.gz</download_link>
     <date>1250421521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073751824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -87,15 +66,10 @@
     <name>aaa_update_test 8.x-1.2-beta1</name>
     <version>8.x-1.2-beta1</version>
     <tag>DRUPAL-8--1-1-beta1</tag>
-    <version_major>1</version_major>
-    <version_patch>2</version_patch>
-    <version_extra>beta1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-2-beta1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.2-beta1.tar.gz</download_link>
     <date>1250412521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073741824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -105,15 +79,10 @@
     <name>aaa_update_test 8.x-1.2-alpha1</name>
     <version>8.x-1.2-alpha1</version>
     <tag>DRUPAL-8--1-1-alpha1</tag>
-    <version_major>1</version_major>
-    <version_patch>2</version_patch>
-    <version_extra>alpha1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-2-alpha1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.2-alpha1.tar.gz</download_link>
     <date>1250413521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073761824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -123,14 +92,10 @@
     <name>aaa_update_test 8.x-1.1</name>
     <version>8.x-1.1</version>
     <tag>DRUPAL-8--1-1</tag>
-    <version_major>1</version_major>
-    <version_patch>1</version_patch>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.1.tar.gz</download_link>
     <date>1250424521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073751824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -140,15 +105,10 @@
     <name>aaa_update_test 8.x-1.1-beta1</name>
     <version>8.x-1.1-beta1</version>
     <tag>DRUPAL-8--1-1-beta1</tag>
-    <version_major>1</version_major>
-    <version_patch>1</version_patch>
-    <version_extra>beta1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-1-beta1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.1-beta1.tar.gz</download_link>
     <date>1250414521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073741824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -158,15 +118,10 @@
     <name>aaa_update_test 8.x-1.1-alpha1</name>
     <version>8.x-1.1-alpha1</version>
     <tag>DRUPAL-8--1-1-alpha1</tag>
-    <version_major>1</version_major>
-    <version_patch>1</version_patch>
-    <version_extra>alpha1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-1-alpha1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.1-alpha1.tar.gz</download_link>
     <date>1250414521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073761824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -176,14 +131,10 @@
     <name>aaa_update_test 8.x-1.0</name>
     <version>8.x-1.0</version>
     <tag>DRUPAL-8--1-0</tag>
-    <version_major>1</version_major>
-    <version_patch>0</version_patch>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-0-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.0.tar.gz</download_link>
     <date>1250404521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073781824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/core/modules/update/tests/modules/update_test/aaa_update_test.sec.8.x-1.1_8.x-1.2.xml b/core/modules/update/tests/modules/update_test/aaa_update_test.sec.8.x-1.1_8.x-1.2.xml
index 560c82bf05b5..21e1642f22ab 100644
--- a/core/modules/update/tests/modules/update_test/aaa_update_test.sec.8.x-1.1_8.x-1.2.xml
+++ b/core/modules/update/tests/modules/update_test/aaa_update_test.sec.8.x-1.1_8.x-1.2.xml
@@ -3,10 +3,7 @@
  <title>AAA Update test</title>
  <short_name>aaa_update_test</short_name>
  <dc:creator>Drupal</dc:creator>
- <api_version>8.x</api_version>
- <recommended_major>1</recommended_major>
- <supported_majors>1</supported_majors>
- <default_major>1</default_major>
+ <supported_branches>8.x-1.</supported_branches>
  <project_status>published</project_status>
  <link>http://example.com/project/aaa_update_test</link>
  <terms>
@@ -17,14 +14,10 @@
    <name>aaa_update_test 8.x-1.2</name>
    <version>8.x-1.2</version>
    <tag>DRUPAL-8--1-2</tag>
-   <version_major>1</version_major>
-   <version_patch>2</version_patch>
    <status>published</status>
    <release_link>http://example.com/aaa_update_test-8-x-1-2-release</release_link>
    <download_link>http://example.com/aaa_update_test-8-x-1-2.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
     <term><name>Release type</name><value>New features</value></term>
     <term><name>Release type</name><value>Bug fixes</value></term>
@@ -35,14 +28,10 @@
    <name>aaa_update_test 8.x-1.1</name>
    <version>8.x-1.1</version>
    <tag>DRUPAL-8--1-1</tag>
-   <version_major>1</version_major>
-   <version_patch>1</version_patch>
    <status>published</status>
    <release_link>http://example.com/aaa_update_test-8-x-1-1-release</release_link>
    <download_link>http://example.com/aaa_update_test-8-x-1-1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
     <term><name>Release type</name><value>New features</value></term>
     <term><name>Release type</name><value>Bug fixes</value></term>
@@ -54,14 +43,10 @@
    <name>aaa_update_test 8.x-1.0</name>
    <version>8.x-1.0</version>
    <tag>DRUPAL-8--1-0</tag>
-   <version_major>1</version_major>
-   <version_patch>0</version_patch>
    <status>published</status>
    <release_link>http://example.com/aaa_update_test-8-x-1-0-release</release_link>
    <download_link>http://example.com/aaa_update_test-8-x-1-0.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
     <term><name>Release type</name><value>New features</value></term>
     <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/core/modules/update/tests/modules/update_test/aaa_update_test.sec.8.x-1.2.xml b/core/modules/update/tests/modules/update_test/aaa_update_test.sec.8.x-1.2.xml
index 0ebb766dd2f6..78060f3dbab2 100644
--- a/core/modules/update/tests/modules/update_test/aaa_update_test.sec.8.x-1.2.xml
+++ b/core/modules/update/tests/modules/update_test/aaa_update_test.sec.8.x-1.2.xml
@@ -3,10 +3,7 @@
  <title>AAA Update test</title>
  <short_name>aaa_update_test</short_name>
  <dc:creator>Drupal</dc:creator>
- <api_version>8.x</api_version>
- <recommended_major>1</recommended_major>
- <supported_majors>1</supported_majors>
- <default_major>1</default_major>
+ <supported_branches>8.x-1.</supported_branches>
  <project_status>published</project_status>
  <link>http://example.com/project/aaa_update_test</link>
  <terms>
@@ -17,14 +14,10 @@
    <name>aaa_update_test 8.x-1.2</name>
    <version>8.x-1.2</version>
    <tag>DRUPAL-8--1-2</tag>
-   <version_major>1</version_major>
-   <version_patch>2</version_patch>
    <status>published</status>
    <release_link>http://example.com/aaa_update_test-8-x-1-2-release</release_link>
    <download_link>http://example.com/aaa_update_test-8-x-1-2.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
     <term><name>Release type</name><value>New features</value></term>
     <term><name>Release type</name><value>Bug fixes</value></term>
@@ -35,14 +28,10 @@
    <name>aaa_update_test 8.x-1.1</name>
    <version>8.x-1.1</version>
    <tag>DRUPAL-8--1-1</tag>
-   <version_major>1</version_major>
-   <version_patch>1</version_patch>
    <status>published</status>
    <release_link>http://example.com/aaa_update_test-8-x-1-1-release</release_link>
    <download_link>http://example.com/aaa_update_test-8-x-1-1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
     <term><name>Release type</name><value>New features</value></term>
     <term><name>Release type</name><value>Bug fixes</value></term>
@@ -53,14 +42,10 @@
    <name>aaa_update_test 8.x-1.0</name>
    <version>8.x-1.0</version>
    <tag>DRUPAL-8--1-0</tag>
-   <version_major>1</version_major>
-   <version_patch>0</version_patch>
    <status>published</status>
    <release_link>http://example.com/aaa_update_test-8-x-1-0-release</release_link>
    <download_link>http://example.com/aaa_update_test-8-x-1-0.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
     <term><name>Release type</name><value>New features</value></term>
     <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/core/modules/update/tests/modules/update_test/aaa_update_test.sec.8.x-1.2_8.x-2.2.xml b/core/modules/update/tests/modules/update_test/aaa_update_test.sec.8.x-1.2_8.x-2.2.xml
index 4910382823e3..038e55e45506 100644
--- a/core/modules/update/tests/modules/update_test/aaa_update_test.sec.8.x-1.2_8.x-2.2.xml
+++ b/core/modules/update/tests/modules/update_test/aaa_update_test.sec.8.x-1.2_8.x-2.2.xml
@@ -3,10 +3,7 @@
  <title>AAA Update test</title>
  <short_name>aaa_update_test</short_name>
  <dc:creator>Drupal</dc:creator>
- <api_version>8.x</api_version>
- <recommended_major>2</recommended_major>
- <supported_majors>1,2</supported_majors>
- <default_major>2</default_major>
+ <supported_branches>8.x-1.,8.x-2.</supported_branches>
  <project_status>published</project_status>
  <link>http://example.com/project/aaa_update_test</link>
  <terms>
@@ -17,15 +14,10 @@
    <name>aaa_update_test 8.x-3.0-beta2</name>
    <version>8.x-3.0-beta2</version>
    <tag>8.x-3.0-beta2</tag>
-   <version_major>3</version_major>
-   <version_patch>0</version_patch>
-   <version_extra>beta2</version_extra>
    <status>published</status>
    <release_link>http://example.com/aaa_update_test-8-x-3-0-beta2-release</release_link>
    <download_link>http://example.com/aaa_update_test-8-x-3-0-beta2.tar.gz</download_link>
    <date>1533298080</date>
-   <mdhash>2387284145e34a19fc45e03c258a2831</mdhash>
-   <filesize>16209911</filesize>
    <terms>
     <term><name>Release type</name><value>Bug fixes</value></term>
     <term><name>Release type</name><value>New features</value></term>
@@ -38,16 +30,11 @@
    <name>aaa_update_test 8.x-3.0-beta1</name>
    <version>8.x-3.0-beta1</version>
    <tag>8.x-3.0-beta1</tag>
-   <version_major>3</version_major>
-   <version_patch>0</version_patch>
-   <version_extra>beta1</version_extra>
    <core_compatibility>^8.1.1</core_compatibility>
    <status>published</status>
    <release_link>http://example.com/aaa_update_test-8-x-3-0-beta1</release_link>
    <download_link>http://example.com/aaa_update_test--8-x-3-0-beta1.tar.gz</download_link>
    <date>1533270485</date>
-   <mdhash>3d70ae568dd8f7100082b8c58bc8d1fe</mdhash>
-   <filesize>16209123</filesize>
    <terms>
     <term><name>Release type</name><value>Insecure</value></term>
     <term><name>Release type</name><value>Bug fixes</value></term>
@@ -61,15 +48,11 @@
    <name>aaa_update_test 8.x-2.2</name>
    <version>8.x-2.2</version>
    <tag>DRUPAL-8--2-2</tag>
-   <version_major>2</version_major>
-   <version_patch>2</version_patch>
    <core_compatibility>^8.1.1</core_compatibility>
    <status>published</status>
    <release_link>http://example.com/aaa_update_test-8-x-2-2-release</release_link>
    <download_link>http://example.com/aaa_update_test-8-x-2-2.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
     <term><name>Release type</name><value>New features</value></term>
     <term><name>Release type</name><value>Bug fixes</value></term>
@@ -80,14 +63,10 @@
    <name>aaa_update_test 8.x-2.1</name>
    <version>8.x-2.1</version>
    <tag>DRUPAL-8--2-1</tag>
-   <version_major>2</version_major>
-   <version_patch>1</version_patch>
    <status>published</status>
    <release_link>http://example.com/aaa_update_test-8-x-2-1-release</release_link>
    <download_link>http://example.com/aaa_update_test-8-x-2-1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
     <term><name>Release type</name><value>New features</value></term>
     <term><name>Release type</name><value>Bug fixes</value></term>
@@ -99,14 +78,10 @@
    <name>aaa_update_test 8.x-2.0</name>
    <version>8.x-2.0</version>
    <tag>DRUPAL-8--2-0</tag>
-   <version_major>2</version_major>
-   <version_patch>0</version_patch>
    <status>published</status>
    <release_link>http://example.com/aaa_update_test-8-x-2-0-release</release_link>
    <download_link>http://example.com/aaa_update_test-8-x-2-0.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
     <term><name>Release type</name><value>New features</value></term>
     <term><name>Release type</name><value>Bug fixes</value></term>
@@ -117,15 +92,11 @@
    <name>aaa_update_test 8.x-1.2</name>
    <version>8.x-1.2</version>
    <tag>DRUPAL-8--1-2</tag>
-   <version_major>1</version_major>
-   <version_patch>2</version_patch>
    <core_compatibility>^8.1.0</core_compatibility>
    <status>published</status>
    <release_link>http://example.com/aaa_update_test-8-x-1-2-release</release_link>
    <download_link>http://example.com/aaa_update_test-8-x-1-2.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
     <term><name>Release type</name><value>New features</value></term>
     <term><name>Release type</name><value>Bug fixes</value></term>
@@ -136,14 +107,10 @@
    <name>aaa_update_test 8.x-1.1</name>
    <version>8.x-1.1</version>
    <tag>DRUPAL-8--1-1</tag>
-   <version_major>1</version_major>
-   <version_patch>1</version_patch>
    <status>published</status>
    <release_link>http://example.com/aaa_update_test-8-x-1-1-release</release_link>
    <download_link>http://example.com/aaa_update_test-8-x-1-1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
     <term><name>Release type</name><value>New features</value></term>
     <term><name>Release type</name><value>Bug fixes</value></term>
@@ -154,14 +121,10 @@
    <name>aaa_update_test 8.x-1.0</name>
    <version>8.x-1.0</version>
    <tag>DRUPAL-8--1-0</tag>
-   <version_major>1</version_major>
-   <version_patch>0</version_patch>
    <status>published</status>
    <release_link>http://example.com/aaa_update_test-8-x-1-0-release</release_link>
    <download_link>http://example.com/aaa_update_test-8-x-1-0.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
     <term><name>Release type</name><value>New features</value></term>
     <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/core/modules/update/tests/modules/update_test/aaa_update_test.sec.8.x-2.2_1.x_secure.xml b/core/modules/update/tests/modules/update_test/aaa_update_test.sec.8.x-2.2_1.x_secure.xml
index a42b58d5c540..a696eacc50ba 100644
--- a/core/modules/update/tests/modules/update_test/aaa_update_test.sec.8.x-2.2_1.x_secure.xml
+++ b/core/modules/update/tests/modules/update_test/aaa_update_test.sec.8.x-2.2_1.x_secure.xml
@@ -3,10 +3,7 @@
  <title>AAA Update test</title>
  <short_name>aaa_update_test</short_name>
  <dc:creator>Drupal</dc:creator>
- <api_version>8.x</api_version>
- <recommended_major>2</recommended_major>
- <supported_majors>1,2</supported_majors>
- <default_major>2</default_major>
+ <supported_branches>8.x-1.,8.x-2.</supported_branches>
  <project_status>published</project_status>
  <link>http://example.com/project/aaa_update_test</link>
  <terms>
@@ -17,14 +14,10 @@
    <name>aaa_update_test 8.x-2.2</name>
    <version>8.x-2.2</version>
    <tag>DRUPAL-8--2-2</tag>
-   <version_major>2</version_major>
-   <version_patch>2</version_patch>
    <status>published</status>
    <release_link>http://example.com/aaa_update_test-8-x-2-2-release</release_link>
    <download_link>http://example.com/aaa_update_test-8-x-2-2.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
     <term><name>Release type</name><value>New features</value></term>
     <term><name>Release type</name><value>Bug fixes</value></term>
@@ -35,14 +28,10 @@
    <name>aaa_update_test 8.x-2.1</name>
    <version>8.x-2.1</version>
    <tag>DRUPAL-8--2-1</tag>
-   <version_major>2</version_major>
-   <version_patch>1</version_patch>
    <status>published</status>
    <release_link>http://example.com/aaa_update_test-8-x-2-1-release</release_link>
    <download_link>http://example.com/aaa_update_test-8-x-2-1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
     <term><name>Release type</name><value>New features</value></term>
     <term><name>Release type</name><value>Bug fixes</value></term>
@@ -54,14 +43,10 @@
    <name>aaa_update_test 8.x-2.0</name>
    <version>8.x-2.0</version>
    <tag>DRUPAL-8--2-0</tag>
-   <version_major>2</version_major>
-   <version_patch>0</version_patch>
    <status>published</status>
    <release_link>http://example.com/aaa_update_test-8-x-2-0-release</release_link>
    <download_link>http://example.com/aaa_update_test-8-x-2-0.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
     <term><name>Release type</name><value>New features</value></term>
     <term><name>Release type</name><value>Bug fixes</value></term>
@@ -72,14 +57,10 @@
    <name>aaa_update_test 8.x-1.2</name>
    <version>8.x-1.2</version>
    <tag>DRUPAL-8--1-2</tag>
-   <version_major>1</version_major>
-   <version_patch>2</version_patch>
    <status>published</status>
    <release_link>http://example.com/aaa_update_test-8-x-1-2-release</release_link>
    <download_link>http://example.com/aaa_update_test-8-x-1-2.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
     <term><name>Release type</name><value>New features</value></term>
     <term><name>Release type</name><value>Bug fixes</value></term>
@@ -89,14 +70,10 @@
    <name>aaa_update_test 8.x-1.1</name>
    <version>8.x-1.1</version>
    <tag>DRUPAL-8--1-1</tag>
-   <version_major>1</version_major>
-   <version_patch>1</version_patch>
    <status>published</status>
    <release_link>http://example.com/aaa_update_test-8-x-1-1-release</release_link>
    <download_link>http://example.com/aaa_update_test-8-x-1-1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
     <term><name>Release type</name><value>New features</value></term>
     <term><name>Release type</name><value>Bug fixes</value></term>
@@ -106,15 +83,11 @@
    <name>aaa_update_test 8.x-1.0</name>
    <version>8.x-1.0</version>
    <tag>DRUPAL-8--1-0</tag>
-   <version_major>1</version_major>
-   <version_patch>0</version_patch>
    <status>published</status>
    <release_link>http://example.com/aaa_update_test-8-x-1-0-release</release_link>
    <download_link>http://example.com/aaa_update_test-8-x-1-0.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
-   <terms>
+  <terms>
     <term><name>Release type</name><value>New features</value></term>
     <term><name>Release type</name><value>Bug fixes</value></term>
    </terms>
diff --git a/core/modules/update/tests/modules/update_test/bbb_update_test.1_0.xml b/core/modules/update/tests/modules/update_test/bbb_update_test.1_0.xml
index 8d705b5f9697..43ebaf14ced0 100644
--- a/core/modules/update/tests/modules/update_test/bbb_update_test.1_0.xml
+++ b/core/modules/update/tests/modules/update_test/bbb_update_test.1_0.xml
@@ -3,10 +3,7 @@
 <title>BBB Update test</title>
 <short_name>bbb_update_test</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>1</recommended_major>
-<supported_majors>1</supported_majors>
-<default_major>1</default_major>
+<supported_branches>8.x-1.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/bbb_update_test</link>
   <terms>
@@ -17,14 +14,10 @@
   <name>bbb_update_test 8.x-1.0</name>
   <version>8.x-1.0</version>
   <tag>DRUPAL-7--1-0</tag>
-  <version_major>1</version_major>
-  <version_patch>0</version_patch>
   <status>published</status>
   <release_link>http://example.com/bbb_update_test-7-x-1-0-release</release_link>
   <download_link>http://example.com/bbb_update_test-8.x-1.0.tar.gz</download_link>
   <date>1250424521</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>1073741824</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/core/modules/update/tests/modules/update_test/ccc_update_test.1_0.xml b/core/modules/update/tests/modules/update_test/ccc_update_test.1_0.xml
index 82764c2c33d5..3076229a4bb1 100644
--- a/core/modules/update/tests/modules/update_test/ccc_update_test.1_0.xml
+++ b/core/modules/update/tests/modules/update_test/ccc_update_test.1_0.xml
@@ -3,10 +3,7 @@
 <title>CCC Update test</title>
 <short_name>ccc_update_test</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>1</recommended_major>
-<supported_majors>1</supported_majors>
-<default_major>1</default_major>
+<supported_branches>8.x-1.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/ccc_update_test</link>
   <terms>
@@ -17,14 +14,10 @@
   <name>ccc_update_test 8.x-1.0</name>
   <version>8.x-1.0</version>
   <tag>DRUPAL-7--1-0</tag>
-  <version_major>1</version_major>
-  <version_patch>0</version_patch>
   <status>published</status>
   <release_link>http://example.com/ccc_update_test-7-x-1-0-release</release_link>
   <download_link>http://example.com/ccc_update_test-8.x-1.0.tar.gz</download_link>
   <date>1250424521</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>1073741824</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/core/modules/update/tests/modules/update_test/drupal.0.0-alpha1.xml b/core/modules/update/tests/modules/update_test/drupal.0.0-alpha1.xml
index e463b72e3da6..3203ef70d5a6 100644
--- a/core/modules/update/tests/modules/update_test/drupal.0.0-alpha1.xml
+++ b/core/modules/update/tests/modules/update_test/drupal.0.0-alpha1.xml
@@ -3,10 +3,7 @@
 <title>Drupal</title>
 <short_name>drupal</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>8</recommended_major>
-<supported_majors>8</supported_majors>
-<default_major>8</default_major>
+<supported_branches>8.0.,8.1.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/drupal</link>
   <terms>
@@ -17,16 +14,10 @@
    <name>Drupal 8.0.0-alpha1</name>
    <version>8.0.0-alpha1</version>
    <tag>DRUPAL-8-0-0-alpha1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>alpha1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-0-alpha1-release</release_link>
    <download_link>http://example.com/drupal-8-0-0-alpha1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/core/modules/update/tests/modules/update_test/drupal.0.0-beta1.xml b/core/modules/update/tests/modules/update_test/drupal.0.0-beta1.xml
index b3dc3bf2aaad..9f36b068a3a8 100644
--- a/core/modules/update/tests/modules/update_test/drupal.0.0-beta1.xml
+++ b/core/modules/update/tests/modules/update_test/drupal.0.0-beta1.xml
@@ -3,10 +3,7 @@
 <title>Drupal</title>
 <short_name>drupal</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>8</recommended_major>
-<supported_majors>8</supported_majors>
-<default_major>8</default_major>
+<supported_branches>8.0.,8.1.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/drupal</link>
   <terms>
@@ -17,16 +14,10 @@
    <name>Drupal 8.0.0-beta1</name>
    <version>8.0.0-beta1</version>
    <tag>DRUPAL-8-0-0-beta1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>beta1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-0-beta1-release</release_link>
    <download_link>http://example.com/drupal-8-0-0-beta1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -36,16 +27,10 @@
   <name>Drupal 8.0.0-alpha1</name>
   <version>8.0.0-alpha1</version>
   <tag>DRUPAL-8-0-0-alpha1</tag>
-  <version_major>8</version_major>
-  <version_minor>0</version_minor>
-  <version_patch>0</version_patch>
-  <version_extra>alpha1</version_extra>
   <status>published</status>
   <release_link>http://example.com/drupal-8-0-0-alpha1-release</release_link>
   <download_link>http://example.com/drupal-8-0-0-alpha1.tar.gz</download_link>
   <date>1250424521</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>1073741824</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/core/modules/update/tests/modules/update_test/drupal.0.0.xml b/core/modules/update/tests/modules/update_test/drupal.0.0.xml
index ac450660d538..391ad92457ff 100644
--- a/core/modules/update/tests/modules/update_test/drupal.0.0.xml
+++ b/core/modules/update/tests/modules/update_test/drupal.0.0.xml
@@ -3,10 +3,7 @@
 <title>Drupal</title>
 <short_name>drupal</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>8</recommended_major>
-<supported_majors>8</supported_majors>
-<default_major>8</default_major>
+<supported_branches>8.0.,8.1.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/drupal</link>
   <terms>
@@ -17,15 +14,10 @@
    <name>Drupal 8.0.0</name>
    <version>8.0.0</version>
    <tag>DRUPAL-8-0-0</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-0-release</release_link>
    <download_link>http://example.com/drupal-8-0-0.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -35,16 +27,10 @@
    <name>Drupal 8.0.0-beta1</name>
    <version>8.0.0-beta1</version>
    <tag>DRUPAL-8-0-0-beta1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>beta1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-0-beta1-release</release_link>
    <download_link>http://example.com/drupal-8-0-0-beta1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -54,16 +40,10 @@
   <name>Drupal 8.0.0-alpha1</name>
   <version>8.0.0-alpha1</version>
   <tag>DRUPAL-8-0-0-alpha1</tag>
-  <version_major>8</version_major>
-  <version_minor>0</version_minor>
-  <version_patch>0</version_patch>
-  <version_extra>alpha1</version_extra>
   <status>published</status>
   <release_link>http://example.com/drupal-8-0-0-alpha1-release</release_link>
   <download_link>http://example.com/drupal-8-0-0-alpha1.tar.gz</download_link>
   <date>1250424521</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>1073741824</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/core/modules/update/tests/modules/update_test/drupal.0.1-alpha1.xml b/core/modules/update/tests/modules/update_test/drupal.0.1-alpha1.xml
index 150136c67d6e..d3345e356128 100644
--- a/core/modules/update/tests/modules/update_test/drupal.0.1-alpha1.xml
+++ b/core/modules/update/tests/modules/update_test/drupal.0.1-alpha1.xml
@@ -3,10 +3,7 @@
 <title>Drupal</title>
 <short_name>drupal</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>8</recommended_major>
-<supported_majors>8</supported_majors>
-<default_major>8</default_major>
+<supported_branches>8.0.,8.1.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/drupal</link>
   <terms>
@@ -17,16 +14,10 @@
    <name>Drupal 8.0.1-alpha1</name>
    <version>8.0.1-alpha1</version>
    <tag>DRUPAL-8-0-1-alpha1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>1</version_patch>
-   <version_extra>alpha1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-1-alpha1-release</release_link>
    <download_link>http://example.com/drupal-8-0-1-alpha1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -36,15 +27,10 @@
    <name>Drupal 8.0.0</name>
    <version>8.0.0</version>
    <tag>DRUPAL-8-0-0</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-0-release</release_link>
    <download_link>http://example.com/drupal-8-0-0.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -54,16 +40,10 @@
    <name>Drupal 8.0.0-beta1</name>
    <version>8.0.0-beta1</version>
    <tag>DRUPAL-8-0-0-beta1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>beta1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-0-beta1-release</release_link>
    <download_link>http://example.com/drupal-8-0-0-beta1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -73,16 +53,10 @@
    <name>Drupal 8.0.0-alpha1</name>
    <version>8.0.0-alpha1</version>
    <tag>DRUPAL-8-0-0-alpha1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>alpha1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-0-alpha1-release</release_link>
    <download_link>http://example.com/drupal-8-0-0-alpha1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/core/modules/update/tests/modules/update_test/drupal.0.1-beta1.xml b/core/modules/update/tests/modules/update_test/drupal.0.1-beta1.xml
index 25c9f7023eb5..1b30ee5ec75e 100644
--- a/core/modules/update/tests/modules/update_test/drupal.0.1-beta1.xml
+++ b/core/modules/update/tests/modules/update_test/drupal.0.1-beta1.xml
@@ -3,10 +3,7 @@
 <title>Drupal</title>
 <short_name>drupal</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>8</recommended_major>
-<supported_majors>8</supported_majors>
-<default_major>8</default_major>
+<supported_branches>8.0.,8.1.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/drupal</link>
   <terms>
@@ -17,16 +14,10 @@
    <name>Drupal 8.0.1-beta1</name>
    <version>8.0.1-beta1</version>
    <tag>DRUPAL-8-0-1-beta1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>1</version_patch>
-   <version_extra>beta1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-1-beta1-release</release_link>
    <download_link>http://example.com/drupal-8-0-1-beta1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -36,16 +27,10 @@
    <name>Drupal 8.0.1-alpha1</name>
    <version>8.0.1-alpha1</version>
    <tag>DRUPAL-8-0-1-alpha1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>1</version_patch>
-   <version_extra>alpha1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-1-alpha1-release</release_link>
    <download_link>http://example.com/drupal-8-0-1-alpha1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -55,15 +40,10 @@
    <name>Drupal 8.0.0</name>
    <version>8.0.0</version>
    <tag>DRUPAL-8-0-0</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-0-release</release_link>
    <download_link>http://example.com/drupal-8-0-0.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -73,16 +53,10 @@
    <name>Drupal 8.0.0-beta1</name>
    <version>8.0.0-beta1</version>
    <tag>DRUPAL-8-0-0-beta1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>beta1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-0-beta1-release</release_link>
    <download_link>http://example.com/drupal-8-0-0-beta1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -92,16 +66,10 @@
    <name>Drupal 8.0.0-alpha1</name>
    <version>8.0.0-alpha1</version>
    <tag>DRUPAL-8-0-0-alpha1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>alpha1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-0-alpha1-release</release_link>
    <download_link>http://example.com/drupal-8-0-0-alpha1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/core/modules/update/tests/modules/update_test/drupal.0.1.xml b/core/modules/update/tests/modules/update_test/drupal.0.1.xml
index ea00c15c9013..49ad1fc075d6 100644
--- a/core/modules/update/tests/modules/update_test/drupal.0.1.xml
+++ b/core/modules/update/tests/modules/update_test/drupal.0.1.xml
@@ -3,10 +3,7 @@
 <title>Drupal</title>
 <short_name>drupal</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>8</recommended_major>
-<supported_majors>8</supported_majors>
-<default_major>8</default_major>
+<supported_branches>8.0.,8.1.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/drupal</link>
   <terms>
@@ -17,15 +14,10 @@
    <name>Drupal 8.0.1</name>
    <version>8.0.1</version>
    <tag>DRUPAL-8-0-1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>1</version_patch>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-1-release</release_link>
    <download_link>http://example.com/drupal-8-0-1.tar.gz</download_link>
    <date>1250424581</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>2147483648</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -35,16 +27,10 @@
    <name>Drupal 8.0.1-beta1</name>
    <version>8.0.1-beta1</version>
    <tag>DRUPAL-8-0-1-beta1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>1</version_patch>
-   <version_extra>beta1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-1-beta1-release</release_link>
    <download_link>http://example.com/drupal-8-0-1-beta1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -54,16 +40,10 @@
    <name>Drupal 8.0.1-alpha1</name>
    <version>8.0.1-alpha1</version>
    <tag>DRUPAL-8-0-1-alpha1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>1</version_patch>
-   <version_extra>alpha1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-1-alpha1-release</release_link>
    <download_link>http://example.com/drupal-8-0-1-alpha1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -73,15 +53,10 @@
    <name>Drupal 8.0.0</name>
    <version>8.0.0</version>
    <tag>DRUPAL-8-0-0</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-0-release</release_link>
    <download_link>http://example.com/drupal-8-0-0.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -91,16 +66,10 @@
    <name>Drupal 8.0.0-beta1</name>
    <version>8.0.0-beta1</version>
    <tag>DRUPAL-8-0-0-beta1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>beta1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-0-beta1-release</release_link>
    <download_link>http://example.com/drupal-8-0-0-beta1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -110,16 +79,10 @@
    <name>Drupal 8.0.0-alpha1</name>
    <version>8.0.0-alpha1</version>
    <tag>DRUPAL-8-0-0-alpha1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>alpha1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-0-alpha1-release</release_link>
    <download_link>http://example.com/drupal-8-0-0-alpha1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/core/modules/update/tests/modules/update_test/drupal.1.0-alpha1.xml b/core/modules/update/tests/modules/update_test/drupal.1.0-alpha1.xml
index fe734a844b32..f21733b7bba3 100644
--- a/core/modules/update/tests/modules/update_test/drupal.1.0-alpha1.xml
+++ b/core/modules/update/tests/modules/update_test/drupal.1.0-alpha1.xml
@@ -3,10 +3,7 @@
 <title>Drupal</title>
 <short_name>drupal</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>8</recommended_major>
-<supported_majors>8</supported_majors>
-<default_major>8</default_major>
+<supported_branches>8.0.,8.1.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/drupal</link>
   <terms>
@@ -17,16 +14,10 @@
    <name>Drupal 8.1.0-alpha1</name>
    <version>8.1.0-alpha1</version>
    <tag>DRUPAL-8-1-0-alpha1</tag>
-   <version_major>8</version_major>
-   <version_minor>1</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>alpha1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-1-0-alpha1-release</release_link>
    <download_link>http://example.com/drupal-8-1-0-alpha1.tar.gz</download_link>
    <date>1250424581</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>2147483648</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -36,15 +27,10 @@
    <name>Drupal 8.0.1</name>
    <version>8.0.1</version>
    <tag>DRUPAL-8-0-1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>1</version_patch>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-1-release</release_link>
    <download_link>http://example.com/drupal-8-0-1.tar.gz</download_link>
    <date>1250424581</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>2147483648</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -54,16 +40,10 @@
    <name>Drupal 8.0.1-beta1</name>
    <version>8.0.1-beta1</version>
    <tag>DRUPAL-8-0-1-beta1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>1</version_patch>
-   <version_extra>beta1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-1-beta1-release</release_link>
    <download_link>http://example.com/drupal-8-0-1-beta1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -73,16 +53,10 @@
    <name>Drupal 8.0.1-alpha1</name>
    <version>8.0.1-alpha1</version>
    <tag>DRUPAL-8-0-1-alpha1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>1</version_patch>
-   <version_extra>alpha1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-1-alpha1-release</release_link>
    <download_link>http://example.com/drupal-8-0-1-alpha1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -92,15 +66,10 @@
    <name>Drupal 8.0.0</name>
    <version>8.0.0</version>
    <tag>DRUPAL-8-0-0</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-0-release</release_link>
    <download_link>http://example.com/drupal-8-0-0.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -110,16 +79,10 @@
    <name>Drupal 8.0.0-beta1</name>
    <version>8.0.0-beta1</version>
    <tag>DRUPAL-8-0-0-beta1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>beta1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-0-beta1-release</release_link>
    <download_link>http://example.com/drupal-8-0-0-beta1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -129,16 +92,10 @@
    <name>Drupal 8.0.0-alpha1</name>
    <version>8.0.0-alpha1</version>
    <tag>DRUPAL-8-0-0-alpha1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>alpha1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-0-alpha1-release</release_link>
    <download_link>http://example.com/drupal-8-0-0-alpha1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/core/modules/update/tests/modules/update_test/drupal.1.0-beta1.xml b/core/modules/update/tests/modules/update_test/drupal.1.0-beta1.xml
index fa65c5e92e15..40588dd870e1 100644
--- a/core/modules/update/tests/modules/update_test/drupal.1.0-beta1.xml
+++ b/core/modules/update/tests/modules/update_test/drupal.1.0-beta1.xml
@@ -3,10 +3,7 @@
 <title>Drupal</title>
 <short_name>drupal</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>8</recommended_major>
-<supported_majors>8</supported_majors>
-<default_major>8</default_major>
+<supported_branches>8.0.,8.1.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/drupal</link>
   <terms>
@@ -17,16 +14,10 @@
    <name>Drupal 8.1.0-beta1</name>
    <version>8.1.0-beta1</version>
    <tag>DRUPAL-8-1-0-beta1</tag>
-   <version_major>8</version_major>
-   <version_minor>1</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>beta1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-1-0-beta1-release</release_link>
    <download_link>http://example.com/drupal-8-1-0-beta1.tar.gz</download_link>
    <date>1250424581</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>2147483648</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -36,16 +27,10 @@
    <name>Drupal 8.1.0-alpha1</name>
    <version>8.1.0-alpha1</version>
    <tag>DRUPAL-8-1-0-alpha1</tag>
-   <version_major>8</version_major>
-   <version_minor>1</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>alpha1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-1-0-alpha1-release</release_link>
    <download_link>http://example.com/drupal-8-1-0-alpha1.tar.gz</download_link>
    <date>1250424581</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>2147483648</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -55,15 +40,10 @@
    <name>Drupal 8.0.1</name>
    <version>8.0.1</version>
    <tag>DRUPAL-8-0-1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>1</version_patch>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-1-release</release_link>
    <download_link>http://example.com/drupal-8-0-1.tar.gz</download_link>
    <date>1250424581</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>2147483648</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -73,16 +53,10 @@
    <name>Drupal 8.0.1-beta1</name>
    <version>8.0.1-beta1</version>
    <tag>DRUPAL-8-0-1-beta1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>1</version_patch>
-   <version_extra>beta1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-1-beta1-release</release_link>
    <download_link>http://example.com/drupal-8-0-1-beta1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -92,16 +66,10 @@
    <name>Drupal 8.0.1-alpha1</name>
    <version>8.0.1-alpha1</version>
    <tag>DRUPAL-8-0-1-alpha1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>1</version_patch>
-   <version_extra>alpha1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-1-alpha1-release</release_link>
    <download_link>http://example.com/drupal-8-0-1-alpha1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -111,15 +79,10 @@
    <name>Drupal 8.0.0</name>
    <version>8.0.0</version>
    <tag>DRUPAL-8-0-0</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-0-release</release_link>
    <download_link>http://example.com/drupal-8-0-0.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -129,16 +92,10 @@
    <name>Drupal 8.0.0-beta1</name>
    <version>8.0.0-beta1</version>
    <tag>DRUPAL-8-0-0-beta1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>beta1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-0-beta1-release</release_link>
    <download_link>http://example.com/drupal-8-0-0-beta1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -148,16 +105,10 @@
    <name>Drupal 8.0.0-alpha1</name>
    <version>8.0.0-alpha1</version>
    <tag>DRUPAL-8-0-0-alpha1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>alpha1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-0-alpha1-release</release_link>
    <download_link>http://example.com/drupal-8-0-0-alpha1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/core/modules/update/tests/modules/update_test/drupal.1.0.xml b/core/modules/update/tests/modules/update_test/drupal.1.0.xml
index 0e6a40c72cdd..bba5cb97e16a 100644
--- a/core/modules/update/tests/modules/update_test/drupal.1.0.xml
+++ b/core/modules/update/tests/modules/update_test/drupal.1.0.xml
@@ -3,10 +3,7 @@
 <title>Drupal</title>
 <short_name>drupal</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>8</recommended_major>
-<supported_majors>8</supported_majors>
-<default_major>8</default_major>
+<supported_branches>8.0.,8.1.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/drupal</link>
   <terms>
@@ -17,15 +14,10 @@
    <name>Drupal 8.1.0</name>
    <version>8.1.0</version>
    <tag>DRUPAL-8-1-0</tag>
-   <version_major>8</version_major>
-   <version_minor>1</version_minor>
-   <version_patch>0</version_patch>
    <status>published</status>
    <release_link>http://example.com/drupal-8-1-0-release</release_link>
    <download_link>http://example.com/drupal-8-1-0.tar.gz</download_link>
    <date>1250424581</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>2147483648</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -35,16 +27,10 @@
    <name>Drupal 8.1.0-beta1</name>
    <version>8.1.0-beta1</version>
    <tag>DRUPAL-8-1-0-beta1</tag>
-   <version_major>8</version_major>
-   <version_minor>1</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>beta1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-1-0-beta1-release</release_link>
    <download_link>http://example.com/drupal-8-1-0-beta1.tar.gz</download_link>
    <date>1250424581</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>2147483648</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -54,16 +40,10 @@
    <name>Drupal 8.1.0-alpha1</name>
    <version>8.1.0-alpha1</version>
    <tag>DRUPAL-8-0-1-alpha1</tag>
-   <version_major>8</version_major>
-   <version_minor>1</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>alpha1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-1-0-alpha1-release</release_link>
    <download_link>http://example.com/drupal-8-1-0-alpha1.tar.gz</download_link>
    <date>1250424581</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>2147483648</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -73,15 +53,10 @@
    <name>Drupal 8.0.1</name>
    <version>8.0.1</version>
    <tag>DRUPAL-8-0-1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>1</version_patch>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-1-release</release_link>
    <download_link>http://example.com/drupal-8-0-1.tar.gz</download_link>
    <date>1250424581</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>2147483648</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -91,16 +66,10 @@
    <name>Drupal 8.0.1-beta1</name>
    <version>8.0.1-beta1</version>
    <tag>DRUPAL-8-0-1-beta1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>1</version_patch>
-   <version_extra>beta1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-1-beta1-release</release_link>
    <download_link>http://example.com/drupal-8-0-1-beta1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -110,16 +79,10 @@
    <name>Drupal 8.0.1-alpha1</name>
    <version>8.0.1-alpha1</version>
    <tag>DRUPAL-8-0-1-alpha1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>1</version_patch>
-   <version_extra>alpha1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-1-alpha1-release</release_link>
    <download_link>http://example.com/drupal-8-0-1-alpha1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -129,15 +92,10 @@
    <name>Drupal 8.0.0</name>
    <version>8.0.0</version>
    <tag>DRUPAL-8-0-0</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-0-release</release_link>
    <download_link>http://example.com/drupal-8-0-0.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -147,16 +105,10 @@
    <name>Drupal 8.0.0-beta1</name>
    <version>8.0.0-beta1</version>
    <tag>DRUPAL-8-0-0-beta1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>beta1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-0-beta1-release</release_link>
    <download_link>http://example.com/drupal-8-0-0-beta1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -166,16 +118,10 @@
    <name>Drupal 8.0.0-alpha1</name>
    <version>8.0.0-alpha1</version>
    <tag>DRUPAL-8-0-0-alpha1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>alpha1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-0-alpha1-release</release_link>
    <download_link>http://example.com/drupal-8-0-0-alpha1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/core/modules/update/tests/modules/update_test/drupal.1.1-alpha1.xml b/core/modules/update/tests/modules/update_test/drupal.1.1-alpha1.xml
index 0356c8d97892..63d64ad4e22a 100644
--- a/core/modules/update/tests/modules/update_test/drupal.1.1-alpha1.xml
+++ b/core/modules/update/tests/modules/update_test/drupal.1.1-alpha1.xml
@@ -3,10 +3,7 @@
 <title>Drupal</title>
 <short_name>drupal</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>8</recommended_major>
-<supported_majors>8</supported_majors>
-<default_major>8</default_major>
+<supported_branches>8.0.,8.1.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/drupal</link>
   <terms>
@@ -17,16 +14,10 @@
    <name>Drupal 8.1.1-alpha1</name>
    <version>8.1.1-alpha1</version>
    <tag>DRUPAL-8-1-1-alpha1</tag>
-   <version_major>8</version_major>
-   <version_minor>1</version_minor>
-   <version_patch>1</version_patch>
-   <version_extra>alpha1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-1-1-alpha1-release</release_link>
    <download_link>http://example.com/drupal-8-1-1-alpha1.tar.gz</download_link>
    <date>1250424581</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>2147483648</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -36,15 +27,10 @@
    <name>Drupal 8.1.0</name>
    <version>8.1.0</version>
    <tag>DRUPAL-8-1-0</tag>
-   <version_major>8</version_major>
-   <version_minor>1</version_minor>
-   <version_patch>0</version_patch>
    <status>published</status>
    <release_link>http://example.com/drupal-8-1-0-release</release_link>
    <download_link>http://example.com/drupal-8-1-0.tar.gz</download_link>
    <date>1250424581</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>2147483648</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -54,16 +40,10 @@
    <name>Drupal 8.1.0-beta1</name>
    <version>8.1.0-beta1</version>
    <tag>DRUPAL-8-0-1-beta1</tag>
-   <version_major>8</version_major>
-   <version_minor>1</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>beta1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-1-0-beta1-release</release_link>
    <download_link>http://example.com/drupal-8-1-0-beta1.tar.gz</download_link>
    <date>1250424581</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>2147483648</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -73,16 +53,10 @@
    <name>Drupal 8.1.0-alpha1</name>
    <version>8.1.0-alpha1</version>
    <tag>DRUPAL-8-1-0-alpha1</tag>
-   <version_major>8</version_major>
-   <version_minor>1</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>alpha1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-1-0-alpha1-release</release_link>
    <download_link>http://example.com/drupal-8-1-0-alpha1.tar.gz</download_link>
    <date>1250424581</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>2147483648</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -92,15 +66,10 @@
    <name>Drupal 8.0.1</name>
    <version>8.0.1</version>
    <tag>DRUPAL-8-0-1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>1</version_patch>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-1-release</release_link>
    <download_link>http://example.com/drupal-8-0-1.tar.gz</download_link>
    <date>1250424581</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>2147483648</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -110,16 +79,10 @@
    <name>Drupal 8.0.1-beta1</name>
    <version>8.0.1-beta1</version>
    <tag>DRUPAL-8-0-1-beta1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>1</version_patch>
-   <version_extra>beta1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-1-beta1-release</release_link>
    <download_link>http://example.com/drupal-8-0-1-beta1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -129,16 +92,10 @@
    <name>Drupal 8.0.1-alpha1</name>
    <version>8.0.1-alpha1</version>
    <tag>DRUPAL-8-0-1-alpha1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>1</version_patch>
-   <version_extra>alpha1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-1-alpha1-release</release_link>
    <download_link>http://example.com/drupal-8-0-1-alpha1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -148,15 +105,10 @@
    <name>Drupal 8.0.0</name>
    <version>8.0.0</version>
    <tag>DRUPAL-8-0-0</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-0-release</release_link>
    <download_link>http://example.com/drupal-8-0-0.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -166,16 +118,10 @@
    <name>Drupal 8.0.0-beta1</name>
    <version>8.0.0-beta1</version>
    <tag>DRUPAL-8-0-0-beta1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>beta1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-0-beta1-release</release_link>
    <download_link>http://example.com/drupal-8-0-0-beta1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -185,16 +131,10 @@
    <name>Drupal 8.0.0-alpha1</name>
    <version>8.0.0-alpha1</version>
    <tag>DRUPAL-8-0-0-alpha1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>alpha1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-0-alpha1-release</release_link>
    <download_link>http://example.com/drupal-8-0-0-alpha1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/core/modules/update/tests/modules/update_test/drupal.1.1-beta1.xml b/core/modules/update/tests/modules/update_test/drupal.1.1-beta1.xml
index abeef7ea4162..0122c4f3256a 100644
--- a/core/modules/update/tests/modules/update_test/drupal.1.1-beta1.xml
+++ b/core/modules/update/tests/modules/update_test/drupal.1.1-beta1.xml
@@ -3,10 +3,7 @@
 <title>Drupal</title>
 <short_name>drupal</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>8</recommended_major>
-<supported_majors>8</supported_majors>
-<default_major>8</default_major>
+<supported_branches>8.0.,8.1.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/drupal</link>
   <terms>
@@ -17,16 +14,10 @@
    <name>Drupal 8.1.1-beta1</name>
    <version>8.1.1-beta1</version>
    <tag>DRUPAL-8-1-1-beta1</tag>
-   <version_major>8</version_major>
-   <version_minor>1</version_minor>
-   <version_patch>1</version_patch>
-   <version_extra>beta1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-1-1-beta1-release</release_link>
    <download_link>http://example.com/drupal-8-1-1-beta1.tar.gz</download_link>
    <date>1250424581</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>2147483648</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -36,16 +27,10 @@
    <name>Drupal 8.1.1-alpha1</name>
    <version>8.1.1-alpha1</version>
    <tag>DRUPAL-8-1-1-alpha1</tag>
-   <version_major>8</version_major>
-   <version_minor>1</version_minor>
-   <version_patch>1</version_patch>
-   <version_extra>alpha1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-1-1-alpha1-release</release_link>
    <download_link>http://example.com/drupal-8-1-1-alpha1.tar.gz</download_link>
    <date>1250424581</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>2147483648</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -55,15 +40,10 @@
    <name>Drupal 8.1.0</name>
    <version>8.1.0</version>
    <tag>DRUPAL-8-1-0</tag>
-   <version_major>8</version_major>
-   <version_minor>1</version_minor>
-   <version_patch>0</version_patch>
    <status>published</status>
    <release_link>http://example.com/drupal-8-1-0-release</release_link>
    <download_link>http://example.com/drupal-8-1-0.tar.gz</download_link>
    <date>1250424581</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>2147483648</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -73,16 +53,10 @@
    <name>Drupal 8.1.0-beta1</name>
    <version>8.1.0-beta1</version>
    <tag>DRUPAL-8-0-1-beta1</tag>
-   <version_major>8</version_major>
-   <version_minor>1</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>beta1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-1-0-beta1-release</release_link>
    <download_link>http://example.com/drupal-8-1-0-beta1.tar.gz</download_link>
    <date>1250424581</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>2147483648</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -92,16 +66,10 @@
    <name>Drupal 8.1.0-alpha1</name>
    <version>8.1.0-alpha1</version>
    <tag>DRUPAL-8-1-0-alpha1</tag>
-   <version_major>8</version_major>
-   <version_minor>1</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>alpha1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-1-0-alpha1-release</release_link>
    <download_link>http://example.com/drupal-8-1-0-alpha1.tar.gz</download_link>
    <date>1250424581</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>2147483648</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -111,15 +79,10 @@
    <name>Drupal 8.0.1</name>
    <version>8.0.1</version>
    <tag>DRUPAL-8-0-1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>1</version_patch>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-1-release</release_link>
    <download_link>http://example.com/drupal-8-0-1.tar.gz</download_link>
    <date>1250424581</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>2147483648</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -129,16 +92,10 @@
    <name>Drupal 8.0.1-beta1</name>
    <version>8.0.1-beta1</version>
    <tag>DRUPAL-8-0-1-beta1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>1</version_patch>
-   <version_extra>beta1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-1-beta1-release</release_link>
    <download_link>http://example.com/drupal-8-0-1-beta1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -148,16 +105,10 @@
    <name>Drupal 8.0.1-alpha1</name>
    <version>8.0.1-alpha1</version>
    <tag>DRUPAL-8-0-1-alpha1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>1</version_patch>
-   <version_extra>alpha1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-1-alpha1-release</release_link>
    <download_link>http://example.com/drupal-8-0-1-alpha1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -167,15 +118,10 @@
    <name>Drupal 8.0.0</name>
    <version>8.0.0</version>
    <tag>DRUPAL-8-0-0</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-0-release</release_link>
    <download_link>http://example.com/drupal-8-0-0.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -185,16 +131,10 @@
    <name>Drupal 8.0.0-beta1</name>
    <version>8.0.0-beta1</version>
    <tag>DRUPAL-8-0-0-beta1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>beta1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-0-beta1-release</release_link>
    <download_link>http://example.com/drupal-8-0-0-beta1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -204,16 +144,10 @@
    <name>Drupal 8.0.0-alpha1</name>
    <version>8.0.0-alpha1</version>
    <tag>DRUPAL-8-0-0-alpha1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>alpha1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-0-alpha1-release</release_link>
    <download_link>http://example.com/drupal-8-0-0-alpha1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/core/modules/update/tests/modules/update_test/drupal.1.1.xml b/core/modules/update/tests/modules/update_test/drupal.1.1.xml
index a588bdc466a4..e295cb61528f 100644
--- a/core/modules/update/tests/modules/update_test/drupal.1.1.xml
+++ b/core/modules/update/tests/modules/update_test/drupal.1.1.xml
@@ -3,10 +3,7 @@
 <title>Drupal</title>
 <short_name>drupal</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>8</recommended_major>
-<supported_majors>8</supported_majors>
-<default_major>8</default_major>
+<supported_branches>8.0.,8.1.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/drupal</link>
   <terms>
@@ -17,15 +14,10 @@
    <name>Drupal 8.1.1</name>
    <version>8.1.1</version>
    <tag>DRUPAL-8-1-1</tag>
-   <version_major>8</version_major>
-   <version_minor>1</version_minor>
-   <version_patch>1</version_patch>
    <status>published</status>
    <release_link>http://example.com/drupal-8-1-1-release</release_link>
    <download_link>http://example.com/drupal-8-1-1.tar.gz</download_link>
    <date>1250424581</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>2147483648</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -35,16 +27,10 @@
    <name>Drupal 8.1.1-beta1</name>
    <version>8.1.1-beta1</version>
    <tag>DRUPAL-8-1-1-beta1</tag>
-   <version_major>8</version_major>
-   <version_minor>1</version_minor>
-   <version_patch>1</version_patch>
-   <version_extra>beta1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-1-1-beta1-release</release_link>
    <download_link>http://example.com/drupal-8-1-1-beta1.tar.gz</download_link>
    <date>1250424581</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>2147483648</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -54,16 +40,10 @@
    <name>Drupal 8.1.1-alpha1</name>
    <version>8.1.1-alpha1</version>
    <tag>DRUPAL-8-1-1-alpha1</tag>
-   <version_major>8</version_major>
-   <version_minor>1</version_minor>
-   <version_patch>1</version_patch>
-   <version_extra>alpha1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-1-1-alpha1-release</release_link>
    <download_link>http://example.com/drupal-8-1-1-alpha1.tar.gz</download_link>
    <date>1250424581</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>2147483648</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -73,15 +53,10 @@
    <name>Drupal 8.1.0</name>
    <version>8.1.0</version>
    <tag>DRUPAL-8-1-0</tag>
-   <version_major>8</version_major>
-   <version_minor>1</version_minor>
-   <version_patch>0</version_patch>
    <status>published</status>
    <release_link>http://example.com/drupal-8-1-0-release</release_link>
    <download_link>http://example.com/drupal-8-1-0.tar.gz</download_link>
    <date>1250424581</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>2147483648</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -91,16 +66,10 @@
    <name>Drupal 8.1.0-beta1</name>
    <version>8.1.0-beta1</version>
    <tag>DRUPAL-8-0-1-beta1</tag>
-   <version_major>8</version_major>
-   <version_minor>1</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>beta1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-1-0-beta1-release</release_link>
    <download_link>http://example.com/drupal-8-1-0-beta1.tar.gz</download_link>
    <date>1250424581</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>2147483648</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -110,16 +79,10 @@
    <name>Drupal 8.1.0-alpha1</name>
    <version>8.1.0-alpha1</version>
    <tag>DRUPAL-8-1-0-alpha1</tag>
-   <version_major>8</version_major>
-   <version_minor>1</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>alpha1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-1-0-alpha1-release</release_link>
    <download_link>http://example.com/drupal-8-1-0-alpha1.tar.gz</download_link>
    <date>1250424581</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>2147483648</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -129,15 +92,10 @@
    <name>Drupal 8.0.1</name>
    <version>8.0.1</version>
    <tag>DRUPAL-8-0-1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>1</version_patch>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-1-release</release_link>
    <download_link>http://example.com/drupal-8-0-1.tar.gz</download_link>
    <date>1250424581</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>2147483648</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -147,16 +105,10 @@
    <name>Drupal 8.0.1-beta1</name>
    <version>8.0.1-beta1</version>
    <tag>DRUPAL-8-0-1-beta1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>1</version_patch>
-   <version_extra>beta1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-1-beta1-release</release_link>
    <download_link>http://example.com/drupal-8-0-1-beta1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -166,16 +118,10 @@
    <name>Drupal 8.0.1-alpha1</name>
    <version>8.0.1-alpha1</version>
    <tag>DRUPAL-8-0-1-alpha1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>1</version_patch>
-   <version_extra>alpha1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-1-alpha1-release</release_link>
    <download_link>http://example.com/drupal-8-0-1-alpha1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -185,15 +131,10 @@
    <name>Drupal 8.0.0</name>
    <version>8.0.0</version>
    <tag>DRUPAL-8-0-0</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-0-release</release_link>
    <download_link>http://example.com/drupal-8-0-0.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -203,16 +144,10 @@
    <name>Drupal 8.0.0-beta1</name>
    <version>8.0.0-beta1</version>
    <tag>DRUPAL-8-0-0-beta1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>beta1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-0-beta1-release</release_link>
    <download_link>http://example.com/drupal-8-0-0-beta1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -222,16 +157,10 @@
    <name>Drupal 8.0.0-alpha1</name>
    <version>8.0.0-alpha1</version>
    <tag>DRUPAL-8-0-0-alpha1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>alpha1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-0-alpha1-release</release_link>
    <download_link>http://example.com/drupal-8-0-0-alpha1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/core/modules/update/tests/modules/update_test/drupal.9.xml b/core/modules/update/tests/modules/update_test/drupal.9.xml
index c17b426a7502..e5fd89e84f87 100644
--- a/core/modules/update/tests/modules/update_test/drupal.9.xml
+++ b/core/modules/update/tests/modules/update_test/drupal.9.xml
@@ -3,10 +3,7 @@
 <title>Drupal</title>
 <short_name>drupal</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>9.x</api_version>
-<recommended_major>9</recommended_major>
-<supported_majors>9</supported_majors>
-<default_major>9</default_major>
+<supported_branches>9.0.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/drupal</link>
   <terms>
@@ -17,15 +14,10 @@
    <name>Drupal 9.0.0</name>
    <version>9.0.0</version>
    <tag>DRUPAL-9-0-0</tag>
-   <version_major>9</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
    <status>published</status>
    <release_link>http://example.com/drupal-9-0-0-release</release_link>
    <download_link>http://example.com/drupal-9-0-0.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/core/modules/update/tests/modules/update_test/drupal.dev.xml b/core/modules/update/tests/modules/update_test/drupal.dev.xml
index 4ab26bd2db6e..55a5c66c7acf 100644
--- a/core/modules/update/tests/modules/update_test/drupal.dev.xml
+++ b/core/modules/update/tests/modules/update_test/drupal.dev.xml
@@ -3,10 +3,7 @@
 <title>Drupal</title>
 <short_name>drupal</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>8</recommended_major>
-<supported_majors>8</supported_majors>
-<default_major>8</default_major>
+<supported_branches>8.0.,8.1.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/drupal</link>
   <terms>
@@ -17,15 +14,10 @@
   <name>Drupal 8.0.0</name>
   <version>8.0.0</version>
   <tag>DRUPAL-8-0-0</tag>
-  <version_major>8</version_major>
-  <version_minor>0</version_minor>
-  <version_patch>0</version_patch>
   <status>published</status>
   <release_link>http://example.com/drupal-8-0-0-release</release_link>
   <download_link>http://example.com/drupal-8-0-0.tar.gz</download_link>
   <date>1250424521</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>1073741824</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
@@ -35,15 +27,10 @@
   <name>Drupal 8.0.x-dev</name>
   <version>8.0.x-dev</version>
   <tag>DRUPAL-8-0</tag>
-  <version_major>8</version_major>
-  <version_minor>0</version_minor>
-  <version_extra>dev</version_extra>
   <status>published</status>
   <release_link>http://example.com/drupal-8-0-x-dev-release</release_link>
   <download_link>http://example.com/drupal-8.0.x-dev.tar.gz</download_link>
   <date>1250424581</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>2147483648</filesize>
   <terms>
    <term><name>Release type</name><value>Bug fixes</value></term>
   </terms>
diff --git a/core/modules/update/tests/modules/update_test/drupal.sec.0.1_0.2.xml b/core/modules/update/tests/modules/update_test/drupal.sec.0.1_0.2.xml
index ba954ae42792..17a9b06f76b7 100644
--- a/core/modules/update/tests/modules/update_test/drupal.sec.0.1_0.2.xml
+++ b/core/modules/update/tests/modules/update_test/drupal.sec.0.1_0.2.xml
@@ -3,10 +3,7 @@
 <title>Drupal</title>
 <short_name>drupal</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>8</recommended_major>
-<supported_majors>8</supported_majors>
-<default_major>8</default_major>
+<supported_branches>8.0.,8.1.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/drupal</link>
   <terms>
@@ -17,15 +14,10 @@
   <name>Drupal 8.0.2</name>
   <version>8.0.2</version>
   <tag>DRUPAL-8-0-2</tag>
-  <version_major>8</version_major>
-  <version_minor>0</version_minor>
-  <version_patch>2</version_patch>
   <status>published</status>
   <release_link>http://example.com/drupal-8-0-2-release</release_link>
   <download_link>http://example.com/drupal-8-0-2.tar.gz</download_link>
   <date>1250424641</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>4294967296</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
@@ -36,15 +28,10 @@
   <name>Drupal 8.0.1</name>
   <version>8.0.1</version>
   <tag>DRUPAL-8-0-1</tag>
-  <version_major>8</version_major>
-  <version_minor>0</version_minor>
-  <version_patch>1</version_patch>
   <status>published</status>
   <release_link>http://example.com/drupal-8-0-1-release</release_link>
   <download_link>http://example.com/drupal-8-0-1.tar.gz</download_link>
   <date>1250424581</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>2147483648</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
@@ -56,15 +43,10 @@
   <name>Drupal 8.0.0</name>
   <version>8.0.0</version>
   <tag>DRUPAL-8-0-0</tag>
-  <version_major>8</version_major>
-  <version_minor>0</version_minor>
-  <version_patch>0</version_patch>
   <status>published</status>
   <release_link>http://example.com/drupal-8-0-0-release</release_link>
   <download_link>http://example.com/drupal-8-0-0.tar.gz</download_link>
   <date>1250424521</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>1073741824</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/core/modules/update/tests/modules/update_test/drupal.sec.0.2-rc2-b.xml b/core/modules/update/tests/modules/update_test/drupal.sec.0.2-rc2-b.xml
index a971ca73ebe2..e3e8f6ab72b9 100644
--- a/core/modules/update/tests/modules/update_test/drupal.sec.0.2-rc2-b.xml
+++ b/core/modules/update/tests/modules/update_test/drupal.sec.0.2-rc2-b.xml
@@ -3,10 +3,7 @@
 <title>Drupal</title>
 <short_name>drupal</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>8</recommended_major>
-<supported_majors>8</supported_majors>
-<default_major>8</default_major>
+<supported_branches>8.0.,8.1.,8.2.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/drupal</link>
   <terms>
@@ -17,16 +14,10 @@
   <name>drupal 8.2.0-rc2</name>
   <version>8.2.0-rc2</version>
   <tag>8.2.0-rc2</tag>
-  <version_major>8</version_major>
-  <version_minor>2</version_minor>
-  <version_patch>0</version_patch>
-  <version_extra>rc2</version_extra>
   <status>published</status>
   <release_link>http://example.com/drupal-8-2-0-rc2-release</release_link>
   <download_link>http://example.com/drupal-8-2-0-rc2.tar.gz</download_link>
   <date>1533298080</date>
-  <mdhash>2387284145e34a19fc45e03c258a2831</mdhash>
-  <filesize>16209911</filesize>
   <terms>
    <term><name>Release type</name><value>Bug fixes</value></term>
    <term><name>Release type</name><value>New features</value></term>
@@ -39,16 +30,10 @@
   <name>drupal 8.2.0-rc1</name>
   <version>8.2.0-rc1</version>
   <tag>8.2.0-rc1</tag>
-  <version_major>8</version_major>
-  <version_minor>2</version_minor>
-  <version_patch>0</version_patch>
-  <version_extra>rc1</version_extra>
   <status>published</status>
   <release_link>http://example.com/drupal-8-2-0-rc1-release</release_link>
   <download_link>http://example.com/drupal-8-2-0-rc1.tar.gz</download_link>
   <date>1533270485</date>
-  <mdhash>3d70ae568dd8f7100082b8c58bc8d1fe</mdhash>
-  <filesize>16209123</filesize>
   <terms>
    <term><name>Release type</name><value>Bug fixes</value></term>
    <term><name>Release type</name><value>New features</value></term>
@@ -61,16 +46,10 @@
   <name>drupal 8.2.0-beta2</name>
   <version>8.2.0-beta2</version>
   <tag>8.2.0-beta2</tag>
-  <version_major>8</version_major>
-  <version_minor>2</version_minor>
-  <version_patch>0</version_patch>
-  <version_extra>beta2</version_extra>
   <status>published</status>
   <release_link>http://example.com/drupal-8-2-0-beta2-release</release_link>
   <download_link>http://example.com/drupal-8-2-0-beta2.tar.gz</download_link>
   <date>1533298080</date>
-  <mdhash>2387284145e34a19fc45e03c258a2831</mdhash>
-  <filesize>16209911</filesize>
   <terms>
    <term><name>Release type</name><value>Bug fixes</value></term>
    <term><name>Release type</name><value>New features</value></term>
@@ -83,16 +62,10 @@
   <name>drupal 8.2.0-beta1</name>
   <version>8.2.0-beta1</version>
   <tag>8.2.0-beta1</tag>
-  <version_major>8</version_major>
-  <version_minor>2</version_minor>
-  <version_patch>0</version_patch>
-  <version_extra>beta1</version_extra>
   <status>published</status>
   <release_link>http://example.com/drupal-8-2-0-beta1-release</release_link>
   <download_link>http://example.com/drupal-8-2-0-beta1.tar.gz</download_link>
   <date>1533270485</date>
-  <mdhash>3d70ae568dd8f7100082b8c58bc8d1fe</mdhash>
-  <filesize>16209123</filesize>
   <terms>
    <term><name>Release type</name><value>Bug fixes</value></term>
    <term><name>Release type</name><value>New features</value></term>
@@ -105,16 +78,10 @@
   <name>drupal 8.2.0-alpha2</name>
   <version>8.2.0-alpha2</version>
   <tag>8.2.0-alpha2</tag>
-  <version_major>8</version_major>
-  <version_minor>2</version_minor>
-  <version_patch>0</version_patch>
-  <version_extra>alpha2</version_extra>
   <status>published</status>
   <release_link>http://example.com/drupal-8-2-0-alpha2-release</release_link>
   <download_link>http://example.com/drupal-8-2-0-alpha2.tar.gz</download_link>
   <date>1533298080</date>
-  <mdhash>2387284145e34a19fc45e03c258a2831</mdhash>
-  <filesize>16209911</filesize>
   <terms>
    <term><name>Release type</name><value>Bug fixes</value></term>
    <term><name>Release type</name><value>New features</value></term>
@@ -127,16 +94,10 @@
   <name>drupal 8.2.0-alpha1</name>
   <version>8.2.0-alpha1</version>
   <tag>8.2.0-alpha1</tag>
-  <version_major>8</version_major>
-  <version_minor>2</version_minor>
-  <version_patch>0</version_patch>
-  <version_extra>alpha1</version_extra>
   <status>published</status>
   <release_link>http://example.com/drupal-8.2.0-alpha1</release_link>
   <download_link>http://example.com/drupal-8-2-0-alpha1.tar.gz</download_link>
   <date>1533270485</date>
-  <mdhash>3d70ae568dd8f7100082b8c58bc8d1fe</mdhash>
-  <filesize>16209123</filesize>
   <terms>
    <term><name>Release type</name><value>Bug fixes</value></term>
    <term><name>Release type</name><value>New features</value></term>
@@ -149,15 +110,10 @@
   <name>Drupal 8.1.2</name>
   <version>8.1.2</version>
   <tag>DRUPAL-8-1-2</tag>
-  <version_major>8</version_major>
-  <version_minor>1</version_minor>
-  <version_patch>2</version_patch>
   <status>published</status>
   <release_link>http://example.com/drupal-8-1-2-release</release_link>
   <download_link>http://example.com/drupal-8-1-2.tar.gz</download_link>
   <date>1250424526</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>4294967296</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
@@ -168,15 +124,10 @@
   <name>Drupal 8.1.1</name>
   <version>8.1.1</version>
   <tag>DRUPAL-8-1-1</tag>
-  <version_major>8</version_major>
-  <version_minor>1</version_minor>
-  <version_patch>1</version_patch>
   <status>published</status>
   <release_link>http://example.com/drupal-8-1-1-release</release_link>
   <download_link>http://example.com/drupal-8-1-1.tar.gz</download_link>
   <date>1250424525</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>2147483648</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
@@ -187,15 +138,10 @@
   <name>Drupal 8.1.0</name>
   <version>8.1.0</version>
   <tag>DRUPAL-8-1-0</tag>
-  <version_major>8</version_major>
-  <version_minor>1</version_minor>
-  <version_patch>0</version_patch>
   <status>published</status>
   <release_link>http://example.com/drupal-8-1-0-release</release_link>
   <download_link>http://example.com/drupal-8-1-0.tar.gz</download_link>
   <date>1250424524</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>1073741824</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
@@ -206,15 +152,10 @@
   <name>Drupal 8.0.2</name>
   <version>8.0.2</version>
   <tag>DRUPAL-8-0-2</tag>
-  <version_major>8</version_major>
-  <version_minor>0</version_minor>
-  <version_patch>2</version_patch>
   <status>published</status>
   <release_link>http://example.com/drupal-8-0-2-release</release_link>
   <download_link>http://example.com/drupal-8-0-2.tar.gz</download_link>
   <date>1250424523</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>4294967296</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
@@ -225,15 +166,10 @@
   <name>Drupal 8.0.1</name>
   <version>8.0.1</version>
   <tag>DRUPAL-8-0-1</tag>
-  <version_major>8</version_major>
-  <version_minor>0</version_minor>
-  <version_patch>1</version_patch>
   <status>published</status>
   <release_link>http://example.com/drupal-8-0-1-release</release_link>
   <download_link>http://example.com/drupal-8-0-1.tar.gz</download_link>
   <date>1250424522</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>2147483648</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
@@ -244,15 +180,10 @@
   <name>Drupal 8.0.0</name>
   <version>8.0.0</version>
   <tag>DRUPAL-8-0-0</tag>
-  <version_major>8</version_major>
-  <version_minor>0</version_minor>
-  <version_patch>0</version_patch>
   <status>published</status>
   <release_link>http://example.com/drupal-8-0-0-release</release_link>
   <download_link>http://example.com/drupal-8-0-0.tar.gz</download_link>
   <date>1250424521</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>1073741824</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/core/modules/update/tests/modules/update_test/drupal.sec.0.2-rc2.xml b/core/modules/update/tests/modules/update_test/drupal.sec.0.2-rc2.xml
index bc422deb6f29..dd723e984858 100644
--- a/core/modules/update/tests/modules/update_test/drupal.sec.0.2-rc2.xml
+++ b/core/modules/update/tests/modules/update_test/drupal.sec.0.2-rc2.xml
@@ -3,10 +3,7 @@
 <title>Drupal</title>
 <short_name>drupal</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>8</recommended_major>
-<supported_majors>8</supported_majors>
-<default_major>8</default_major>
+<supported_branches>8.0.,8.1.,8.2.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/drupal</link>
   <terms>
@@ -17,16 +14,10 @@
   <name>drupal 8.2.0-rc2</name>
   <version>8.2.0-rc2</version>
   <tag>8.2.0-rc2</tag>
-  <version_major>8</version_major>
-  <version_minor>2</version_minor>
-  <version_patch>0</version_patch>
-  <version_extra>rc2</version_extra>
   <status>published</status>
   <release_link>http://example.com/drupal-8-2-0-rc2-release</release_link>
   <download_link>http://example.com/drupal-8-2-0-rc2.tar.gz</download_link>
   <date>1533298080</date>
-  <mdhash>2387284145e34a19fc45e03c258a2831</mdhash>
-  <filesize>16209911</filesize>
   <terms>
    <term><name>Release type</name><value>Bug fixes</value></term>
    <term><name>Release type</name><value>New features</value></term>
@@ -40,16 +31,10 @@
   <name>drupal 8.2.0-rc1</name>
   <version>8.2.0-rc1</version>
   <tag>8.2.0-rc1</tag>
-  <version_major>8</version_major>
-  <version_minor>2</version_minor>
-  <version_patch>0</version_patch>
-  <version_extra>rc1</version_extra>
   <status>published</status>
   <release_link>http://example.com/drupal-8-2-0-rc1-release</release_link>
   <download_link>http://example.com/drupal-8-2-0-rc1.tar.gz</download_link>
   <date>1533270485</date>
-  <mdhash>3d70ae568dd8f7100082b8c58bc8d1fe</mdhash>
-  <filesize>16209123</filesize>
   <terms>
    <term><name>Release type</name><value>Insecure</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
@@ -63,16 +48,10 @@
   <name>drupal 8.2.0-beta2</name>
   <version>8.2.0-beta2</version>
   <tag>8.2.0-beta2</tag>
-  <version_major>8</version_major>
-  <version_minor>2</version_minor>
-  <version_patch>0</version_patch>
-  <version_extra>beta2</version_extra>
   <status>published</status>
   <release_link>http://example.com/drupal-8-2-0-beta2-release</release_link>
   <download_link>http://example.com/drupal-8-2-0-beta2.tar.gz</download_link>
   <date>1533298080</date>
-  <mdhash>2387284145e34a19fc45e03c258a2831</mdhash>
-  <filesize>16209911</filesize>
   <terms>
    <term><name>Release type</name><value>Bug fixes</value></term>
    <term><name>Release type</name><value>New features</value></term>
@@ -86,16 +65,10 @@
   <name>drupal 8.2.0-beta1</name>
   <version>8.2.0-beta1</version>
   <tag>8.2.0-beta1</tag>
-  <version_major>8</version_major>
-  <version_minor>2</version_minor>
-  <version_patch>0</version_patch>
-  <version_extra>beta1</version_extra>
   <status>published</status>
   <release_link>http://example.com/drupal-8-2-0-beta1-release</release_link>
   <download_link>http://example.com/drupal-8-2-0-beta1.tar.gz</download_link>
   <date>1533270485</date>
-  <mdhash>3d70ae568dd8f7100082b8c58bc8d1fe</mdhash>
-  <filesize>16209123</filesize>
   <terms>
    <term><name>Release type</name><value>Insecure</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
@@ -109,16 +82,10 @@
   <name>drupal 8.2.0-alpha2</name>
   <version>8.2.0-alpha2</version>
   <tag>8.2.0-alpha2</tag>
-  <version_major>8</version_major>
-  <version_minor>2</version_minor>
-  <version_patch>0</version_patch>
-  <version_extra>alpha2</version_extra>
   <status>published</status>
   <release_link>http://example.com/drupal-8-2-0-alpha2-release</release_link>
   <download_link>http://example.com/drupal-8-2-0-alpha2.tar.gz</download_link>
   <date>1533298080</date>
-  <mdhash>2387284145e34a19fc45e03c258a2831</mdhash>
-  <filesize>16209911</filesize>
   <terms>
    <term><name>Release type</name><value>Bug fixes</value></term>
    <term><name>Release type</name><value>New features</value></term>
@@ -132,16 +99,10 @@
   <name>drupal 8.2.0-alpha1</name>
   <version>8.2.0-alpha1</version>
   <tag>8.2.0-alpha1</tag>
-  <version_major>8</version_major>
-  <version_minor>2</version_minor>
-  <version_patch>0</version_patch>
-  <version_extra>alpha1</version_extra>
   <status>published</status>
   <release_link>http://example.com/drupal-8.2.0-alpha1</release_link>
   <download_link>http://example.com/drupal-8-2-0-alpha1.tar.gz</download_link>
   <date>1533270485</date>
-  <mdhash>3d70ae568dd8f7100082b8c58bc8d1fe</mdhash>
-  <filesize>16209123</filesize>
   <terms>
    <term><name>Release type</name><value>Insecure</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
@@ -155,15 +116,10 @@
   <name>Drupal 8.1.2</name>
   <version>8.1.2</version>
   <tag>DRUPAL-8-1-2</tag>
-  <version_major>8</version_major>
-  <version_minor>1</version_minor>
-  <version_patch>2</version_patch>
   <status>published</status>
   <release_link>http://example.com/drupal-8-1-2-release</release_link>
   <download_link>http://example.com/drupal-8-1-2.tar.gz</download_link>
   <date>1250424641</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>4294967296</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
@@ -174,15 +130,10 @@
   <name>Drupal 8.1.1</name>
   <version>8.1.1</version>
   <tag>DRUPAL-8-1-1</tag>
-  <version_major>8</version_major>
-  <version_minor>1</version_minor>
-  <version_patch>1</version_patch>
   <status>published</status>
   <release_link>http://example.com/drupal-8-1-1-release</release_link>
   <download_link>http://example.com/drupal-8-1-1.tar.gz</download_link>
   <date>1250424581</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>2147483648</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
@@ -193,15 +144,10 @@
   <name>Drupal 8.1.0</name>
   <version>8.1.0</version>
   <tag>DRUPAL-8-1-0</tag>
-  <version_major>8</version_major>
-  <version_minor>1</version_minor>
-  <version_patch>0</version_patch>
   <status>published</status>
   <release_link>http://example.com/drupal-8-1-0-release</release_link>
   <download_link>http://example.com/drupal-8-1-0.tar.gz</download_link>
   <date>1250424521</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>1073741824</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
@@ -212,15 +158,10 @@
   <name>Drupal 8.0.2</name>
   <version>8.0.2</version>
   <tag>DRUPAL-8-0-2</tag>
-  <version_major>8</version_major>
-  <version_minor>0</version_minor>
-  <version_patch>2</version_patch>
   <status>published</status>
   <release_link>http://example.com/drupal-8-0-2-release</release_link>
   <download_link>http://example.com/drupal-8-0-2.tar.gz</download_link>
   <date>1250424641</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>4294967296</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
@@ -231,15 +172,10 @@
   <name>Drupal 8.0.1</name>
   <version>8.0.1</version>
   <tag>DRUPAL-8-0-1</tag>
-  <version_major>8</version_major>
-  <version_minor>0</version_minor>
-  <version_patch>1</version_patch>
   <status>published</status>
   <release_link>http://example.com/drupal-8-0-1-release</release_link>
   <download_link>http://example.com/drupal-8-0-1.tar.gz</download_link>
   <date>1250424581</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>2147483648</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
@@ -250,15 +186,10 @@
   <name>Drupal 8.0.0</name>
   <version>8.0.0</version>
   <tag>DRUPAL-8-0-0</tag>
-  <version_major>8</version_major>
-  <version_minor>0</version_minor>
-  <version_patch>0</version_patch>
   <status>published</status>
   <release_link>http://example.com/drupal-8-0-0-release</release_link>
   <download_link>http://example.com/drupal-8-0-0.tar.gz</download_link>
   <date>1250424521</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>1073741824</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/core/modules/update/tests/modules/update_test/drupal.sec.0.2.xml b/core/modules/update/tests/modules/update_test/drupal.sec.0.2.xml
index 0b9bbce63222..f77cec76dec9 100644
--- a/core/modules/update/tests/modules/update_test/drupal.sec.0.2.xml
+++ b/core/modules/update/tests/modules/update_test/drupal.sec.0.2.xml
@@ -3,10 +3,7 @@
 <title>Drupal</title>
 <short_name>drupal</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>8</recommended_major>
-<supported_majors>8</supported_majors>
-<default_major>8</default_major>
+<supported_branches>8.0.,8.1.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/drupal</link>
   <terms>
@@ -17,15 +14,10 @@
   <name>Drupal 8.0.2</name>
   <version>8.0.2</version>
   <tag>DRUPAL-8-0-2</tag>
-  <version_major>8</version_major>
-  <version_minor>0</version_minor>
-  <version_patch>2</version_patch>
   <status>published</status>
   <release_link>http://example.com/drupal-8-0-2-release</release_link>
   <download_link>http://example.com/drupal-8-0-2.tar.gz</download_link>
   <date>1250424641</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>4294967296</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
@@ -36,15 +28,10 @@
   <name>Drupal 8.0.1</name>
   <version>8.0.1</version>
   <tag>DRUPAL-8-0-1</tag>
-  <version_major>8</version_major>
-  <version_minor>0</version_minor>
-  <version_patch>1</version_patch>
   <status>published</status>
   <release_link>http://example.com/drupal-8-0-1-release</release_link>
   <download_link>http://example.com/drupal-8-0-1.tar.gz</download_link>
   <date>1250424581</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>2147483648</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
@@ -55,15 +42,10 @@
   <name>Drupal 8.0.0</name>
   <version>8.0.0</version>
   <tag>DRUPAL-8-0-0</tag>
-  <version_major>8</version_major>
-  <version_minor>0</version_minor>
-  <version_patch>0</version_patch>
   <status>published</status>
   <release_link>http://example.com/drupal-8-0-0-release</release_link>
   <download_link>http://example.com/drupal-8-0-0.tar.gz</download_link>
   <date>1250424521</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>1073741824</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/core/modules/update/tests/modules/update_test/drupal.sec.1.2.xml b/core/modules/update/tests/modules/update_test/drupal.sec.1.2.xml
index 8665e46b3611..8884a876d2c6 100644
--- a/core/modules/update/tests/modules/update_test/drupal.sec.1.2.xml
+++ b/core/modules/update/tests/modules/update_test/drupal.sec.1.2.xml
@@ -3,10 +3,7 @@
 <title>Drupal</title>
 <short_name>drupal</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>8</recommended_major>
-<supported_majors>8</supported_majors>
-<default_major>8</default_major>
+<supported_branches>8.0.,8.1.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/drupal</link>
   <terms>
@@ -17,15 +14,10 @@
   <name>Drupal 8.1.2</name>
   <version>8.1.2</version>
   <tag>DRUPAL-8-1-2</tag>
-  <version_major>8</version_major>
-  <version_minor>1</version_minor>
-  <version_patch>2</version_patch>
   <status>published</status>
   <release_link>http://example.com/drupal-8-1-2-release</release_link>
   <download_link>http://example.com/drupal-8-1-2.tar.gz</download_link>
   <date>1250424641</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>4294967296</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
@@ -36,15 +28,10 @@
   <name>Drupal 8.1.1</name>
   <version>8.1.1</version>
   <tag>DRUPAL-8-1-1</tag>
-  <version_major>8</version_major>
-  <version_minor>1</version_minor>
-  <version_patch>1</version_patch>
   <status>published</status>
   <release_link>http://example.com/drupal-8-1-1-release</release_link>
   <download_link>http://example.com/drupal-8-1-1.tar.gz</download_link>
   <date>1250424581</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>2147483648</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
@@ -55,15 +42,10 @@
   <name>Drupal 8.1.0</name>
   <version>8.1.0</version>
   <tag>DRUPAL-8-1-0</tag>
-  <version_major>8</version_major>
-  <version_minor>1</version_minor>
-  <version_patch>0</version_patch>
   <status>published</status>
   <release_link>http://example.com/drupal-8-1-0-release</release_link>
   <download_link>http://example.com/drupal-8-1-0.tar.gz</download_link>
   <date>1250424521</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>1073741824</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
@@ -74,15 +56,10 @@
   <name>Drupal 8.0.2</name>
   <version>8.0.2</version>
   <tag>DRUPAL-8-0-2</tag>
-  <version_major>8</version_major>
-  <version_minor>0</version_minor>
-  <version_patch>2</version_patch>
   <status>published</status>
   <release_link>http://example.com/drupal-8-0-2-release</release_link>
   <download_link>http://example.com/drupal-8-0-2.tar.gz</download_link>
   <date>1250424641</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>4294967296</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
@@ -92,15 +69,10 @@
   <name>Drupal 8.0.1</name>
   <version>8.0.1</version>
   <tag>DRUPAL-8-0-1</tag>
-  <version_major>8</version_major>
-  <version_minor>0</version_minor>
-  <version_patch>1</version_patch>
   <status>published</status>
   <release_link>http://example.com/drupal-8-0-1-release</release_link>
   <download_link>http://example.com/drupal-8-0-1.tar.gz</download_link>
   <date>1250424581</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>2147483648</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
@@ -110,15 +82,10 @@
   <name>Drupal 8.0.0</name>
   <version>8.0.0</version>
   <tag>DRUPAL-8-0-0</tag>
-  <version_major>8</version_major>
-  <version_minor>0</version_minor>
-  <version_patch>0</version_patch>
   <status>published</status>
   <release_link>http://example.com/drupal-8-0-0-release</release_link>
   <download_link>http://example.com/drupal-8-0-0.tar.gz</download_link>
   <date>1250424521</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>1073741824</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/core/modules/update/tests/modules/update_test/drupal.sec.1.2_insecure.xml b/core/modules/update/tests/modules/update_test/drupal.sec.1.2_insecure.xml
index dadad421bc27..7f915dd476d8 100644
--- a/core/modules/update/tests/modules/update_test/drupal.sec.1.2_insecure.xml
+++ b/core/modules/update/tests/modules/update_test/drupal.sec.1.2_insecure.xml
@@ -3,10 +3,7 @@
 <title>Drupal</title>
 <short_name>drupal</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>8</recommended_major>
-<supported_majors>8</supported_majors>
-<default_major>8</default_major>
+<supported_branches>8.0.,8.1.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/drupal</link>
   <terms>
@@ -17,15 +14,10 @@
   <name>Drupal 8.1.2</name>
   <version>8.1.2</version>
   <tag>DRUPAL-8-1-2</tag>
-  <version_major>8</version_major>
-  <version_minor>1</version_minor>
-  <version_patch>2</version_patch>
   <status>published</status>
   <release_link>http://example.com/drupal-8-1-2-release</release_link>
   <download_link>http://example.com/drupal-8-1-2.tar.gz</download_link>
   <date>1250424641</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>4294967296</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
@@ -36,15 +28,10 @@
   <name>Drupal 8.1.1</name>
   <version>8.1.1</version>
   <tag>DRUPAL-8-1-1</tag>
-  <version_major>8</version_major>
-  <version_minor>1</version_minor>
-  <version_patch>1</version_patch>
   <status>published</status>
   <release_link>http://example.com/drupal-8-1-1-release</release_link>
   <download_link>http://example.com/drupal-8-1-1.tar.gz</download_link>
   <date>1250424581</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>2147483648</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
@@ -55,15 +42,10 @@
   <name>Drupal 8.1.0</name>
   <version>8.1.0</version>
   <tag>DRUPAL-8-1-0</tag>
-  <version_major>8</version_major>
-  <version_minor>1</version_minor>
-  <version_patch>0</version_patch>
   <status>published</status>
   <release_link>http://example.com/drupal-8-1-0-release</release_link>
   <download_link>http://example.com/drupal-8-1-0.tar.gz</download_link>
   <date>1250424521</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>1073741824</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
@@ -74,15 +56,10 @@
   <name>Drupal 8.0.2</name>
   <version>8.0.2</version>
   <tag>DRUPAL-8-0-2</tag>
-  <version_major>8</version_major>
-  <version_minor>0</version_minor>
-  <version_patch>2</version_patch>
   <status>published</status>
   <release_link>http://example.com/drupal-8-0-2-release</release_link>
   <download_link>http://example.com/drupal-8-0-2.tar.gz</download_link>
   <date>1250424641</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>4294967296</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
@@ -93,15 +70,10 @@
   <name>Drupal 8.0.1</name>
   <version>8.0.1</version>
   <tag>DRUPAL-8-0-1</tag>
-  <version_major>8</version_major>
-  <version_minor>0</version_minor>
-  <version_patch>1</version_patch>
   <status>published</status>
   <release_link>http://example.com/drupal-8-0-1-release</release_link>
   <download_link>http://example.com/drupal-8-0-1.tar.gz</download_link>
   <date>1250424581</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>2147483648</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
@@ -112,15 +84,10 @@
   <name>Drupal 8.0.0</name>
   <version>8.0.0</version>
   <tag>DRUPAL-8-0-0</tag>
-  <version_major>8</version_major>
-  <version_minor>0</version_minor>
-  <version_patch>0</version_patch>
   <status>published</status>
   <release_link>http://example.com/drupal-8-0-0-release</release_link>
   <download_link>http://example.com/drupal-8-0-0.tar.gz</download_link>
   <date>1250424521</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>1073741824</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/core/modules/update/tests/modules/update_test/update_test_basetheme.1_1-sec.xml b/core/modules/update/tests/modules/update_test/update_test_basetheme.1_1-sec.xml
index 3529e1976316..9d00048ecb87 100644
--- a/core/modules/update/tests/modules/update_test/update_test_basetheme.1_1-sec.xml
+++ b/core/modules/update/tests/modules/update_test/update_test_basetheme.1_1-sec.xml
@@ -3,10 +3,7 @@
 <title>Update test base theme</title>
 <short_name>update_test_basetheme</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>1</recommended_major>
-<supported_majors>1</supported_majors>
-<default_major>1</default_major>
+<supported_branches>8.x-1.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/update_test_basetheme</link>
   <terms>
@@ -17,14 +14,10 @@
   <name>update_test_basetheme 8.x-1.1</name>
   <version>8.x-1.1</version>
   <tag>DRUPAL-7--1-1</tag>
-  <version_major>1</version_major>
-  <version_patch>1</version_patch>
   <status>published</status>
   <release_link>http://example.com/update_test_basetheme-7-x-1-1-release</release_link>
   <download_link>http://example.com/update_test_basetheme-8.x-1.1.tar.gz</download_link>
   <date>1250624521</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>1073763241</filesize>
   <terms>
    <term><name>Release type</name><value>Security update</value></term>
    <term><name>Release type</name><value>New features</value></term>
@@ -35,14 +28,10 @@
   <name>update_test_basetheme 8.x-1.0</name>
   <version>8.x-1.0</version>
   <tag>DRUPAL-7--1-0</tag>
-  <version_major>1</version_major>
-  <version_patch>0</version_patch>
   <status>published</status>
   <release_link>http://example.com/update_test_basetheme-7-x-1-0-release</release_link>
   <download_link>http://example.com/update_test_basetheme-8.x-1.0.tar.gz</download_link>
   <date>1250524521</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>1073741824</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/core/modules/update/tests/modules/update_test/update_test_new_module.1_1.xml b/core/modules/update/tests/modules/update_test/update_test_new_module.1_1.xml
index f9039b2e3fae..88e1ec98999c 100644
--- a/core/modules/update/tests/modules/update_test/update_test_new_module.1_1.xml
+++ b/core/modules/update/tests/modules/update_test/update_test_new_module.1_1.xml
@@ -3,10 +3,7 @@
 <title>Update test new module</title>
 <short_name>update_test_new_module</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>1</recommended_major>
-<supported_majors>1</supported_majors>
-<default_major>1</default_major>
+<supported_branches>8.x-1.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/update_test_new_module</link>
   <terms>
@@ -17,14 +14,10 @@
   <name>update_test_new_module 8.x-1.1</name>
   <version>8.x-1.1</version>
   <tag>DRUPAL-8--1-1</tag>
-  <version_major>1</version_major>
-  <version_patch>1</version_patch>
   <status>published</status>
   <release_link>http://example.com/update_test_new_module-8-x-1-1-release</release_link>
   <download_link>core/modules/update/tests/update_test_new_module/8.x-1.1/update_test_new_module.tar.gz</download_link>
   <date>1300424521</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>1073741824</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/core/modules/update/tests/modules/update_test/update_test_subtheme.1_0.xml b/core/modules/update/tests/modules/update_test/update_test_subtheme.1_0.xml
index c791b7f1fbce..4cde86254ea8 100644
--- a/core/modules/update/tests/modules/update_test/update_test_subtheme.1_0.xml
+++ b/core/modules/update/tests/modules/update_test/update_test_subtheme.1_0.xml
@@ -3,10 +3,7 @@
 <title>Update test subtheme</title>
 <short_name>update_test_subtheme</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>1</recommended_major>
-<supported_majors>1</supported_majors>
-<default_major>1</default_major>
+<supported_branches>8.x-1.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/update_test_subtheme</link>
   <terms>
@@ -17,14 +14,10 @@
   <name>update_test_subtheme 8.x-1.0</name>
   <version>8.x-1.0</version>
   <tag>DRUPAL-7--1-0</tag>
-  <version_major>1</version_major>
-  <version_patch>0</version_patch>
   <status>published</status>
   <release_link>http://example.com/update_test_subtheme-7-x-1-0-release</release_link>
   <download_link>http://example.com/update_test_subtheme-8.x-1.0.tar.gz</download_link>
   <date>1250524521</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>1073741824</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/core/modules/update/tests/src/Unit/ModuleVersionTest.php b/core/modules/update/tests/src/Unit/ModuleVersionTest.php
new file mode 100644
index 000000000000..7eaabed00829
--- /dev/null
+++ b/core/modules/update/tests/src/Unit/ModuleVersionTest.php
@@ -0,0 +1,400 @@
+<?php
+
+namespace Drupal\Tests\update\Unit;
+
+use Drupal\Tests\UnitTestCase;
+use Drupal\update\ModuleVersion;
+
+/**
+ * @coversDefaultClass \Drupal\update\ModuleVersion
+ *
+ * @group update
+ */
+class ModuleVersionTest extends UnitTestCase {
+
+  /**
+   * @covers ::getMajorVersion
+   *
+   * @dataProvider providerVersionInfos
+   *
+   * @param string $version
+   *   The version string to test.
+   * @param array $expected_version_info
+   *   The expected version information.
+   */
+  public function testGetMajorVersion($version, array $expected_version_info) {
+    $version = ModuleVersion::createFromVersionString($version);
+    $this->assertSame($expected_version_info['major'], $version->getMajorVersion());
+  }
+
+  /**
+   * @covers ::getVersionExtra
+   *
+   * @dataProvider providerVersionInfos
+   *
+   * @param string $version
+   *   The version string to test.
+   * @param array $expected_version_info
+   *   The expected version information.
+   */
+  public function testGetVersionExtra($version, array $expected_version_info) {
+    $version = ModuleVersion::createFromVersionString($version);
+    $this->assertSame($expected_version_info['extra'], $version->getVersionExtra());
+  }
+
+  /**
+   * Data provider for expected version information.
+   *
+   * @return array
+   *   Arrays of version information.
+   */
+  public function providerVersionInfos() {
+    // Data provider values are:
+    // - The version number to test.
+    // - Array of expected version information with the following keys:
+    //   -'major': The expected result from ::getMajorVersion().
+    //   -'extra': The expected result from ::getVersionExtra().
+    return [
+      '8.x-1.3' => [
+        '8.x-1.3',
+        [
+          'major' => '1',
+          'extra' => NULL,
+        ],
+      ],
+      '8.x-1.0' => [
+        '8.x-1.0',
+        [
+          'major' => '1',
+          'extra' => NULL,
+        ],
+      ],
+      '8.x-1.0-alpha1' => [
+        '8.x-1.0-alpha1',
+        [
+          'major' => '1',
+          'extra' => 'alpha1',
+        ],
+      ],
+      '8.x-1.3-alpha1' => [
+        '8.x-1.3-alpha1',
+        [
+          'major' => '1',
+          'extra' => 'alpha1',
+        ],
+      ],
+      '0.1' => [
+        '0.1',
+        [
+          'major' => '0',
+          'extra' => NULL,
+        ],
+      ],
+      '1.0' => [
+        '1.0',
+        [
+          'major' => '1',
+          'extra' => NULL,
+        ],
+      ],
+      '1.3' => [
+        '1.3',
+        [
+          'major' => '1',
+          'extra' => NULL,
+        ],
+      ],
+      '1.0-alpha1' => [
+        '1.0-alpha1',
+        [
+          'major' => '1',
+          'extra' => 'alpha1',
+        ],
+      ],
+      '1.3-alpha1' => [
+        '1.3-alpha1',
+        [
+          'major' => '1',
+          'extra' => 'alpha1',
+        ],
+      ],
+      '0.2.0' => [
+        '0.2.0',
+        [
+          'major' => '0',
+          'extra' => NULL,
+        ],
+      ],
+      '1.2.0' => [
+        '1.2.0',
+        [
+          'major' => '1',
+          'extra' => NULL,
+        ],
+      ],
+      '1.0.3' => [
+        '1.0.3',
+        [
+          'major' => '1',
+          'extra' => NULL,
+        ],
+      ],
+      '1.2.3' => [
+        '1.2.3',
+        [
+          'major' => '1',
+          'extra' => NULL,
+        ],
+      ],
+      '1.2.0-alpha1' => [
+        '1.2.0-alpha1',
+        [
+          'major' => '1',
+          'extra' => 'alpha1',
+        ],
+      ],
+      '1.2.3-alpha1' => [
+        '1.2.3-alpha1',
+        [
+          'major' => '1',
+          'extra' => 'alpha1',
+        ],
+      ],
+      '8.x-1.x-dev' => [
+        '8.x-1.x-dev',
+        [
+          'major' => '1',
+          'extra' => 'dev',
+        ],
+      ],
+      '8.x-8.x-dev' => [
+        '8.x-8.x-dev',
+        [
+          'major' => '8',
+          'extra' => 'dev',
+        ],
+      ],
+      '1.x-dev' => [
+        '1.x-dev',
+        [
+          'major' => '1',
+          'extra' => 'dev',
+        ],
+      ],
+      '8.x-dev' => [
+        '8.x-dev',
+        [
+          'major' => '8',
+          'extra' => 'dev',
+        ],
+      ],
+      '1.0.x-dev' => [
+        '1.0.x-dev',
+        [
+          'major' => '1',
+          'extra' => 'dev',
+        ],
+      ],
+      '1.2.x-dev' => [
+        '1.2.x-dev',
+        [
+          'major' => '1',
+          'extra' => 'dev',
+        ],
+      ],
+    ];
+  }
+
+  /**
+   * @covers ::createFromVersionString
+   *
+   * @dataProvider providerInvalidVersionNumber
+   *
+   * @param string $version
+   *   The version string to test.
+   */
+  public function testInvalidVersionNumber($version) {
+    $this->expectException(\UnexpectedValueException::class);
+    $this->expectExceptionMessage("Unexpected version number in: $version");
+    ModuleVersion::createFromVersionString($version);
+  }
+
+  /**
+   * Data provider for testInvalidVersionNumber().
+   */
+  public function providerInvalidVersionNumber() {
+    return static::createKeyedTestCases([
+      '',
+      '8',
+      'x',
+      'xx',
+      '8.x-',
+      '8.x',
+      '.x',
+      '.0',
+      '.1',
+      '.1.0',
+      '1.0.',
+      'x.1',
+      '1.x.0',
+      '1.1.x',
+      '1.1.x-extra',
+      'x.1.1',
+      '1.1.1.1',
+      '1.1.1.0',
+    ]);
+  }
+
+  /**
+   * @covers ::createFromVersionString
+   *
+   * @dataProvider providerInvalidVersionCorePrefix
+   *
+   * @param string $version
+   *   The version string to test.
+   */
+  public function testInvalidVersionCorePrefix($version) {
+    $this->expectException(\UnexpectedValueException::class);
+    $this->expectExceptionMessage("Unexpected version core prefix in $version. The only core prefix expected in \Drupal\update\ModuleVersion is: 8.x-");
+    ModuleVersion::createFromVersionString($version);
+  }
+
+  /**
+   * Data provider for testInvalidVersionCorePrefix().
+   */
+  public function providerInvalidVersionCorePrefix() {
+    return static::createKeyedTestCases([
+      '6.x-1.0',
+      '7.x-1.x',
+      '9.x-1.x',
+      '10.x-1.x',
+    ]);
+  }
+
+  /**
+   * @covers ::createFromSupportBranch
+   *
+   * @dataProvider providerInvalidBranchCorePrefix
+   *
+   * @param string $branch
+   *   The branch to test.
+   */
+  public function testInvalidBranchCorePrefix($branch) {
+    $this->expectException(\UnexpectedValueException::class);
+    $this->expectExceptionMessage("Unexpected version core prefix in {$branch}0. The only core prefix expected in \Drupal\update\ModuleVersion is: 8.x-");
+    ModuleVersion::createFromSupportBranch($branch);
+  }
+
+  /**
+   * Data provider for testInvalidBranchCorePrefix().
+   */
+  public function providerInvalidBranchCorePrefix() {
+    return static::createKeyedTestCases([
+      '6.x-1.',
+      '7.x-1.',
+      '9.x-1.',
+      '10.x-1.',
+    ]);
+  }
+
+  /**
+   * @covers ::createFromSupportBranch
+   *
+   * @dataProvider providerCreateFromSupportBranch
+   *
+   * @param string $branch
+   *   The branch to test.
+   * @param string $expected_major
+   *   The expected major version.
+   */
+  public function testCreateFromSupportBranch($branch, $expected_major) {
+    $version = ModuleVersion::createFromSupportBranch($branch);
+    $this->assertInstanceOf(ModuleVersion::class, $version);
+    $this->assertSame($expected_major, $version->getMajorVersion());
+    // Version extra can't be determined from a branch.
+    $this->assertSame(NULL, $version->getVersionExtra());
+  }
+
+  /**
+   * Data provider for testCreateFromSupportBranch().
+   */
+  public function providerCreateFromSupportBranch() {
+    // Data provider values are:
+    // - The version number to test.
+    // - Array of expected version information with the following keys:
+    //   -'major': The expected result from ::getMajorVersion().
+    //   -'extra': The expected result from ::getVersionExtra().
+    return [
+      '0.' => [
+        '0.',
+        '0',
+      ],
+      '1.' => [
+        '1.',
+        '1',
+      ],
+      '0.1.' => [
+        '0.1.',
+        '0',
+      ],
+      '1.2.' => [
+        '1.2.',
+        '1',
+      ],
+      '8.x-1.' => [
+        '8.x-1.',
+        '1',
+      ],
+    ];
+  }
+
+  /**
+   * @covers ::createFromSupportBranch
+   *
+   * @dataProvider provideInvalidBranch
+   *
+   * @param string $branch
+   *   The branch to test.
+   */
+  public function testInvalidBranch($branch) {
+    $this->expectException(\UnexpectedValueException::class);
+    $this->expectExceptionMessage("Invalid support branch: $branch");
+    ModuleVersion::createFromSupportBranch($branch);
+  }
+
+  /**
+   * Data provider for testInvalidBranch().
+   */
+  public function provideInvalidBranch() {
+    return self::createKeyedTestCases([
+      '8.x-1.0',
+      '8.x-2.x',
+      '2.x-1.0',
+      '1.1',
+      '1.x',
+      '1.1.x',
+      '1.1.1',
+      '1.1.1.1',
+    ]);
+  }
+
+  /**
+   * Creates test case arrays for data provider methods.
+   *
+   * @param string[] $test_arguments
+   *   The test arguments.
+   *
+   * @return array
+   *   An array with $test_arguments as keys and each element of $test_arguments
+   *   as a single item array
+   */
+  protected static function createKeyedTestCases(array $test_arguments) {
+    return array_combine(
+      $test_arguments,
+      array_map(function ($test_argument) {
+        return [$test_argument];
+      }, $test_arguments)
+    );
+  }
+
+}
diff --git a/core/modules/update/tests/src/Unit/UpdateFetcherTest.php b/core/modules/update/tests/src/Unit/UpdateFetcherTest.php
index 1d01d0f5fe34..9ac53a3491d7 100644
--- a/core/modules/update/tests/src/Unit/UpdateFetcherTest.php
+++ b/core/modules/update/tests/src/Unit/UpdateFetcherTest.php
@@ -5,10 +5,6 @@
 use Drupal\Tests\UnitTestCase;
 use Drupal\update\UpdateFetcher;
 
-if (!defined('DRUPAL_CORE_COMPATIBILITY')) {
-  define('DRUPAL_CORE_COMPATIBILITY', '8.x');
-}
-
 /**
  * Tests update functionality unrelated to the database.
  *
@@ -71,20 +67,20 @@ public function providerTestUpdateBuildFetchUrl() {
     $project['info']['project status url'] = 'http://www.example.com';
     $project['includes'] = ['module1' => 'Module 1', 'module2' => 'Module 2'];
     $site_key = '';
-    $expected = 'http://www.example.com/' . $project['name'] . '/' . DRUPAL_CORE_COMPATIBILITY;
+    $expected = "http://www.example.com/{$project['name']}/current";
 
     $data[] = [$project, $site_key, $expected];
 
     // For disabled projects it shouldn't add the site key either.
     $site_key = 'site_key';
     $project['project_type'] = 'disabled';
-    $expected = 'http://www.example.com/' . $project['name'] . '/' . DRUPAL_CORE_COMPATIBILITY;
+    $expected = "http://www.example.com/{$project['name']}/current";
 
     $data[] = [$project, $site_key, $expected];
 
     // For enabled projects, test adding the site key.
     $project['project_type'] = '';
-    $expected = 'http://www.example.com/' . $project['name'] . '/' . DRUPAL_CORE_COMPATIBILITY;
+    $expected = "http://www.example.com/{$project['name']}/current";
     $expected .= '?site_key=site_key';
     $expected .= '&list=' . rawurlencode('module1,module2');
 
@@ -92,7 +88,7 @@ public function providerTestUpdateBuildFetchUrl() {
 
     // Test when the URL contains a question mark.
     $project['info']['project status url'] = 'http://www.example.com/?project=';
-    $expected = 'http://www.example.com/?project=/' . $project['name'] . '/' . DRUPAL_CORE_COMPATIBILITY;
+    $expected = "http://www.example.com/?project=/{$project['name']}/current";
     $expected .= '&site_key=site_key';
     $expected .= '&list=' . rawurlencode('module1,module2');
 
diff --git a/core/modules/update/update.compare.inc b/core/modules/update/update.compare.inc
index 9202cb1a2307..75601425482a 100644
--- a/core/modules/update/update.compare.inc
+++ b/core/modules/update/update.compare.inc
@@ -7,6 +7,7 @@
 
 use Drupal\update\UpdateFetcherInterface;
 use Drupal\update\UpdateManagerInterface;
+use Drupal\update\ModuleVersion;
 use Drupal\update\ProjectCoreCompatibility;
 
 /**
@@ -147,12 +148,14 @@ function update_calculate_project_data($available) {
  * with an error and the next project is considered.
  *
  * If the project itself is valid, the function decides what major release
- * series to consider. The project defines what the currently supported major
- * versions are for each version of core, so the first step is to make sure the
- * current version is still supported. If so, that's the target version. If the
- * current version is unsupported, the project maintainer's recommended major
- * version is used. There's also a check to make sure that this function never
- * recommends an earlier release than the currently installed major version.
+ * series to consider. The project defines its currently supported branches in
+ * its Drupal.org for the project, so the first step is to make sure the
+ * development branch of the current version is still supported. If so, then the
+ * major version of the current version is used. If the current version is not
+ * in a supported branch, the next supported branch is used to determine the
+ * major version to use. There's also a check to make sure that this function
+ * never recommends an earlier release than the currently installed major
+ * version.
  *
  * Given a target major version, the available releases are scanned looking for
  * the specific release to recommend (avoiding beta releases and development
@@ -260,35 +263,52 @@ function update_calculate_project_update_status(&$project_data, $available) {
   }
 
   // Figure out the target major version.
-  $existing_major = $project_data['existing_major'];
-  $supported_majors = [];
-  if (isset($available['supported_majors'])) {
-    $supported_majors = explode(',', $available['supported_majors']);
+  try {
+    $existing_major = ModuleVersion::createFromVersionString($project_data['existing_version'])->getMajorVersion();
   }
-  elseif (isset($available['default_major'])) {
-    // Older release history XML file without supported or recommended.
-    $supported_majors[] = $available['default_major'];
+  catch (UnexpectedValueException $exception) {
+    // If the version has an unexpected value we can't determine updates.
+    return;
+  }
+  $supported_branches = [];
+  if (isset($available['supported_branches'])) {
+    $supported_branches = explode(',', $available['supported_branches']);
   }
 
-  if (in_array($existing_major, $supported_majors)) {
+  $is_in_supported_branch = function ($version) use ($supported_branches) {
+    foreach ($supported_branches as $supported_branch) {
+      if (strpos($version, $supported_branch) === 0) {
+        return TRUE;
+      }
+    }
+    return FALSE;
+  };
+  if ($is_in_supported_branch($project_data['existing_version'])) {
     // Still supported, stay at the current major version.
     $target_major = $existing_major;
   }
-  elseif (isset($available['recommended_major'])) {
-    // Since 'recommended_major' is defined, we know this is the new XML
-    // format. Therefore, we know the current release is unsupported since
-    // its major version was not in the 'supported_majors' list. We should
-    // find the best release from the recommended major version.
-    $target_major = $available['recommended_major'];
+  elseif ($supported_branches) {
+    // We know the current release is unsupported since it is not in
+    // 'supported_branches' list. We should use the next valid supported
+    // branch for the target major version.
     $project_data['status'] = UpdateManagerInterface::NOT_SUPPORTED;
-  }
-  elseif (isset($available['default_major'])) {
-    // Older release history XML file without recommended, so recommend
-    // the currently defined "default_major" version.
-    $target_major = $available['default_major'];
+    foreach ($supported_branches as $supported_branch) {
+      try {
+        $target_major = ModuleVersion::createFromSupportBranch($supported_branch)->getMajorVersion();
+
+      }
+      catch (UnexpectedValueException $exception) {
+        continue;
+      }
+    }
+    if (!isset($target_major)) {
+      // If there are no valid support branches, use the current major.
+      $target_major = $existing_major;
+    }
+
   }
   else {
-    // Malformed XML file? Stick with the current version.
+    // Malformed XML file? Stick with the current branch.
     $target_major = $existing_major;
   }
 
@@ -301,9 +321,6 @@ function update_calculate_project_update_status(&$project_data, $available) {
   // what they have is unsupported and let them figure it out.
   $target_major = max($existing_major, $target_major);
 
-  $release_patch_changed = '';
-  $patch = '';
-
   // If the project is marked as UpdateFetcherInterface::FETCH_PENDING, it
   // means that the data we currently have (if any) is stale, and we've got a
   // task queued up to (re)fetch the data. In that case, we mark it as such,
@@ -321,7 +338,17 @@ function update_calculate_project_update_status(&$project_data, $available) {
     $project_data['reason'] = t('No available releases found');
     return;
   }
+
+  $recommended_version_without_extra = '';
+  $recommended_release = NULL;
+
   foreach ($available['releases'] as $version => $release) {
+    try {
+      $release_module_version = ModuleVersion::createFromVersionString($release['version']);
+    }
+    catch (UnexpectedValueException $exception) {
+      continue;
+    }
     // First, if this is the existing release, check a few conditions.
     if ($project_data['existing_version'] === $version) {
       if (isset($release['terms']['Release type']) &&
@@ -361,18 +388,16 @@ function update_calculate_project_update_status(&$project_data, $available) {
       continue;
     }
 
+    $release_major_version = $release_module_version->getMajorVersion();
     // See if this is a higher major version than our target and yet still
     // supported. If so, record it as an "Also available" release.
-    // Note: Some projects have a HEAD release from CVS days, which could
-    // be one of those being compared. They would not have version_major
-    // set, so we must call isset first.
-    if (isset($release['version_major']) && $release['version_major'] > $target_major) {
-      if (in_array($release['version_major'], $supported_majors)) {
+    if ($release_major_version > $target_major) {
+      if ($is_in_supported_branch($release['version'])) {
         if (!isset($project_data['also'])) {
           $project_data['also'] = [];
         }
-        if (!isset($project_data['also'][$release['version_major']])) {
-          $project_data['also'][$release['version_major']] = $version;
+        if (!isset($project_data['also'][$release_major_version])) {
+          $project_data['also'][$release_major_version] = $version;
           $project_data['releases'][$version] = $release;
         }
       }
@@ -389,32 +414,37 @@ function update_calculate_project_update_status(&$project_data, $available) {
     // Look for the 'latest version' if we haven't found it yet. Latest is
     // defined as the most recent version for the target major version.
     if (!isset($project_data['latest_version'])
-        && $release['version_major'] == $target_major) {
+        && $release_major_version == $target_major) {
       $project_data['latest_version'] = $version;
       $project_data['releases'][$version] = $release;
     }
 
     // Look for the development snapshot release for this branch.
     if (!isset($project_data['dev_version'])
-        && $release['version_major'] == $target_major
-        && isset($release['version_extra'])
-        && $release['version_extra'] == 'dev') {
+        && $release_major_version == $target_major
+        && $release_module_version->getVersionExtra() === 'dev') {
       $project_data['dev_version'] = $version;
       $project_data['releases'][$version] = $release;
     }
 
+    if ($release_module_version->getVersionExtra()) {
+      $release_version_without_extra = str_replace('-' . $release_module_version->getVersionExtra(), '', $release['version']);
+    }
+    else {
+      $release_version_without_extra = $release['version'];
+    }
+
     // Look for the 'recommended' version if we haven't found it yet (see
     // phpdoc at the top of this function for the definition).
     if (!isset($project_data['recommended'])
-        && $release['version_major'] == $target_major
-        && isset($release['version_patch'])) {
-      if ($patch != $release['version_patch']) {
-        $patch = $release['version_patch'];
-        $release_patch_changed = $release;
+        && $release_major_version == $target_major) {
+      if ($recommended_version_without_extra !== $release_version_without_extra) {
+        $recommended_version_without_extra = $release_version_without_extra;
+        $recommended_release = $release;
       }
-      if (empty($release['version_extra']) && $patch == $release['version_patch']) {
-        $project_data['recommended'] = $release_patch_changed['version'];
-        $project_data['releases'][$release_patch_changed['version']] = $release_patch_changed;
+      if ($release_module_version->getVersionExtra() === NULL) {
+        $project_data['recommended'] = $recommended_release['version'];
+        $project_data['releases'][$recommended_release['version']] = $recommended_release;
       }
     }
 
-- 
GitLab