Skip to content

2.0.0-alpha2

Pre-release
Pre-release
Compare
Choose a tag to compare
@becw becw released this 17 Oct 18:55
4a1f93d

This is an alpha release of the-build 2.0 and is not expected to be fully functional. Note that this is entirely unrelated to the 2.0.0-alpha1 tag.

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 exposed 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 the property structure. This means that site-specific properties moved from drupal.* to drupal.sites.default.*, and there is now boilerplate for loading properties from one "active" site into drupal.site.*.
  • Drupal config exports have moved from conf/drupal/config/ to config/sites/default/, which also supports exporting config for multisites.
  • the-build now provides a default settings.php for Drupal, plus a host-specific settings.HOST.php, and running phing build compiles environment-specific settings to settings.build.php

Other functionality changes

  • 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.

Upgrading to this release

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.xml file.

  1. 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)
  2. 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 to docroot/
    • When it offers to install Drupal for you, respond N
  3. You've installed the new version! Now, you need to reconcile your previous configurations and integrate any customizations.
  4. If the install moved your web/ directory to docroot/, 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)"
    
  5. 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)"
    
  6. 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.*.properties.yml (see docs/configuration.md)
    • conf/drupal/services.yml --> .the-build/drupal.services.yml
    • conf/drupal/settings.php --> .the-build/drupal.settings.build.php
    • conf/drupal/settings.acquia.php --> docroot/sites/default/settings.acquia.php
    • conf/drushrc.php --> drush/drushrc.php
  7. If you're using artifact-based deployment, review the documentation at docs/artifacts.md
  8. If you're using Drupal multisite, review the documentation at docs/drupal_multisite.md
  9. Test with phing install, phing test