PHPackages                             thinkshout/drupal-project - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. thinkshout/drupal-project

AbandonedArchivedProject[Framework](/categories/framework)

thinkshout/drupal-project
=========================

ThinkShout's project template for Drupal 8 projects with composer

8.x-dev(6y ago)6831[2 issues](https://github.com/thinkshout/drupal-project/issues)GPL-2.0-or-laterPHPPHP &gt;=7.0.8

Since Feb 21Pushed 4y agoCompare

[ Source](https://github.com/thinkshout/drupal-project)[ Packagist](https://packagist.org/packages/thinkshout/drupal-project)[ RSS](/packages/thinkshout-drupal-project/feed)WikiDiscussions 8.x-pantheon Synced 4w ago

READMEChangelogDependencies (11)Versions (42)Used By (0)

You should no longer be using this repo to create a new project. Start from  instead.

:::::::::::::::::::::: Customize code below ::::::::::::::::::::::
==================================================================

[](#-customize-code-below-)

Development set-up
------------------

[](#development-set-up)

This is a Drupal 9 site built using the [robo taskrunner](http://robo.li/). Clone this repo directly into `~/Sites` using `git clone` and you will be ready to begin.

This site uses PHP 7.4: make sure your local environment is running PHP 7.4 (you can run `php --version` to verify).

First you need to [install composer](https://getcomposer.org/doc/00-intro.md#installation-linux-unix-osx).

`brew install composer`

Next add `./vendor/bin` to your PATH, at the beginning of your PATH variable, if it is not already there.

Check with: `echo $PATH`

Update with: `export PATH=./vendor/bin:$PATH`

You can also make this change permanent by editing your `~/.zshrc` file: `export PATH="./vendor/bin:...`

### Initial build (existing repo) -- do this once

[](#initial-build-existing-repo----do-this-once)

From within your `~/Sites` directory run:

```
git clone git@github.com:thinkshout/new-project-name.git
cd new-project-name
composer install

```

### Building

[](#building)

Running the `robo configure` command will read the .env.dist, cli arguments and your local environment (`DEFAULT_PRESSFLOW_SETTINGS`) to generate a .env file. This file will be used to set the database and other standard configuration options. If no database name is provided, the project name and the git branch name will be used. If no database name is provided, the project name and the git branch name will be used. Note the argument to pass to robo configure can include: --db-pass; --db-user; --db-name; --db-host.

```
robo configure
# Use an alternate DB password
robo configure --db-pass=
# Use an alternate DB name
robo configure --db-name=
# Use an alternate release/production/live branch name
robo configure --prod-branch=

```

The structure of `DEFAULT_PRESSFLOW_SETTINGS` if you want to set it locally is:

```
DEFAULT_PRESSFLOW_SETTINGS_={"databases":{"default":{"default":{"driver":"mysql","prefix":"","database":"","username":"root","password":"root","host":"localhost","port":3306}}},"conf":{"pressflow_smart_start":true,"pantheon_binding":null,"pantheon_site_uuid":null,"pantheon_environment":"local","pantheon_tier":"local","pantheon_index_host":"localhost","pantheon_index_port":8983,"redis_client_host":"localhost","redis_client_port":6379,"redis_client_password":"","file_public_path":"sites\/default\/files","file_private_path":"sites\/default\/files\/private","file_directory_path":"site\/default\/files","file_temporary_path":"\/tmp","file_directory_temp":"\/tmp","css_gzip_compression":false,"js_gzip_compression":false,"page_compression":false},"hash_salt":"","config_directory_name":"sites\/default\/config","drupal_hash_salt":""}

```

### Configure Drush

[](#configure-drush)

Drush options can be configured in the `.env` file. For example, to set a default uri for commands like `drush uli`, add this:

```
DRUSH_OPTIONS_URI="https://web.new-project-name.localhost"

```

[Drush configuration docs](https://github.com/drush-ops/drush/blob/master/docs/using-drush-configuration.md)

### Installing -- do this regularly (after changing branches especially)

[](#installing----do-this-regularly-after-changing-branches-especially)

Running the robo install command will run composer install to add all required dependencies and then install the site and import the exported configuration.

```
robo install

```

### Committing code -- do this regularly

[](#committing-code----do-this-regularly)

Each time you start a new task, you should create a branch from `production` with the github ticket number and a short description of the ticket's goal in the branch:

```
git checkout production
git pull
git checkout -b issue-123-short-description

```

As a best practice, you should now re-install

```
robo install

```

Now work on your changes. Make sure configuration changes are saved in the codebase. If you make a config change and it doesn't seem to affect your codebase (i.e. it doesn't make any changes to the `config` folder), run a `drush cex`.

Once you're happy with your changes, create a pull request from your branch to the `develop` branch in github and tag the tech lead or PM in the PR. Also move your ticket into the "Tech Review" column on [Zenhub](https://github.com/thinkshout/hsus#workspaces/). Someone will then review the PR for potential improvements or fixes, and merge, and move the ticket into the "Ready to deploy" column in [Zenhub](https://github.com/thinkshout/hsus#workspaces/). This ticket is now ready to go out with the next release.

### Testing -- do as needed

[](#testing----do-as-needed)

Test are run automatically on CircleCI, but can be run locally as well with:

```
robo test

```

We're also running the Drupal Code Sniffer on our custom module and theme directories. If you submit a PR with some coding standard errors, your build will fail on circle. You can get your local site machine to run this same code sniffer by running these commands:

```
composer code-sniff

```

If you have errors, you can run this command to fix most of those errors automagically:

```
composer code-sniff-fix

```

This site also runs Visual Regression tests both during the PR phase on backstopjs and nightly on the develop multidev. More info about the backstopjs, including how to run locally, can be found in the `.ci/test/visual-regression` README.

If you need to apply patches (depending on the project being modified, a pull request is often a better solution), you can do so with the [composer-patches](https://github.com/cweagans/composer-patches) plugin.

To add a patch to drupal module "foobar" insert the patches section in the `extra`section of composer.json:

```
"extra": {
    "patches": {
        "drupal/foobar": {
            "Patch description": "URL to patch"
        }
    }
}
```

### Updating Drupal Core

[](#updating-drupal-core)

This project will attempt to keep all of your Drupal Core files up-to-date; the project [drupal-composer/drupal-scaffold](https://github.com/drupal-composer/drupal-scaffold)is used to ensure that your scaffold files are updated every time drupal/core is updated. If you customize any of the "scaffolding" files (commonly .htaccess), you may need to merge conflicts if any of your modified files are updated in a new release of Drupal core.

Follow the steps below to update your core files.

1. Run `composer update drupal/core "drupal/core-*" --with-all-dependencies` to update Drupal Core and its dependencies.

###  Health Score

28

—

LowBetter than 52% of packages

Maintenance13

Infrequent updates — may be unmaintained

Popularity15

Limited adoption so far

Community20

Small or concentrated contributor base

Maturity56

Maturing project, gaining track record

 Bus Factor2

2 contributors hold 50%+ of commits

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~1357 days

Total

2

Last Release

2396d ago

Major Versions

7.x-dev → 8.x-dev2019-12-08

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/250188?v=4)[Tauno Hogue](/maintainers/tauno)[@tauno](https://github.com/tauno)

---

Top Contributors

[![mariacha](https://avatars.githubusercontent.com/u/999525?v=4)](https://github.com/mariacha "mariacha (121 commits)")[![webflo](https://avatars.githubusercontent.com/u/123946?v=4)](https://github.com/webflo "webflo (109 commits)")[![tauno](https://avatars.githubusercontent.com/u/250188?v=4)](https://github.com/tauno "tauno (60 commits)")[![unclegcb](https://avatars.githubusercontent.com/u/2730679?v=4)](https://github.com/unclegcb "unclegcb (31 commits)")[![maria-thinkshout](https://avatars.githubusercontent.com/u/50145226?v=4)](https://github.com/maria-thinkshout "maria-thinkshout (21 commits)")[![komejo](https://avatars.githubusercontent.com/u/1668324?v=4)](https://github.com/komejo "komejo (13 commits)")[![bdimaggio](https://avatars.githubusercontent.com/u/6163565?v=4)](https://github.com/bdimaggio "bdimaggio (11 commits)")[![wxactly](https://avatars.githubusercontent.com/u/1130929?v=4)](https://github.com/wxactly "wxactly (7 commits)")[![ruscoe](https://avatars.githubusercontent.com/u/87952?v=4)](https://github.com/ruscoe "ruscoe (6 commits)")[![olivierbouwman](https://avatars.githubusercontent.com/u/7672249?v=4)](https://github.com/olivierbouwman "olivierbouwman (6 commits)")[![derhasi](https://avatars.githubusercontent.com/u/118502?v=4)](https://github.com/derhasi "derhasi (4 commits)")[![greg-1-anderson](https://avatars.githubusercontent.com/u/612191?v=4)](https://github.com/greg-1-anderson "greg-1-anderson (4 commits)")[![weitzman](https://avatars.githubusercontent.com/u/7740?v=4)](https://github.com/weitzman "weitzman (4 commits)")[![jmolivas](https://avatars.githubusercontent.com/u/366275?v=4)](https://github.com/jmolivas "jmolivas (3 commits)")[![aprice42](https://avatars.githubusercontent.com/u/675820?v=4)](https://github.com/aprice42 "aprice42 (2 commits)")[![bradjones1](https://avatars.githubusercontent.com/u/981966?v=4)](https://github.com/bradjones1 "bradjones1 (2 commits)")[![jcnventura](https://avatars.githubusercontent.com/u/329663?v=4)](https://github.com/jcnventura "jcnventura (2 commits)")[![jonhattan](https://avatars.githubusercontent.com/u/482058?v=4)](https://github.com/jonhattan "jonhattan (2 commits)")[![jorissteyn](https://avatars.githubusercontent.com/u/448056?v=4)](https://github.com/jorissteyn "jorissteyn (2 commits)")[![pfrenssen](https://avatars.githubusercontent.com/u/442924?v=4)](https://github.com/pfrenssen "pfrenssen (2 commits)")

### Embed Badge

![Health badge](/badges/thinkshout-drupal-project/health.svg)

```
[![Health](https://phpackages.com/badges/thinkshout-drupal-project/health.svg)](https://phpackages.com/packages/thinkshout-drupal-project)
```

###  Alternatives

[fourkitchens/sous-drupal-project

Starter project for Sous a Drupal distribution featuring a theme based on Emulsify Design System.

141.1k](/packages/fourkitchens-sous-drupal-project)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
