drupal/operations

Operations Experience Platform

2.1.0-beta4 2023-11-08 08:07 UTC

README

Tools for Operating Drupal Sites

Welcome to Drupal Operations: a suite of modules and tools to build ops platforms out of Drupal.

This repository serves as the main development codebase for all of the Operations submodules and packages.

For more information, see the Drupal.org Project Page.

Components

Drupal Modules

Whenever possible, the Drupal Operations Modules can be installed independently of one another. The Site module is designed to go into every site, so that it can report back to Site Manager.

  1. Site Entity Module - https://www.drupal.org/project/site

    Provides advanced status and information about any Drupal site. Connects to Site Manager for tracking and control.

  2. Site Manager Module- https://www.drupal.org/project/site_manager

    Provides a CMS-like experience for monitoring and managing multiple sites.

  3. Operations - https://www.drupal.org/project/operations_ui

    Provides a central dashboard for browsing Sites, Servers, Tasks & Users. Right now, it doesn't do much other than add an Admin menu section.

Drupal Distributions

Since there are many possibilities with Ox, the project will contain different distributions for different purposes. Additions are welcome!

  1. Stock Ox

    Stock installation of the Ox Platform. Enables Site Manager & Operations out of the box. Used for development.

PHP Packages

Whenever a useful tool is created, a PHP Package can be created to release independently of Ox. Drupal core uses this method.

The following PHP Packages are developed in this repository:

  1. Git Split

    A composer plugin that pushes subfolders into other git repositories using "git-split" method. Add composer.json:extras.git-split configuration and use composer git:split to push branches and tags.

  2. Drush Behat Params

    A basic drush plugin that calls behat with BEHAT_PARAMS with URL, root and drush alias set automatically.

  3. Drupal Settings

    A universal Settings.php file that sets recommended defaults based on the hosting environment. Removes the need for complex settings.php files or manually setting database configuration.

Issues

Issue management takes place in the Operations project issue queues: https://www.drupal.org/project/issues/operations?categories=All

Development

The primary branch of development is 2.x.

Everything needed to develop Operations is in this repository, including a Lando development environment with multiple sites for testing Site Manager connections:

  1. Find or Submit an issue to work on at https://www.drupal.org/project/issues/operations?categories=All

  2. Create an issue fork: On the issue page, underneath the issue description, there is a big green button labelled "Create Issue Fork".

  3. Clone your repository and create a branch for the issue:

    See the buttons on the issue.

  4. Enter the code and launch lando:

     lando start
    
  5. Install Drupal Operations using the composer command.

     composer ox:launch
    

This will give you 4 sites to work with.

  1. Do the work, push the code.
  2. Once ready, submit a Merge Request using the gitlab or the issue page.
  3. Mark the issue Needs review.