PHPackages                             sergeant/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. sergeant/drupal-project

AbandonedArchivedProject[Framework](/categories/framework)

sergeant/drupal-project
=======================

SGT Project template for Drupal 10 projects with Composer

7.2.3(1y ago)5528GPL-2.0-or-laterPHPPHP &gt;=8.1.6

Since Feb 21Pushed 10mo ago1 watchersCompare

[ Source](https://github.com/oscarsergeant/drupal-project)[ Packagist](https://packagist.org/packages/sergeant/drupal-project)[ RSS](/packages/sergeant-drupal-project/feed)WikiDiscussions 10.x-sgt Synced 3d ago

READMEChangelogDependencies (15)Versions (69)Used By (0)

ARCHIVED
========

[](#archived)

This repository has been archived and moved to a private Bitbucket monorepo.

Composer template for Sergeant Drupal projects
==============================================

[](#composer-template-for-sergeant-drupal-projects)

This is the fork of [Composer template for Drupal projects](https://github.com/drupal-composer/drupal-project). All documentation regarding this project is available on given url. The notes bellow are addition/override of the source documentation. The updates from forked project has to be implemented manually.

Lead maintainer: Zan Vidmar ([contact](mailto:zan.vidmar@sergeant.agency))

Maintainer: Aljosa Furlanic ([contact](mailto:aljosa.furlanic@sergeant.agency))

Usage
-----

[](#usage)

### Access

[](#access)

For successful installation of Sergeant modules, read access to Sergeant private repositories is needed.

### Sergeant workflow

[](#sergeant-workflow)

[Sergeant drupal project init article (private)](https://sgt.sergeant.agency/wiki/article/drupal-project-init)

### Installation (!)

[](#installation-)

#### Initialize project with command line generator

[](#initialize-project-with-command-line-generator)

1. [command line generator](https://sgt.sergeant.agency/wiki/article/initialize-project-command-line-generator)

#### Initialize project just with composer

[](#initialize-project-just-with-composer)

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

1. After that you can create the project:

```
composer create-project sergeant/drupal-project:dev-10.x-sgt some-directory --stability dev --no-interaction

```

Change the `some-directory` with your directory where the project will be.

In case if something is not installed correctly try to clear composer cache first (`composer clear-cache`), and than report an issue.

2. Install Drupal with the Installation Profile (everything is handled by sgt\_installation\_profile module).
3. Create new checklist `/admin/config/sergeant/sgt_checklist` and go trough all checklist items.

### Settings

[](#settings)

- For global setting use `/web/sites/*/settings.php`
- For environment settings use `/web/sites/*/settings.local.php`
- For development services use `/web/sites/default/local.services.yml` **(do not use this on production!)**

Development local.services.yml example:

```
parameters:
    session.storage.options: { gc_probability: 1, gc_divisor: 100, gc_maxlifetime: 200000, cookie_lifetime: 2000000 }
    twig.config: { debug: true, auto_reload: true, cache: true }
    renderer.config: { required_cache_contexts: ['languages:language_interface', theme, user.permissions], auto_placeholder_conditions: { max-age: 0, contexts: [session, user], tags: {  } } }
    http.response.debug_cacheability_headers: true
    factory.keyvalue: {  }
    factory.keyvalue.expirable: {  }
    filter_protocols: [http, https, ftp, news, nntp, tel, telnet, mailto, irc, ssh, sftp, webcal, rtsp]
    cors.config: { enabled: false, allowedHeaders: {  }, allowedMethods: {  }, allowedOrigins: ['*'], exposedHeaders: false, maxAge: false, supportsCredentials: false }

```

### Updating Drupal project itself

[](#updating-drupal-project-itself)

That will update some settings in composer.json file and also some other Drupal project related files. Updates are handled by `sergeant/sgt_drupal_project_update`;

To update drupal project to last version: `composer update_sgt_drupal_project`

or to update it to specific project version: `composer update_sgt_drupal_project v3.0.5`

#### Keep local "repositories" in composer.json file as they are

[](#keep-local-repositories-in-composerjson-file-as-they-are)

In case you would not like to update "repositories" data (for example: if you change library version for given project only) use: add `keep-local-repositories-data=true` flag.

Example `composer update_sgt_drupal_project keep-local-repositories-data=true`

### Updates (!)

[](#updates-)

Every time when Drupal core is updated, we have to update Drupal module Sergeant core (sgt\_installation\_profile). Sergeant Installation Profile holds all currently active patches for Drupal core and modules required by Sergeant Installation Profile. All other patches has to be handled on project level.

What does this template adds to forked drupal-composer/drupal-project
---------------------------------------------------------------------

[](#what-does-this-template-adds-to-forked-drupal-composerdrupal-project)

### Packages required by default (wiht its dependency tree)

[](#packages-required-by-default-wiht-its-dependency-tree)

All modules listed below in dependency tree are required by default. sergeant/sgt\_installation\_profille module handles all other required contributed Drupal modules.

Sergeant Drupal project (composer project)

- sgt\_core (module)
    - sgt\_checklist
        - entity\_creator\_api
    - sgt\_handbook
    - sgt\_paragraphs
        - sgt\_field\_paragraph\_settings
- sgt\_ignite (theme)
    - sgt\_ignite\_components
    - sgt\_ignite\_features
- sgt\_installation\_profille (profile)
    - all required Drupal modules

### Included repositories

[](#included-repositories)

This only include package sources, the installation is optional and always made by developer.

- sergeant/sgt\_devel
- sergeant/sgt\_filter\_query\_api
- sergeant/sgt\_media\_colorbox\_field\_formatter
- sergeant/sgt\_media\_crop
- sergeant/sgt\_tiles

#### Included Sergeant private repositories:

[](#included-sergeant-private-repositories)

- sergeant/entity\_creator\_api ([repo](https://bitbucket.org/sgt_sergeant/entity_creator_api/))
- sergeant/sgt\_checklist ([repo](https://bitbucket.org/sgt_sergeant/sgt_checklist/))
- sergeant/sgt\_core ([repo](https://bitbucket.org/sgt_sergeant/sgt_core/))
- sergeant/devel ([repo](https://bitbucket.org/sgt_sergeant/sgt_devel/))
- sergeant/sgt\_drupal\_project\_update ([repo](https://bitbucket.org/sgt_sergeant/sgt_drupal_project_update/))
- sergeant/sgt\_field\_paragraph\_settings ([repo](https://bitbucket.org/sgt_sergeant/sgt_field_paragraph_settings/))
- sergeant/sgt\_filter\_query\_api ([repo](https://bitbucket.org/sgt_sergeant/sgt_filter_query_api/))
- sergeant/sgt\_handbook ([repo](https://bitbucket.org/sgt_sergeant/sgt_handbook/))
- sergeant/sgt\_ignite ([repo](https://bitbucket.org/sgt_sergeant/sgt_ignite/))
- sergeant/sgt\_ignite\_components ([repo](https://bitbucket.org/sgt_sergeant/sgt_ignite_components/))
- sergeant/sgt\_ignite\_features ([repo](https://bitbucket.org/sgt_sergeant/sgt_ignite_features/))
- sergeant/sgt\_installation\_profile ([repo](https://bitbucket.org/sgt_sergeant/sgt_installation_profile/))
- sergeant/sgt\_media\_colorbox\_field\_formatter ([repo](https://bitbucket.org/sgt_sergeant/sgt_media_colorbox_field_formatter/))
- sergeant/sgt\_media\_crop ([repo](https://bitbucket.org/sgt_sergeant/sgt_media_crop/))
- sergeant/sgt\_paragraphs ([repo](https://bitbucket.org/sgt_sergeant/sgt_paragraphs/))
- sergeant/sgt\_tiles ([repo](https://bitbucket.org/sgt_sergeant/sgt_tiles/))

#### Required contrib packages (JS libraries)

[](#required-contrib-packages-js-libraries)

- harvesthq/chosen is required via sgt\_installation\_profille =&gt; drupal/chosen. Drupal project composer.json file includes requrements mentioned in drupal/chosen readme file. ([repo](https://github.com/harvesthq/chosen), [docs](https://harvesthq.github.io/chosen/))

#### Included contrib packages (JS libraries)

[](#included-contrib-packages-js-libraries)

- gfranko/jquery.tocify.js `composer require gfranko/jquery.tocify.js` ([repo](https://github.com/gfranko/jquery.tocify.js), [docs](http://gregfranko.com/jquery.tocify.js/))
- jackmoore/colorbox `composer require jackmoore/colorbox` ([repo](https://github.com/jackmoore/colorbox), [docs](http://www.jacklmoore.com/colorbox/guide/))

### Composer file modifications

[](#composer-file-modifications)

#### Installer paths

[](#installer-paths)

Installer paths are changed to a non standard paths, to met the Sergeant workflow with Sergeant modules and Sergeant Ignite theme.

All Sergeant modules are placed in `web/modules/sgt/` directory.

```
"web/modules/sgt/{$name}": [
    "sergeant/sgt_checklist",
    "sergeant/sgt_core",
    "sergeant/sgt_devel",
    "sergeant/sgt_field_paragraph_settings",
    "sergeant/sgt_filter_query_api",
    "sergeant/sgt_handbook",
    "sergeant/sgt_ignite_components",
    "sergeant/sgt_ignite_features",
    "sergeant/sgt_media_colorbox_field_formatter",
    "sergeant/sgt_media_crop",
    "sergeant/sgt_paragraphs",
    "sergeant/sgt_tiles"
],

```

The structure of module folder:

- contrib `web/modules/contrib/` (for Drupal contrib modules, git ignored, managed by composer)
- custom `web/modules/custom/` (for Drupal custom modules per project, git managed)
- sgt `web/modules/sgt/` (for Sergeant Drupal contrib modules, git ignored, managed by composer)

Sergeant Ignite theme is placed in `web/themes/sgt_ignite/` directory.

```
"web/themes/sgt_ignite/ignite_core": [
    "sergeant/sgt_ignite"
],

```

Sergeant installation profile is placed in in `web/profiles/sgt/` directory.

```
"web/profiles/sgt/{$name}": [
    "sergeant/sgt_installation_profile"
]

```

### Other modifications

[](#other-modifications)

- Custom folders ("private", "tmp") are added into $dir array in `scripts/composer/ScriptHandler.php` file.
- to accept patches from dependencies `"enable-patching": true` was added to `extra` section (source: [composer-patches](https://github.com/cweagans/composer-patches#allowing-patches-to-be-applied-from-dependencies))
- Create the files directory with chmod 0775 instead of 0777
- ScriptHandler (with related json autoload =&gt; classmap) has additional function that copy all configuration files from Drupal standard profile to Sergeant Installation Profile.

### PHP version

[](#php-version)

This template by default requires at least PHP 8.1

DDEV setup
==========

[](#ddev-setup)

- [ddev repo](https://github.com/drud/ddev)
- [ddev command line generator](https://sgt.sergeant.agency/wiki/article/initialize-project-command-line-generator)

Troubleshooting
---------------

[](#troubleshooting)

In case of denied acces to private repos add keys to ddev container by `ddev auth ssh` command

###  Health Score

47

—

FairBetter than 93% of packages

Maintenance52

Moderate activity, may be stable

Popularity17

Limited adoption so far

Community22

Small or concentrated contributor base

Maturity86

Battle-tested with a long release history

 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 ~36 days

Recently: every ~106 days

Total

65

Last Release

366d ago

Major Versions

4.0.17 → 5.0.02022-02-01

5.0.9 → 6.0.02023-04-16

6.0.0 → 7.0.02023-07-03

6.0.1 → 7.0.72024-01-04

6.0.2 → 7.2.02025-01-28

PHP version history (7 changes)7.x-devPHP &gt;=5.3.3

2.0.8PHP &gt;=7.0

8.x-devPHP &gt;=7.0.8

4.0.0PHP &gt;=7.3

5.0.0PHP &gt;=7.4

6.0.0PHP &gt;=8.0

7.0.0PHP &gt;=8.1.6

### Community

Maintainers

![](https://www.gravatar.com/avatar/dbd5811a6650498d2d5145d89d1c328d6153521359dcf6b9fd44f9c3ba58ac13?d=identicon)[zanvidmar](/maintainers/zanvidmar)

![](https://avatars.githubusercontent.com/u/50484172?v=4)[Sergeant](/maintainers/oscarsergeant)[@oscarsergeant](https://github.com/oscarsergeant)

![](https://avatars.githubusercontent.com/u/51315716?v=4)[Aljoša](/maintainers/joco-sp)[@joco-sp](https://github.com/joco-sp)

---

Top Contributors

[![webflo](https://avatars.githubusercontent.com/u/123946?v=4)](https://github.com/webflo "webflo (132 commits)")[![zanvidmar](https://avatars.githubusercontent.com/u/13753184?v=4)](https://github.com/zanvidmar "zanvidmar (112 commits)")[![joco-sp](https://avatars.githubusercontent.com/u/51315716?v=4)](https://github.com/joco-sp "joco-sp (29 commits)")[![weitzman](https://avatars.githubusercontent.com/u/7740?v=4)](https://github.com/weitzman "weitzman (11 commits)")[![pfrenssen](https://avatars.githubusercontent.com/u/442924?v=4)](https://github.com/pfrenssen "pfrenssen (6 commits)")[![oscarsergeant](https://avatars.githubusercontent.com/u/50484172?v=4)](https://github.com/oscarsergeant "oscarsergeant (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)")[![jmolivas](https://avatars.githubusercontent.com/u/366275?v=4)](https://github.com/jmolivas "jmolivas (3 commits)")[![zaporylie](https://avatars.githubusercontent.com/u/1690685?v=4)](https://github.com/zaporylie "zaporylie (2 commits)")[![jonhattan](https://avatars.githubusercontent.com/u/482058?v=4)](https://github.com/jonhattan "jonhattan (2 commits)")[![petk](https://avatars.githubusercontent.com/u/1614009?v=4)](https://github.com/petk "petk (2 commits)")[![jorissteyn](https://avatars.githubusercontent.com/u/448056?v=4)](https://github.com/jorissteyn "jorissteyn (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)")[![mikran](https://avatars.githubusercontent.com/u/820244?v=4)](https://github.com/mikran "mikran (1 commits)")[![gagarine](https://avatars.githubusercontent.com/u/164074?v=4)](https://github.com/gagarine "gagarine (1 commits)")[![grasmash](https://avatars.githubusercontent.com/u/539205?v=4)](https://github.com/grasmash "grasmash (1 commits)")[![hussainweb](https://avatars.githubusercontent.com/u/1040271?v=4)](https://github.com/hussainweb "hussainweb (1 commits)")[![keopx](https://avatars.githubusercontent.com/u/537583?v=4)](https://github.com/keopx "keopx (1 commits)")

### Embed Badge

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

```
[![Health](https://phpackages.com/badges/sergeant-drupal-project/health.svg)](https://phpackages.com/packages/sergeant-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)[govcms/govcms

GovCMS Drupal Distribution

198102.2k3](/packages/govcms-govcms)[drupal/recommended-project

Project template for Drupal projects with a relocated document root

1502.8M1](/packages/drupal-recommended-project)[goalgorilla/open_social

Open Social is a distribution for building social communities and intranets.

190461.9k](/packages/goalgorilla-open-social)[az-digital/az_quickstart

Arizona Quickstart

52265.6k3](/packages/az-digital-az-quickstart)

PHPackages © 2026

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