Since Composer is the widely accepted standard for building websites running Drupal 9 and later, Remote Administration (RA) uses only Composer builds and updates to ensure dependencies are included in any Drupal core 9.x or later or contributed module update.
RA will continue to use Drush to detect insecure modules.
Installations of Drupal 9.x or later must be built with a fully functional
composer.json
file including all code necessary to run your codebase,
and containing no package conflicts.
Important
Updating Drupal core using Drush does not guarantee dependency updates are included, which may cause errors on your website. Acquia strongly recommends that websites running Drupal 9 or later be built and updated using Composer. Acquia can provide only limited troubleshooting support for websites updated on production environments using Drush.
The following outlines the minimum requirements for a composer.json
file to be compatible with Remote Administration:
Important
The composer.json
file for your website must be located above the
docroot
directory in your repository. Do not move the composer.json
or vendor/
directory packaged with Drupal core, located inside of the
docroot
directory. The following example shows a repository with the
composer.json
file and vendor/
directory in the correct locations
relative to your repository’s root:
vendor/
directory must be located in the repository’s root
above the docroot
directory. This directory must be managed
through version control, and the proper autoloading must be set up to
redirect Drupal to the new vendor
location. For more information,
see Drupal scaffold.composer.json
file must specify at least the following
basic information:"repositories": {
"require": {
"require-dev": {
"config": {
"conflict": {
"extra": {
"installer-paths": {
The require section of the composer.json
file needs to list Drupal core
and all contributed modules, packages required to run your Drupal
website, and the minimum php version for your site requirement.
"require": {
"php": "7.1"
}
In the config
section, you must specify your platform php version:
"config": {
"platform": {
"php": "7.4"
}
}
All Drupal code must be located within the docroot folder.
All non-Drupal files added to any directory must either be added as a
public repository,
added as a private repository,
excluded using drupal-scaffold,
or recreated through patches
declared in your composer.json
.
Important
The RA composer.json
RA file templates includes everything
required to make your composer.json
file compatible with RA. If you
are building a new website or converting an existing website to a Composer
build, Acquia recommends you use this template as a starting point.
The Remote Administration update process performs a series of update commands against your website on the RA environment, determines any needed updates, applies the changes, and notifies you, as described in the following steps:
composer.json
file above
the docroot
directory.composer.json
is located, RA will proceed with the
update process.composer.json
file is located, RA will revert to applying
updates using Drush. For Drupal 9 or later websites, refer to
the important note about Drupal 9 or
later and using Drush for updates.drush pm-updatestatus
command:composer update --dry-run
command in your RA environment to
ensure your composer.json
file has no errors preventing
updates from completing. No changes are made to your codebase.
If conflicts requiring resolution before applying updates are
detected in your composer.json
file, you will receive an Acquia
Support ticket notifying you of these conflicts so you can resolve them.composer update package/name --with-all-dependencies
command to
update your package to the highest available version allowed by the
version constraints in your composer.json
file.drush updb
command.The Acquia RA Composer
GitHub repository has an example composer.json
file you can use
as a starting point for creating your website’s composer.json
. The
repository has the following files:
composer.json
: An example file for Composerreadme.md
: How to use the composer.json
annotated.composer.json
: An annotated example file with
explanations of the configuration sectionsTo use the example Composer file, you can download the file and copy its
contents into your own composer.json
file. Alternately, clone the
repository and then copy the file to your website’s repository.
Important
You must change the example Composer file to include all the modules your website requires. Copying the example file into your code repository without modifications will prevent RA from providing you with updates, and may also cause website downtime.