/sous-drupal-project

A starter project for Sous a Drupal distribution with a theme based on Emulsify Design System

Primary LanguageShell

Sous semantic-release: angular
Sous featuring Emulsify

Sous Project

A starter kit for your Drupal project that simplifies your project setup with Emulsify. This starter kit includes a small set of contrib modules, a bundle of basic configuration, and a starter theme generated by EmulsifyCLI.

Features and Configurations

Sous not only generates a custom theme based on Emulsify, it also builds upon Drupal's default configuration to help streamline the project setup process. See the feature set documentation here.

Installation

Requirements

Without these you will have difficulty installing this project.

  1. PHP ^8.1
  2. Composer 2.x
  3. Lando ^3.6

Use this command below and replace PROJECT_NAME with your chosen project name.

composer create-project fourkitchens/sous-drupal-project [PROJECT-NAME]

You will be prompted to select the version of Sous you want to install. The main versions are:

  1. Sous with Layout Builder
  2. Sous with Paragraphs

Both of these versions include Emulsify as the default theme in addition to a Gin admin and our recommended security, performance and admin modules.

Important last step: Unpacking

Recipe dependencies need to be unpacked to the root composer.json file. This feature is currently under development in Drupal core. In the meantime, you will need to run this command for every recipe in web/recipes:

php /usr/local/bin/composer unpack "$recipe_full_package_name

Eg: php /usr/local/bin/composer unpack fourkitchens/sous-layout-builder

This will move all of the dependencies into the root and remove that recipe from web/recipes.

Working with Emulsify

The Emulsify theme is installed as part of this project.

Additional Tooling

This package provides some additional tooling to support the build.

Helper scripts

To use the helper script provided you will need to have npm installed. Then just run npm run <command>. For example: npm run import-data. These commands are bash scripts located in the ./scripts/sous directory and defined in package.json.

Configuration management scripts

confex

npm run confex

Export active configuration to the config directory.

confim

npm run confim

Import the configuration to the database.

import-data

npm run import-data

Import a copy of the canonical database backup into your local instance. This assumes the database backup is located in ./reference/db.sql.gz.

local-data-bak

npm run local-data-bak

Create a local database backup. Saves the backup to the ./reference directory.

rebuild

npm run rebuild

Rebuild a fresh local instance of your site. Imports the canonical database backup and imports configuration into it.

setup

npm run setup

This is run during the installation process of composer create project.

theme-build

npm run theme-build

Builds the emulsify based theme.

theme-watch

npm run theme-watch

Used for theme development.

Semantic Versioning

Setup

  1. This repo has the following named/maintenance branches:
main
x.x
x.x.x
  1. These branches are protected on GitHub
  2. A personal access token was created for CircleCI.
  3. CircleCI was setup to run on this project and tag the releases
  4. Commit changes following the Conventional commit guidelines
  5. Push your change up and verify CircleCI passes and has run on your desired branch.

Troubleshooting

  1. Your branch must be a named stable release branch in order to get a tag.
  2. Prereleases are not supported with this package because they contain a dot.

Contributing

The composer command can be adjusted to account for a new branch you're working on.

composer create-project fourkitchens/sous-drupal-project:dev-[branch-name] PROJECT_NAME

Contribute without create-project

To run setup + install:

  1. clone repo gh repo clone fourkitchens/sous-drupal-project [directory]
  2. cd to your project directory
  3. change the name of your project in .lando.yml
  4. lando start
  5. composer install
  6. composer run-script post-create-project-cmd (Requires composer to be installed locally. i.e. outside lando)

To install recipes, use the lando install-recipe command. Eg. For the paragraphs version of Sous, run:

lando install-recipe fourkitchens/sous-paragraphs