Drush make, great tool for building Drupal web sites

Drush make

Drush is a powerful tool for building Drupal web sites. Here is much more information about Drush commands: https://drushcommands.com/

How to install Drush: http://docs.drush.org/en/8.x/install/

Here are some examples of how you can use it to update modules, as well as how to update Drupal core to a specific version.

Create a fresh project in a folder called "drupal" from make-file, with both core and modules

drush make project_name.make.yml drupal --verbose

Update some modules, according to the version number in make-file. Note how you need to declare not to update Drupal core with "--no-core", otherwise you get the error "Base path drupal already exists"

drush make --no-core project_name.make.yml drupal --verbose

Generate make file, based on current modules in project

drush generate-makefile make-current.yml

Update Drupal core to specific version

drush up drupal-8.3.6

Update to latest Drupal core version

drush up drupal

Only update core and modules, if there is a security-release for them

drush up --security-only

Example make.yml, with versions, generated with drush generate-makefile:

core: 8.x
api: 2
projects:
  drupal:
    version: 8.3.7
  admin_toolbar:
    version: '1.16'
  ctools:
    version: '3.0'
  pathauto:
    version: '1.0'
  search_api:
    version: '1.4'
  search_api_autocomplete:
    version: 1.0-beta1
  token:
    version: '1.0'
  bootstrap:
    version: '3.6'

Example make.yml, without versions, latest versions will be downloaded. Also, target folders for modules and themes are defined

# Drupal core version
core: '8.x'

# Drush Make API version
api: 2

# Default folder for contrib modules
defaults:
  projects:
    subdir: 'contrib'

# Core project
projects:
  drupal:
    version: ~

# Common modules and themes
  admin_toolbar:
    version: ~
  piwik:
    version: ~

  # SEARCH
  search_api:
    version: ~
  search_api_autocomplete:
    version: ~

  # Pathauto and required modules
  ctools:
    version: ~
  pathauto:
    version: ~
  token:
    version: ~

  # Migrate modules
  migrate_plus:
    version: ~
  migrate_tools:
    version: ~
  migrate_source_csv:
    version: ~

  # Bootstrap theme
  bootstrap:
    version: ~
    type: 'theme'
    subdir: ''