The web interface for DevShop is called the "DevShop Control" site. Every DevShop has one.
This code, the DevShop Control Composer Project, is used as a template to create each DevShop's Control site codebase.
This Composer project includes the devmaster Drupal install profile and all other required libraries.
This project gets installed in every DevShop to /var/aegir/devshop-control-1.x, with the opendevshop.devmaster Ansible role
Every DevShop Server can then extend their DevShop Control Site using composer require,
and can add their custom code to a private git repository to maintain customizations over time.
DevShop Control sites can now be updated in place using git and composer. See Updating your DevShop Control Site below.
You can customize your DevShop Control site in place, but it is recommended to set up a Git repo to store your changes:
-
Create a git repository on your favorite git host:
-
Clone it and
cdinto it:git clone git@git.example.com:org/devshop.example.com.git cd devshop.example.com -
Run the composer command to create a new project using this repo as a template:
composer create-project devshop/control-template:@devWith no directory argument, the project will be built in the current directory.
-
Add to git and push.
git add -A git commit -m 'Initial Commit!' git push origin master -
Install the repo in your DevShop:
When installing DevShop, set the Ansible variable
devshop_control_git_remoteto your new git repository.See roles/opendevshop.devmaster/defaults/main.yml to see the default variable.
devshop_control_git_remote: 'git@git.example.com:org/devshop.example.com.git' devshop_control_git_docroot: web devshop_control_git_reference: "1.0.0"If you wish to swap in your own install profile, set the Ansible variable
devshop_install_profile:devshop_install_profile: devmaster@TODO: Add
--control-git-remoteoption toinstall.sh.
This project is still in an alpha state. Upgrades will be handled with composer
but the specific behavior of composer update can vary.
These instructions are a DRAFT. We will create a single command to update properly and will re-implement upgrade tests.
-
Update Drupal core first:
composer update drupal/drupal --with-dependenciesIf using git, commit the results.
-
Update the
devshop/devmasterdependency:composer update devshop/devmaster --with-dependencies -
Update the rest of the project:
composer update devshop/devmaster --with-dependencies
See the drupal-composer/drupal-project composer project for more information.
This is a mini repo, split from the DevShop Mega repo.
Please submit pull requests and issues there.
Thanks!