Skip to content

DevShop 1.8.0-beta1

Compare
Choose a tag to compare
@jonpugh jonpugh released this 29 Aug 14:01
· 33 commits to 1.x since this release

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 and git-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 call d()->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.