diff --git a/drupalorg_project/plugins/release_packager/DrupalorgProjectPackageRelease.class.php b/drupalorg_project/plugins/release_packager/DrupalorgProjectPackageRelease.class.php
index 5e71a93..a710e5b 100644
--- a/drupalorg_project/plugins/release_packager/DrupalorgProjectPackageRelease.class.php
+++ b/drupalorg_project/plugins/release_packager/DrupalorgProjectPackageRelease.class.php
@@ -115,6 +115,17 @@ class DrupalorgProjectPackageRelease implements ProjectReleasePackagerInterface
       return 'no-op';
     }
 
+    // Install core dependencies with composer for Drupal 8 and above.
+    if ($this->project_node->type == 'project_core'
+      && $this->release_node->field_release_version_major[$this->release_node->language][0]['value'] >= 8
+      && file_exists($this->export . '/composer.json')) {
+      if (!drush_shell_cd_and_exec($this->temp_directory, "composer install --working-dir=%s --prefer-dist --no-interaction", $this->export)) {
+        watchdog('package_error', 'Installing core dependencies with composer failed: <pre>@output</pre>', array('@output' => implode("\n", drush_shell_exec_output())), WATCHDOG_ERROR);
+        drush_shell_exec('rm -rf %s', $this->repository);
+        return 'error';
+      }
+    }
+
     // If this is a -dev release, do some magic to determine a spiffy
     // "rebuild_version" string which we'll put into any .info files and
     // save in the DB for other uses.
