The goal of this release is to remove some of the templating functionality that makes planaitrnet/the-build
and palantirnet/drupal-skeleton
harder to use and maintain.
- Removed gitignore template
- Removed settings.php templating
- Changed how host-specific settings files are managed
- use --extensions instead of --ignore in "code-fix" target by @byrond in #168
- Pull out settings.php templating by @becw in #170
- Fix tests for the 4.x / "lite" changes by @becw in #172
- Try updating to Phing 3. by @becw in #171
- Update devel module to 4.1.x for D9 support. by @eric-schmidt in #176
- Remove profiles/custom/ directory from code checks by @becw in #178
- Patch Phing to fix relative symlinks by @byrond in #179
- Automatically run drush inside of ddev by @becw in #174
- Change the behat command to use depending on whether ddev is available. by @becw in #180
- Use new CircleCI convenience image for PHP by @byrond in #177
- Add drupal check dependency by @becw in #181
- Fix shell script installer by @becw in #184
- Fix php docker image name in installed circleci config by @byrond in #188
- Support drush 11 by @agentrickard in #192
- Fix the installer when using "other" by @byrond in #190
- Move phpcs configuration from the-build into a phpcs.xml file by @becw in #185
- Remove check for Composer files in styleguide by @byrond in #187
- Fail build when there are errors by @byrond in #182
- Update to PHP 8 by @becw in #194
- explicitly disable Pantheon build step by @byrond in #199
- Update coding standards in the-build. by @becw in #197
- Update code standards and run checks on Circle by @agentrickard in #205
- Make the_build_utility module compatible with Drupal 10 by @byrond in #201
- Add config ignore module. by @emmacorn in #208
- Tech 35 pantheon install by @agentrickard in #210
- Update the-build to use headless chrome by @byrond in #212
- TECH-33 Copy phpcs.xml to different path depending on host by @iajon in #211
- Updated composer cache location in CircleCI config
- Expanded Pantheon automated deployment example
- Updated default
.gitignore
for artifacts to exclude node dependencies
- The artifact process now runs
composer install
with the--ignore-platform-reqs
flag so that not all PHP extensions need to be installed when building the artifact on a CI environment
- Updated default CI file to run
sudo apt-get update
before installing apt dependencies
- Removed default installation of the "kint" Drupal module, which has been removed from the 4.0 release of devel (see discussion here).
This change does not affect existing projects.
This release introduces Drupal 9 compatibility by removing the dependency on the drupal/config_installer
package. You will need to update existing sites manually (see the "Updating" section below).
- New example CircleCI configuration to deploy to Acquia or Pantheon in
defaults/install/.circleci
phing install
now usesdrush site-install --existing-config
instead of the config_installer profile (#145)
- The
drupal.site.profile
property is no longer used by the defaultinstall
target inbuild.xml
. It will be removed in the 3.1 release. (#145)
When you update to Drupal 9, you will need to update your project to remove the dependency on the drupal/config_installer
package. In Drupal 8, these steps are optional.
- Change your site's profile to
minimal
, because the--existing-config
install option only works with profiles that don't implementhook_install()
. There's a new phing command in the-build to do this:
phing drupal-change-profile -Dnew_profile=minimal
- Export your config:
drush cex
- Update the
install
target in yourbuild.xml
:
- Change
<param>${drupal.site.profile}</param>
to<option name="existing-config" />
- See the build.xml diff for details
- Remove the
drupal/config_installer
package from your project:
composer remove drupal/config_installer
- Fix the-build installation for platformsh (PR #154)
- Allow using Drush 9 or Drush 10 (PR #150)
- If you want to use Drush 10, you can now run
composer update palantirnet/the-build --with-dependencies
. - This release changes the default
.circleci/config.yml
to install drupal-check. If you want this change in your project, compare your CircleCI config file todefaults/install/.circleci/config.yml
.
- Added Drupal 8.8's
$settings['file_temp_path']
configuration to settings.*.php (#144) - Updated phpcs usage to fix an issue where some Drupal code was no longer subject to review, because the latest release of Coder changed the default file extensions (#148)
-
This release has settings.php configuration specific to Drupal 8.8, but these changes will only be applied to new installations of Drupal.
-
If your
build.xml
uses phpcs, make the following change:<!-- Run PHP Code Sniffer. --> - <property name="phpcs.command" value="vendor/bin/phpcs --standard=${phpcs.standard} --ignore=${phpcs.ignore} ${phpcs.directories}" /> + <property name="phpcs.command" value="vendor/bin/phpcs --standard=${phpcs.standard} --extensions=${phpcs.extensions} ${phpcs.directories}" />
- Updated and loosened the version requirement for
drupal/coder
- Updated from Drush 8 to Drush 9
- Changed how the
config_sync_directory
is handled for Drupal 8.8 - see drupal.org/node/3018145
Your Drupal site must be running Drupal 8.8 to use the-build version 2.2 and newer.
The Drush update requires a lot of dependency math! The easiest way to resolve it is to remove the-build from the requirements, and then re-add it.
composer remove --dev palantirnet/the-build
composer require --dev palantirnet/the-build
Afterwards, you'll need to update the drush configuration in your project:
- Remove
drush/drushrc.php
- Optional: copy
vendor/palantirnet/the-build/defaults/install/drush/drush.yml
todrush/drush.yml
- Migrate your site aliases by running
drush site:alias-convert
from within your VM (otherwise you'll get any global drush aliases you have set up)
- Preserve file permissions when building the artifact (#130 / #138)
- Hide internal phing targets from
phing -l
, and update the default target in the build.xml template to runphing -l
(#139)
- drupal-check is now part of the default code reviews (#133 / #129)
- New mysql package name in the default CircleCI configuration (#134)
These changes affect build.xml
and .circleci/config.yml
, which means that in addition to updating the package itself, you will either need to re-run the-build's installer script, or apply the changes manually to your copies of those files:
- Changes to apply to your build.xml
- Changes to apply to your .the-build/build.circleci.yml
- Changes to apply to your .the-build/build.yml (make sure you've updated to the-vagrant 2.4.0 so that drupal-check is installed globally on the VM)
- Fixed
settings.php
and environment configuration for Platform.sh (#126, #131) - Fixed bugs with first runs of
phing acquia-get-backup
(#132) - Removed deprecated config for testing the
palantirnet/drupal-skeleton
project (#128)
This release has several core architectural changes:
- Property files are now formatted as YAML
- Default property values and full documentation are now centralized in the
defaults.properties.yml
file within the-build - Configuration for the-build is now stored in its own directory,
.the-build/
- The build, install, and test functionality is now fully enumerated in the template
build.xml
file that gets installed into projects, so that it's easier for developers to understand and modify these targets - Drupal multisite configurations are supported by default. Site-specific properties moved from
drupal.*
todrupal.sites.default.*
, and there is now boilerplate for loading properties from one "active" site intodrupal.site.*
. - Drupal config exports have moved from
conf/drupal/config/
toconfig/sites/default/
, which also supports exporting config for multisites. - Default splits for the
config_split
module are included. - the-build now provides a default
settings.php
for Drupal, plus a host-specificsettings.HOST.php
, and runningphing build
compiles environment-specific settings tosettings.build.php
Additional changes include:
- Rewritten install process. This code is now all in one location, and configuration prompts for values that are not generally changed from the defaults have been removed. Templates for Behat and CircleCI are more dynamic, and templates for configuring Pantheon and Platform.sh hosting have been added.
- Rewritten artifact build process. This code should now be more readable, reliable, and adaptable. Artifacts are available from the default
build.xml
file, and are suitable for deployment on Acquia, Pantheon, or generic hosting environments. - Rewritten Acquia targets, including downloading a recent database backup.
- Applying the MIT license to the project.
Here's the list of issues associated with the 2.0 milestone.
There is no automated upgrade path for this release. However, you can remove the previous version of the-build and install this one instead -- especially if you haven't added any heavy customization to your project's build process.
- The install will overwrite the following files:
.circleci/config.yml
.gitignore
behat.yml
build.xml
web/sites/default/settings.php
(if present)web/sites/default/settings.acquia.php
(if present)web/sites/default/settings.pantheon.php
(if present)web/sites/default/settings.platformsh.php
(if present)web/sites/default/services.yml
(if present)web/sites/default/settings.build.php
(if present)web/sites/default/services.build.yml
(if present)drush/drushrc.php
(if present)
- Run
vendor/bin/the-build-installer
- You must enter the URL you're already using
- If you select the host 'acquia', your
web/
directory will be moved todocroot/
- When it offers to install Drupal for you, respond
N
- You've installed the new version! Now, you need to reconcile your previous configurations and integrate any customizations.
- If the install moved your
web/
directory todocroot/
, go ahead and add this change to git:git rm -f web/ git add docroot/ git add composer.* git ci -m "Moved the Drupal root in order to match Acquia (the-build 2.0 update)"
- Move your Drupal config into the new location:
mkdir -p config/sites git mv conf/drupal/config config/sites/default git ci -m "Moved the exported Drupal config (the-build 2.0 update)"
- Review and re-incorporate customizations you had made to the following files:
.circleci/config.yml
.gitignore
behat.yml
build.xml
conf/build.*.properties
-->.the-build/build.*.yml
(seedocs/configuration.md
)conf/drupal/services.yml
-->.the-build/drupal/services.build.yml
conf/drupal/settings.php
-->.the-build/drupal/settings.build.php
conf/drupal/settings.acquia.php
-->.the-build/drupal/settings.build-acquia.php
+docroot/sites/default/settings.acquia.php
conf/drushrc.php
-->drush/drushrc.php
- If you're using artifact-based deployment, review the documentation at
docs/artifacts.md
- If you're using Drupal multisites, review the documentation at
docs/drupal_multisite.md
- Test with
phing install
,phing test
Copyright 2019 Palantir.net, Inc.