PHPackages                             burdamagazinorg/update-tester - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. burdamagazinorg/update-tester

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

burdamagazinorg/update-tester
=============================

Update Testing Helper

1.0.0(5y ago)03.1k[3 issues](https://github.com/BurdaMagazinOrg/update-tester/issues)[1 PRs](https://github.com/BurdaMagazinOrg/update-tester/pulls)GPL-2.0-or-laterPHPPHP &gt;7.3CI failing

Since Apr 19Pushed 5y ago4 watchersCompare

[ Source](https://github.com/BurdaMagazinOrg/update-tester)[ Packagist](https://packagist.org/packages/burdamagazinorg/update-tester)[ RSS](/packages/burdamagazinorg-update-tester/feed)WikiDiscussions master Synced yesterday

READMEChangelog (2)Dependencies (4)Versions (7)Used By (0)

**`Still work in progress`**

Update Tester
=============

[](#update-tester)

This is helper tool for testing of Drupal 8 site updates with composer packaging. It's designed to be used in testing environment.

Getting Started
---------------

[](#getting-started)

This project should be installed globally with composer. It provides functionality to test Drupal 8 site update.

Tester script will clone Drupal 8 site (files and database), after that new available versions will be fetched with `composer outdated` and composer.json will be updated with new versions. On top of that `composer update` will be executed to update packages and modules. Same script will execute Drupal 8 required update hooks and entity field updates on previously updated code for cloned site.

That will allow early discovery of possible breaking updates for Drupal 8 site.

### Prerequisites

[](#prerequisites)

This project depends on composer and drush. They should be installed on system.

Ensure that composer can work without any interruption, that means:

- for private repositories ssh keys are properly set and configuration, so that password is not requested
- authentication token for github.com is provided, because composer will make a lot requests to github and it has to use token in order to get access, otherwise github.com will cut-off requests. For more info take at look at [Composer documentation API rate limit and OAuth tokens](https://getcomposer.org/doc/articles/troubleshooting.md#api-rate-limit-and-oauth-tokens)

### Installing

[](#installing)

To install project, just require it globally:

```
composer global require "burdamagazinorg/update-tester"

```

As dependency for this project `consolidation/robo` package will be installed. And in order to run provided scripts, `robo` command has to be globally available. That's why it should be ensured that global composer scripts are available in command paths. If it's not already case, it sufficient to execute following command to add global composer scripts path in execution paths:

```
export PATH="$HOME/.composer/vendor/bin:$PATH"

```

**NOTE:** If `robo` is used for project, it has to be ensured, that it's executed from project script path. For example:

```
/my/project/path/vendor/bin/robo

```

Running the update test
-----------------------

[](#running-the-update-test)

To execute update test for your installed Drupal 8 site, you can execute following command:

```
update-tester.php test:update /source/project/path /clone/destination/path --db-name=drupal_clone --db-username='user_clone' --db-password='password_clone'

```

Travis CI Integration
---------------------

[](#travis-ci-integration)

Ideally update tests should be executed once per day to check, if update still works and if not, what are problems.

In order to do that, [Travis CI cron](https://docs.travis-ci.com/user/cron-jobs/) test triggering has to be enabled for branchs where you want to test updates (fe. master and develop). Next step is to use Travis CI environment variable `$TRAVIS_EVENT_TYPE` to distinguish cron run from normal pull request or merge request run, since update tester should be executed only on cron run. After installation of site is finished or before running default site tests, update tester should be executed. That can be achieved with following statements in travis.yml file:

```
[ "$TRAVIS_EVENT_TYPE" = "cron" ] && composer global require "burdamagazinorg/update-tester" && export PATH="$HOME/.composer/vendor/bin:$PATH" && update-tester.php test:update /source/project/path /clone/destination/path --db-name=drupal_clone --db-username='user_clone' --db-password='password_clone'

```

Possible improvements
---------------------

[](#possible-improvements)

- add rollback functionality for tasks, then they can be combined easier without possibility to break something on failure
- additional refactoring of `test:update` command
- add tests for commands and tasks

###  Health Score

30

—

LowBetter than 62% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity16

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity62

Established project with proven stability

 Bus Factor1

Top contributor holds 84.2% 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 ~292 days

Total

5

Last Release

2189d ago

PHP version history (2 changes)1.0.0-alpha1PHP &gt;=5.6.0

1.0.0PHP &gt;7.3

### Community

Maintainers

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

---

Top Contributors

[![mtodor](https://avatars.githubusercontent.com/u/3965286?v=4)](https://github.com/mtodor "mtodor (16 commits)")[![dbosen](https://avatars.githubusercontent.com/u/6398151?v=4)](https://github.com/dbosen "dbosen (3 commits)")

### Embed Badge

![Health badge](/badges/burdamagazinorg-update-tester/health.svg)

```
[![Health](https://phpackages.com/badges/burdamagazinorg-update-tester/health.svg)](https://phpackages.com/packages/burdamagazinorg-update-tester)
```

###  Alternatives

[aws/aws-sdk-php

AWS SDK for PHP - Use Amazon Web Services in your PHP project

6.2k532.1M2.5k](/packages/aws-aws-sdk-php)[symfony/config

Helps you find, load, combine, autofill and validate configuration values of any kind

4.3k471.0M8.0k](/packages/symfony-config)[phpro/soap-client

A general purpose SoapClient library

8895.9M52](/packages/phpro-soap-client)[symfony/asset-mapper

Maps directories of assets &amp; makes them available in a public directory with versioned filenames.

1668.1M217](/packages/symfony-asset-mapper)[pocketmine/pocketmine-mp

A server software for Minecraft: Bedrock Edition written in PHP

3.5k77.4k89](/packages/pocketmine-pocketmine-mp)[friendsoftypo3/content-blocks

TYPO3 CMS Content Blocks - Content Types API | Define reusable components via YAML

101466.4k45](/packages/friendsoftypo3-content-blocks)

PHPackages © 2026

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