DevShop 1.8.0-beta1
The Big Payback
August 29, 2023
Our first release in almost 3 years. This release is a huge repayment of technical debt, and our last on a Drupal 7 / Aegir based framework.
Thanks for all the fish.
Support OpenDevShop
OpenDevShop was mostly created and updated without pay. Please support OpenDevShop financially at opencollective.com/devshop
ATTN UPGRADERS:
There is NO AUTOMATED UPGRADE PATH to this release. The last release of DevShop used Makefiles. So if you are still on that, you'll need to upgrade manually. See docs/upgrade-from-1.7.md
Release Notes
- Solved Drush 9+ incompatibility with Aegir. Global drush is now Drush 10, and can be upgraded. DevShop Control is now composer, so it includes drush 8 to remain compatible with hosting/provision.
- Drush 9+ Yaml alias support.
- Moved web interface code to main
opendevshop/devshop
repository: ./src/DevShop/Control.- No more separate repository for backend & front-end code.
- Provision & Hosting are included via composer, improving stability by locking in their versions.
- Autoloader brings all code together reducing conflicts.
- Behat tests are integrated with the composer codebase.
- Automatic web path setting! If you use drupal-scaffold, you no longer have to specify the webroot.
- Various GitHub CI fixes.
- Fix robofile.
- PHP 8 support.
- Added "GitTraits" package: simple PHP package for reading information about it's git repo.
- Provision/Hosting improvements
- "Parallel" task execution:
- Tasks now run one at a time per context so that tasks on a site don't collide.
- Hosting queues and cron executions now launch tasks in their own process, running as fast as possible.
- The regular, cron-drive Hosting Task Queue is now enabled so that both cron and hosting-queued can launch tasks.
- The maxiumum number of parallel tasks is configured by the Aegir Queues settings page.
- Git Queue scans every git platform for new upstream commits and creates new Deploy tasks automatically. This provides continuous deployment for users behind a firewall that can't use a webhook. Uses simple shell scripts,
git-ref-type
andgit-behind
.
- Install Methods:
- Aegir Site forms now natively support the "Install Method" selection widget from DevShop. Choose Install profile, SQL Sync, or Environment clone when creating a site or as the default per project.
- "Allow Reinstall Site" setting allows one click site "reinstall" using the chosen method: profile, sync, etc.
- Deploy hooks:
- Define hooks for composer build, post-code deploy, and testing in composer.
- Control what hooks run on each task.
- Allow reinstall in deploy task.
- Fixed GitHub and BitBucket integrations.
- Create projects from existing bitbucket repos. Automatic PR environments for bitbucket. Repaired github deployment and commit status integration.
- DevShop settings UX improvements.
- DevShop Project Create wizard improvements. No more step 4.
- Fix weird "last task" stuff.
- Fixed dynamic task JS.
- Fixed problematic deletion of environments. Should finally, truly delete everything properly, even if it's a total fail? Please test!
- Fixed strange site-state display issues when installs went wrong.
- Fixed interdependency issues with all the components.
- Add found drush aliases to sync source options.
- Attempts to improve docker situation.
- Add version to install scripts using install/Makefile.
- Aegir:
- Get provision to work inside a composer codebase.
- Moved many settings to site nodes. Git info, install method, deploy settings.
- Moved all properties to Site Context instead of Platform. No more
d()->platform->root
. Just calld()->root
. - No more platform nodes. Just create a site node. Set platform path, git repo, in site form.
- Install profile is now a string. It was too difficult to work with. If someone wants to, they can create a new module to give users a better interface.
- Added "group" and "environment" site properties to represent "project" and "environment". This was needed to generate drush9 yaml aliases because they require a group (filename) and environment (aliasname).
- Move the last deploy stuff out of devshop to provision-deploy-code.
- Moved the last install method stuff out of devshop to provision-install.
@todo: Final 1.8.0 Release Blockers
These are mostly all regressions. All of the little features I created need to be tested. This will be done before we call it a 1.8.0.
- Merge ubuntu 20+ PR.
- Ensure upgrade path works: DevShop control platform path changed: upgrade probably does not work right now.
- Ensure Aegir Cloud, Aegir Docker & Ansible work.
- Ensure git commit, tag, branch and deploy all work.
- Ensure "Drupal update" task, Config Export, and Config import tasks work.
- Ensure devshop_dothooks still works with new provision deploy stuff.
- Remove Client form on sites.
- Ensure devshop_support widget & connection works.