Debugging Drupal 8 Core not updating with Composer

18 August 2017

I have a website running 8.3.4 and Open Social which I recently started working on.

I wanted to update it to the latest version of Drupal core, which is currently 8.3.7.

I tried to run the command I usually run when updating core on other websitescomposer update "drupal/core" --with-dependencies and got the following. You’ll notice that even though it updated 2 packages, the end result is it unsuccessfully remained on 8.3.4

Thumbnail

Show all versions of Drupal core available to Composer

At this point I thought it would be good to run the command composer show -a "drupal/core" to see all versions of drupal core that were available.

It listed the following

name : drupal/core
descrip. : Drupal is an open source content management platform powering millions of websites and applications.
keywords :
versions : 8.5.x-dev, 8.4.x-dev, 8.4.0-beta1, 8.4.0-alpha1, 8.3.x-dev, 8.3.7, 8.3.6, 8.3.5, 8.3.4, 8.3.3, 8.3.2, 8.3.1, 8.3.0, 8.3.0-rc2, 8.3.0-rc1, 8.3.0-beta1, 8.3.0-alpha1, 8.2.x-dev, 8.2.8, 8.2.7, 8.2.6, 8.2.5, 8.2.4, 8.2.3, 8.2.2, 8.2.1, 8.2.0, 8.2.0-rc2, 8.2.0-rc1, 8.2.0-beta3, 8.2.0-beta2, 8.2.0-beta1, 8.1.x-dev, 8.1.10, 8.1.9, 8.1.8, 8.1.7, 8.1.6, 8.1.5, 8.1.4, 8.1.3, 8.1.2, 8.1.1, 8.1.0, 8.1.0-rc1, 8.1.0-beta2, 8.1.0-beta1, 8.0.x-dev, 8.0.6, 8.0.5, 8.0.4, 8.0.3, 8.0.2, 8.0.1, 8.0.0, 8.0.0-rc4, 8.0.0-rc3, 8.0.0-rc2, 8.0.0-rc1, 8.0.0-beta16, 8.0.0-beta15, 8.0.0-beta14, 8.0.0-beta13, 8.0.0-beta12, 8.0.0-beta11, 8.0.0-beta10, 8.0.0-beta9, 8.0.0-beta8, 8.0.0-beta7, 8.0.0-beta6
type : drupal-core
license : GPL-2.0+
source : [git] https://github.com/drupal/core.gitdeb7a1dc81554865236e6279f88860618ef65ae5
dist : [zip] https://api.github.com/repos/drupal/core/zipball/deb7a1dc81554865236e6279f88860618ef65ae5 deb7a1dc81554865236e6279f88860618ef65ae5
names : drupal/core, drupal/action, drupal/aggregator, drupal/automated_cron, drupal/bartik, drupal/ban, drupal/basic_auth, drupal/big_pipe, drupal/block, drupal/block_content, drupal/block_place, drupal/book, drupal/breakpoint, drupal/ckeditor, drupal/classy, drupal/color, drupal/comment, drupal/config, drupal/config_translation, drupal/contact, drupal/content_moderation, drupal/content_translation, drupal/contextual, drupal/core-annotation, drupal/core-assertion, drupal/core-bridge, drupal/core-datetime, drupal/core-dependency-injection, drupal/core-diff, drupal/core-discovery, drupal/core-event-dispatcher, drupal/core-file-cache, drupal/core-filesystem, drupal/core-gettext, drupal/core-graph, drupal/core-http-foundation, drupal/core-php-storage, drupal/core-plugin, drupal/core-proxy-builder, drupal/core-render, drupal/core-serialization, drupal/core-transliteration, drupal/core-utility, drupal/core-uuid, drupal/datetime, drupal/datetime_range, drupal/dblog, drupal/dynamic_page_cache, drupal/editor, drupal/entity_reference, drupal/field, drupal/field_layout, drupal/field_ui, drupal/file, drupal/filter, drupal/forum, drupal/hal, drupal/help, drupal/history, drupal/image, drupal/inline_form_errors, drupal/language, drupal/layout_discovery, drupal/link, drupal/locale, drupal/minimal, drupal/media, drupal/menu_link_content, drupal/menu_ui, drupal/migrate, drupal/migrate_drupal, drupal/migrate_drupal_ui, drupal/node, drupal/options, drupal/outside_in, drupal/page_cache, drupal/path, drupal/quickedit, drupal/rdf, drupal/responsive_image, drupal/rest, drupal/search, drupal/serialization, drupal/seven, drupal/shortcut, drupal/simpletest, drupal/standard, drupal/stark, drupal/statistics, drupal/syslog, drupal/system, drupal/taxonomy, drupal/telephone, drupal/text, drupal/toolbar, drupal/tour, drupal/tracker, drupal/update, drupal/user, drupal/views, drupal/views_ui, drupal/workflows
autoload
psr-4
Drupal\Core\ => lib/Drupal/Core
Drupal\Component\ => lib/Drupal/Component
Drupal\Driver\ => ../drivers/lib/Drupal/Driver
classmap
lib/Drupal.php, lib/Drupal/Component/Utility/Timer.php, lib/Drupal/Component/Utility/Unicode.php, lib/Drupal/Core/Database/Database.php, lib/Drupal/Core/DrupalKernel.php, lib/Drupal/Core/DrupalKernelInterface.php, lib/Drupal/Core/Site/Settings.php
requires
asm89/stack-cors ^1.1
composer/semver ^1.0
doctrine/annotations ^1.2
doctrine/common ^2.5
easyrdf/easyrdf ^0.9
egulias/email-validator ^1.2
guzzlehttp/guzzle ^6.2.1
masterminds/html5 ^2.1
paragonie/random_compat ^1.0|².0
php >=5.5.9
stack/builder ^1.0
symfony-cmf/routing ^1.4
symfony/class-loader ~3.2.8
symfony/console ~3.2.8
symfony/dependency-injection ~3.2.8
symfony/event-dispatcher ~3.2.8
symfony/http-foundation ~3.2.8
symfony/http-kernel ~3.2.8
symfony/polyfill-iconv ^1.0
symfony/process ~3.2.8
symfony/psr-http-message-bridge ^1.0
symfony/routing ~3.2.8
symfony/serializer ~3.2.8
symfony/translation ~3.2.8
symfony/validator ~3.2.8
symfony/yaml ~3.2.8
twig/twig ^1.23.1
zendframework/zend-diactoros ^1.1
zendframework/zend-feed ^2.4
requires (dev)
behat/mink 1.7.x-dev
behat/mink-goutte-driver ^1.2
drupal/coder ^8.2.12
jcalderonzumba/gastonjs ^1.0.2
jcalderonzumba/mink-phantomjs-driver ^0.3.1
mikey179/vfsstream ^1.2
phpunit/phpunit >=4.8.35 <5
symfony/css-selector ~3.2.8
symfony/phpunit-bridge ~3.2.8
phpspec/prophecy ^1.4
conflicts
drush/drush <8.1.10
replaces
drupal/action self.version
drupal/aggregator self.version
drupal/automated_cron self.version
drupal/bartik self.version
drupal/ban self.version
drupal/basic_auth self.version
drupal/big_pipe self.version
drupal/block self.version
drupal/block_content self.version
drupal/block_place self.version
drupal/book self.version
drupal/breakpoint self.version
drupal/ckeditor self.version
drupal/classy self.version
drupal/color self.version
drupal/comment self.version
drupal/config self.version
drupal/config_translation self.version
drupal/contact self.version
drupal/content_moderation self.version
drupal/content_translation self.version
drupal/contextual self.version
drupal/core-annotation self.version
drupal/core-assertion self.version
drupal/core-bridge self.version
drupal/core-datetime self.version
drupal/core-dependency-injection self.version
drupal/core-diff self.version
drupal/core-discovery self.version
drupal/core-event-dispatcher self.version
drupal/core-file-cache self.version
drupal/core-filesystem self.version
drupal/core-gettext self.version
drupal/core-graph self.version
drupal/core-http-foundation self.version
drupal/core-php-storage self.version
drupal/core-plugin self.version
drupal/core-proxy-builder self.version
drupal/core-render self.version
drupal/core-serialization self.version
drupal/core-transliteration self.version
drupal/core-utility self.version
drupal/core-uuid self.version
drupal/datetime self.version
drupal/datetime_range self.version
drupal/dblog self.version
drupal/dynamic_page_cache self.version
drupal/editor self.version
drupal/entity_reference self.version
drupal/field self.version
drupal/field_layout self.version
drupal/field_ui self.version
drupal/file self.version
drupal/filter self.version
drupal/forum self.version
drupal/hal self.version
drupal/help self.version
drupal/history self.version
drupal/image self.version
drupal/inline_form_errors self.version
drupal/language self.version
drupal/layout_discovery self.version
drupal/link self.version
drupal/locale self.version
drupal/minimal self.version
drupal/media self.version
drupal/menu_link_content self.version
drupal/menu_ui self.version
drupal/migrate self.version
drupal/migrate_drupal self.version
drupal/migrate_drupal_ui self.version
drupal/node self.version
drupal/options self.version
drupal/outside_in self.version
drupal/page_cache self.version
drupal/path self.version
drupal/quickedit self.version
drupal/rdf self.version
drupal/responsive_image self.version
drupal/rest self.version
drupal/search self.version
drupal/serialization self.version
drupal/seven self.version
drupal/shortcut self.version
drupal/simpletest self.version
drupal/standard self.version
drupal/stark self.version
drupal/statistics self.version
drupal/syslog self.version
drupal/system self.version
drupal/taxonomy self.version
drupal/telephone self.version
drupal/text self.version
drupal/toolbar self.version
drupal/tour self.version
drupal/tracker self.version
drupal/update self.version
drupal/user self.version
drupal/views self.version
drupal/views_ui self.version
drupal/workflows self.version

Noticing the conflict

In the text above, I noticed there was a conflict

conflicts

drush/drush <8.1.10

I was tempted to believe it was Drush that was preventing me from proceeding, but when digging deeper, I ran the command composer why-not "drupal/core:8.3.7" and received

goalgorilla/open_social 1.1.0 requires drupal/core (8.3.4)

Aha, so the Open Social distribution which is installed relies on a specific version of Drupal Core. To update Drupal core I need to first update Open Social.

Updating Open Social

To update this I ran composer update "goalgorilla/open_social" --with-dependencies which gave me

Thumbnail

You’ll notice that Drupal core was updated from 8.3.4 to 8.3.7 as a side effect. To double check I ran drush status and saw the following which made me happy.

Thumbnail

I then exported config, cleared caches, confirmed that the site worked correctly, before committing my changes to git.

I hope you found this article useful. If you did, please share, tweet or comment below.