PHPackages                             symbiote/silverstripe-build - 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. [DevOps &amp; Deployment](/categories/devops)
4. /
5. symbiote/silverstripe-build

ActiveSilverstripe-module[DevOps &amp; Deployment](/categories/devops)

symbiote/silverstripe-build
===========================

Phing build helpers for projects making use of the silverstripe-base installation process.

5.3.0(5y ago)024.9k10[3 issues](https://github.com/symbiote/silverstripe-build/issues)[1 PRs](https://github.com/symbiote/silverstripe-build/pulls)2BSD-3-ClausePHPCI failing

Since Mar 17Pushed 5y ago3 watchersCompare

[ Source](https://github.com/symbiote/silverstripe-build)[ Packagist](https://packagist.org/packages/symbiote/silverstripe-build)[ RSS](/packages/symbiote-silverstripe-build/feed)WikiDiscussions master Synced today

READMEChangelog (10)Dependencies (1)Versions (86)Used By (2)

Requirments
-----------

[](#requirments)

- Phing
- php cli
- PEAR (with a version of phpunit supported by silverstripe)

Installation
------------

[](#installation)

- Edit scripts/build.xml and change the name attribute to
- Copy scripts/build.properties.sample to scripts/build.properties
- Edit build.properties and change the DB configuration and rewrite.base settings.
- Run `phing -f scripts/build.xml` to make sure everything installs
- If you require additional modules, add them into the scripts/dependent-modules file, then run `phing -f scripts/build.xml update_modules`
- Run `phing -f scripts/build.xml test` to make sure everything's working as expected

Phing targets
-------------

[](#phing-targets)

Commonly used targets

- build
- test
- package

Helpful for development:

- `pak` - builds a .sspak file at mysite/build/site.sspak . Useful for CI
- `phpstan` - Runs [PHPStan](https://github.com/phpstan/phpstan) + [PHPStan for SilverStripe](https://github.com/silbinarywolf/silverstripe-phpstan) if it's installed via Composer. Useful for static analysis of PHP code.
    - Define folders to scan by placing following in your build.xml file, underneath the `` tag.
        - ``

Composer scripts
----------------

[](#composer-scripts)

If your themes use yarn based dependencies, you can add the following post-install scripts to be triggered by a composer call, which will ensure the node\_modules are installed correctly

```
    "scripts": {
		"post-update-cmd": [
	            "Symbiote\\Build\\ThemeBuilder::run"
		],
		"post-install-cmd": [
	            "Symbiote\\Build\\ThemeBuilder::run"
		]
	},

```

Optional Scripts
----------------

[](#optional-scripts)

There are three scripts that may optionally be used for your projects, and can be done using the following commands.

### sh build/scripts/cache

[](#sh-buildscriptscache)

This will clear out any project cache files (for all projects), and is basically the forced equivalent of doing a ?flush for everything in your site.

### sh ~/path/to/permissions

[](#sh-pathtopermissions)

This requires you to update the "{user}" and as such will need to be copied out to a location of your choice, and will apply the appropriate owner and permissions to both the cache and repository.

### sh build/scripts/recursive-status

[](#sh-buildscriptsrecursive-status)

This will recursively trigger a "git status" on each module directory found within your repository, primarily so you check for changes that may have been made in a module that hasn't been included in the repository code base.

### sh build/scripts/recursive-status assume-unchanged-listing

[](#sh-buildscriptsrecursive-status-assume-unchanged-listing)

When you have patched files (resulting in them coming up as being modified during a recursive-status), you can `git update-index --assume-unchanged {file_name}`, and use this script with a parameter. This will not only list out the files that have been assumed unchanged, but it will also force the files to reflect the upstream. This makes sure you don't have local changes that have been accidentally made, however it will also remove any patches that were put in place. Therefore, you can run this and then `phing` to ensure the patches remain in place.

Excluding files from packages
-----------------------------

[](#excluding-files-from-packages)

Create a {root}/.pkgignore file with a set of paths to be excluded from built up package files

```
vendor/un-used/module/
themes/mytheme/node_modules/
mysite/cypress/

```

###  Health Score

41

—

FairBetter than 87% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity29

Limited adoption so far

Community24

Small or concentrated contributor base

Maturity79

Established project with proven stability

 Bus Factor1

Top contributor holds 61.5% of commits — single point of failure

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

Recently: every ~91 days

Total

78

Last Release

1856d ago

Major Versions

3.2.2 → 4.3.02018-05-17

3.3.x-dev → 5.0.02018-06-12

4.4.x-dev → 5.1.02018-07-03

3.4.0 → 5.2.02018-08-21

3.4.x-dev → 5.2.62020-01-20

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/23506857?v=4)[Symbiote](/maintainers/symbiote)[@symbiote](https://github.com/symbiote)

---

Top Contributors

[![nyeholt](https://avatars.githubusercontent.com/u/161730?v=4)](https://github.com/nyeholt "nyeholt (24 commits)")[![stephenmcm](https://avatars.githubusercontent.com/u/2093185?v=4)](https://github.com/stephenmcm "stephenmcm (4 commits)")[![rodneyway](https://avatars.githubusercontent.com/u/568332?v=4)](https://github.com/rodneyway "rodneyway (3 commits)")[![owindsor](https://avatars.githubusercontent.com/u/199285?v=4)](https://github.com/owindsor "owindsor (2 commits)")[![silbinarywolf](https://avatars.githubusercontent.com/u/3859574?v=4)](https://github.com/silbinarywolf "silbinarywolf (2 commits)")[![robbash](https://avatars.githubusercontent.com/u/1186986?v=4)](https://github.com/robbash "robbash (1 commits)")[![MasonD](https://avatars.githubusercontent.com/u/612454?v=4)](https://github.com/MasonD "MasonD (1 commits)")[![KhushbuFuletra](https://avatars.githubusercontent.com/u/51351463?v=4)](https://github.com/KhushbuFuletra "KhushbuFuletra (1 commits)")[![alexclifford](https://avatars.githubusercontent.com/u/184942?v=4)](https://github.com/alexclifford "alexclifford (1 commits)")

---

Tags

silverstripebuild

### Embed Badge

![Health badge](/badges/symbiote-silverstripe-build/health.svg)

```
[![Health](https://phpackages.com/badges/symbiote-silverstripe-build/health.svg)](https://phpackages.com/packages/symbiote-silverstripe-build)
```

###  Alternatives

[silverstripe/cms

The SilverStripe Content Management System

5253.6M1.4k](/packages/silverstripe-cms)[silverstripe/userforms

UserForms enables CMS users to create dynamic forms via a drag and drop interface and without getting involved in any PHP code

1371.1M85](/packages/silverstripe-userforms)[silverstripe/admin

SilverStripe admin interface

262.8M383](/packages/silverstripe-admin)[symbiote/silverstripe-advancedworkflow

Adds configurable workflow support to the CMS, with a GUI for creating custom workflow definitions.

46302.4k9](/packages/symbiote-silverstripe-advancedworkflow)[silverstripe/deploynaut

The SilverStripe deployment framework

723.5k2](/packages/silverstripe-deploynaut)

PHPackages © 2026

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