diff --git a/core/lib/Drupal/Component/Annotation/composer.json b/core/lib/Drupal/Component/Annotation/composer.json
index 76254ea7fa..66a6242d21 100644
--- a/core/lib/Drupal/Component/Annotation/composer.json
+++ b/core/lib/Drupal/Component/Annotation/composer.json
@@ -6,11 +6,11 @@
   "license": "GPL-2.0+",
   "require": {
     "php": ">=5.5.9",
-    "doctrine/common": "2.5.*",
+    "doctrine/common": "^2.5",
     "doctrine/annotations": "1.2.*",
-    "drupal/core-fileCache": "~8.2",
-    "drupal/core-plugin": "~8.2",
-    "drupal/core-utility": "~8.2"
+    "drupal/core-fileCache": "~8.3",
+    "drupal/core-plugin": "~8.3",
+    "drupal/core-utility": "~8.3"
   },
   "autoload": {
     "psr-4": {
diff --git a/core/lib/Drupal/Component/ClassFinder/composer.json b/core/lib/Drupal/Component/ClassFinder/composer.json
index 97d3668775..c7e7397055 100644
--- a/core/lib/Drupal/Component/ClassFinder/composer.json
+++ b/core/lib/Drupal/Component/ClassFinder/composer.json
@@ -6,7 +6,7 @@
   "license": "GPL-2.0+",
   "require": {
     "php": ">=5.5.9",
-    "doctrine/common": "2.5.*"
+    "doctrine/common": "^2.5"
   },
   "autoload": {
     "psr-4": {
diff --git a/core/lib/Drupal/Component/Datetime/composer.json b/core/lib/Drupal/Component/Datetime/composer.json
index 04d965355a..e7f4bb81a2 100644
--- a/core/lib/Drupal/Component/Datetime/composer.json
+++ b/core/lib/Drupal/Component/Datetime/composer.json
@@ -6,7 +6,7 @@
   "license": "GPL-2.0+",
   "require": {
     "php": ">=5.5.9",
-    "drupal/core-utility": "~8.2"
+    "drupal/core-utility": "~8.3"
   },
   "autoload": {
     "psr-4": {
diff --git a/core/lib/Drupal/Component/Diff/composer.json b/core/lib/Drupal/Component/Diff/composer.json
index 0d7f3d36f7..fbb73b6e01 100644
--- a/core/lib/Drupal/Component/Diff/composer.json
+++ b/core/lib/Drupal/Component/Diff/composer.json
@@ -6,7 +6,7 @@
   "license": "GPL-2.0+",
   "require": {
     "php": ">=5.5.9",
-    "drupal/utility": "~8.2"
+    "drupal/core-utility": "~8.3"
   },
   "autoload": {
     "psr-4": {
diff --git a/core/lib/Drupal/Component/Discovery/composer.json b/core/lib/Drupal/Component/Discovery/composer.json
index 1b0acb677e..1ac33597ba 100644
--- a/core/lib/Drupal/Component/Discovery/composer.json
+++ b/core/lib/Drupal/Component/Discovery/composer.json
@@ -6,8 +6,8 @@
   "license": "GPL-2.0+",
   "require": {
     "php": ">=5.5.9",
-    "drupal/core-filecache": "~8.2",
-    "drupal/core-serialization": "~8.2"
+    "drupal/core-filecache": "~8.3",
+    "drupal/core-serialization": "~8.3"
   },
   "autoload": {
     "psr-4": {
diff --git a/core/lib/Drupal/Component/EventDispatcher/composer.json b/core/lib/Drupal/Component/EventDispatcher/composer.json
index be66232834..b72e600fbd 100644
--- a/core/lib/Drupal/Component/EventDispatcher/composer.json
+++ b/core/lib/Drupal/Component/EventDispatcher/composer.json
@@ -7,7 +7,7 @@
   "require": {
     "php": ">=5.5.9",
     "symfony/dependency-injection": "~2.8",
-    "symfony/event-dispatcher": "~2.7"
+    "symfony/event-dispatcher": "~2.8"
   },
   "autoload": {
     "psr-4": {
diff --git a/core/lib/Drupal/Component/Gettext/composer.json b/core/lib/Drupal/Component/Gettext/composer.json
index 2dab698489..ccc975dede 100644
--- a/core/lib/Drupal/Component/Gettext/composer.json
+++ b/core/lib/Drupal/Component/Gettext/composer.json
@@ -10,7 +10,7 @@
   },
   "require": {
     "php": ">=5.5.9",
-    "drupal/core-utility": "~8.2"
+    "drupal/core-utility": "~8.3"
   },
   "autoload": {
     "psr-4": {
diff --git a/core/lib/Drupal/Component/HttpFoundation/composer.json b/core/lib/Drupal/Component/HttpFoundation/composer.json
index 1b3920bc3d..790fc61465 100644
--- a/core/lib/Drupal/Component/HttpFoundation/composer.json
+++ b/core/lib/Drupal/Component/HttpFoundation/composer.json
@@ -6,7 +6,7 @@
   "license": "GPL-2.0+",
   "require": {
     "php": ">=5.5.9",
-    "symfony/http-foundation": "~2.7"
+    "symfony/http-foundation": "~2.8"
   },
   "autoload": {
     "psr-4": {
diff --git a/core/lib/Drupal/Component/Plugin/composer.json b/core/lib/Drupal/Component/Plugin/composer.json
index 4ffeeed3a2..3b72ee5973 100644
--- a/core/lib/Drupal/Component/Plugin/composer.json
+++ b/core/lib/Drupal/Component/Plugin/composer.json
@@ -6,7 +6,7 @@
   "license": "GPL-2.0+",
   "require": {
     "php": ">=5.5.9",
-    "symfony/validator": "~2.7"
+    "symfony/validator": "~2.8"
   },
   "autoload": {
     "psr-4": {
diff --git a/core/lib/Drupal/Component/Render/composer.json b/core/lib/Drupal/Component/Render/composer.json
index 88291e91bb..c4f496580e 100644
--- a/core/lib/Drupal/Component/Render/composer.json
+++ b/core/lib/Drupal/Component/Render/composer.json
@@ -6,7 +6,7 @@
   "license": "GPL-2.0+",
   "require": {
     "php": ">=5.5.9",
-    "drupal/core-utility": "~8.2"
+    "drupal/core-utility": "~8.3"
   },
   "autoload": {
     "psr-4": {
diff --git a/core/lib/Drupal/Component/Serialization/composer.json b/core/lib/Drupal/Component/Serialization/composer.json
index 5d629cfc15..ff249fe20d 100644
--- a/core/lib/Drupal/Component/Serialization/composer.json
+++ b/core/lib/Drupal/Component/Serialization/composer.json
@@ -6,7 +6,7 @@
   "license": "GPL-2.0+",
   "require": {
     "php": ">=5.5.9",
-    "symfony/yaml": "~2.7"
+    "symfony/yaml": "~2.8"
   },
   "autoload": {
     "psr-4": {
diff --git a/core/lib/Drupal/Component/Utility/composer.json b/core/lib/Drupal/Component/Utility/composer.json
index 13671efef4..ea0e93c6d2 100644
--- a/core/lib/Drupal/Component/Utility/composer.json
+++ b/core/lib/Drupal/Component/Utility/composer.json
@@ -7,7 +7,7 @@
   "require": {
     "php": ">=5.5.9",
     "paragonie/random_compat": "^1.0|^2.0",
-    "drupal/core-render": "~8.2"
+    "drupal/core-render": "~8.3"
   },
   "autoload": {
     "psr-4": {
diff --git a/core/lib/Drupal/Component/Uuid/composer.json b/core/lib/Drupal/Component/Uuid/composer.json
index deca54b80d..80c6bac817 100644
--- a/core/lib/Drupal/Component/Uuid/composer.json
+++ b/core/lib/Drupal/Component/Uuid/composer.json
@@ -10,7 +10,7 @@
   },
   "require": {
     "php": ">=5.5.9",
-    "drupal/core-utility": "~8.2"
+    "drupal/core-utility": "~8.3"
   },
   "autoload": {
     "psr-4": {
diff --git a/core/tests/Drupal/Tests/ComposerIntegrationTest.php b/core/tests/Drupal/Tests/ComposerIntegrationTest.php
index a64804cf8b..0682e6fb7c 100644
--- a/core/tests/Drupal/Tests/ComposerIntegrationTest.php
+++ b/core/tests/Drupal/Tests/ComposerIntegrationTest.php
@@ -125,6 +125,45 @@ public function testAllModulesReplaced() {
     }
   }
 
+  /**
+   * Tests components composer.json.
+   */
+  public function testComponentsComposerJson() {
+    $json = json_decode(file_get_contents($this->root . '/core/composer.json'));
+    $core_dependencies = (array) $json->require;
+    list($major_version, $minor_version) = explode('.', \Drupal::VERSION);
+    $core_version = "$major_version.$minor_version";
+    // Assemble a path to core components.
+    $components = $this->root . '/core/lib/Drupal/Component';
+
+    // Get a list of all the files in the components path.
+    $folders = scandir($components);
+
+    // Make sure we only deal with directories that aren't . or ..
+    $components_names = [];
+    $discard = ['.', '..'];
+    foreach ($folders as $folder_name) {
+      if ((!in_array($folder_name, $discard)) && is_dir($components . '/' . $folder_name)) {
+        $components_names[] = $folder_name;
+      }
+    }
+
+    foreach ($components_names as $component) {
+      $component_json = json_decode(file_get_contents("$components/$component/composer.json"));
+      if (isset($component_json->require)) {
+        foreach ((array) $component_json->require as $dependency => $version) {
+          if (strpos($dependency, 'drupal/core-') === FALSE) {
+            $this->assertEquals($core_dependencies[$dependency], $version, "$component has correct version dependency of $dependency.");
+          }
+          else {
+            $this->assertEquals("~$core_version", $version, "$component has correct version dependency of $dependency.");
+          }
+        }
+      }
+    }
+
+  }
+
   // @codingStandardsIgnoreStart
   /**
    * The following method is copied from \Composer\Package\Locker.
