localgovdrupal / localgov

Installation profile for the LocalGov Drupal distribution.
GNU General Public License v2.0
81 stars 18 forks source link

[Workspaces] Staging content to release many additions and changes at once #733

Open finnlewis opened 2 months ago

finnlewis commented 2 months ago

As a content designer

I want to add new pages, edit existing pages and update content without publishing and then publish an entire section of content at once,

So that I can work on content in a single (production) environment and then release it all when we're ready.

Notes:

This seems to be a common need and there are a number of ways that councils are already addressing it.

Entity share is used at Newcastle and Essex to write content on the staging site and migrate it to the production site.

Drupal core workspaces (now stable in 10.3) takes a different approach, allowing the creation of a 'staging' workspace which can be unpublished while content is being created, then published all at once.

There are probably other approaches!

finnlewis commented 2 months ago

@willguv - I think we might test Drupal core workspaces at Greenwich, so can report back on that.

In the mean time, it might be good to gather more intel on which councils are using which approach.

I guess one outcome of this is a couple of how-to guides.

  1. How to use Entity Share to stage content and deploy to live.
  2. How to use Drupal Core Workspaces to stage content and deploy to live.
willguv commented 2 months ago

Thanks for writing this Finn, I'll pick up with Aaron and the content group

markconroy commented 2 months ago

I'd love to give workspaces in core a shot. That's been in development since about 2016 so should be pretty solid now if it's stable. Also, it's great to leverage core as much as possible so we have fewer moving parts/external code to rely on.

finnlewis commented 4 weeks ago

@ekes has been working on this and has identified 3 patches that we need to make workspaces to work.

Probably for the localgov_project composer.json.