PHPackages                             spryker-sdk/upgrader - 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. spryker-sdk/upgrader

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

spryker-sdk/upgrader
====================

Code evaluator and upgrader tool

0.3.17(2mo ago)313.5k1[2 PRs](https://github.com/spryker-sdk/upgrader/pulls)1proprietaryPHPPHP &gt;=8.3CI passing

Since Feb 2Pushed 2mo ago11 watchersCompare

[ Source](https://github.com/spryker-sdk/upgrader)[ Packagist](https://packagist.org/packages/spryker-sdk/upgrader)[ RSS](/packages/spryker-sdk-upgrader/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (32)Versions (34)Used By (1)

Upgrader
========

[](#upgrader)

[![Build Status](https://github.com/spryker-sdk/upgrader/workflows/CI/badge.svg?branch=master)](https://github.com/spryker-sdk/upgrader/actions?query=workflow%3ACI+branch%3Amaster)[![codecov](https://camo.githubusercontent.com/b8a8ed291d009094e8bc23fde71d9bb849eda39231972abf80d99addf3444fd2/68747470733a2f2f636f6465636f762e696f2f67682f737072796b65722d73646b2f75706772616465722f6272616e63682f6d61737465722f67726170682f62616467652e7376673f746f6b656e3d41566c6a775347414c51)](https://codecov.io/gh/spryker-sdk/upgrader)[![Latest Stable Version](https://camo.githubusercontent.com/03e8ac5a87b96dffc7f2434f7630d06943e14036f90e3c190e8d97d138168373/68747470733a2f2f706f7365722e707567782e6f72672f737072796b65722d73646b2f75706772616465722f762f737461626c652e737667)](https://packagist.org/packages/spryker-sdk/upgrader)[![Minimum PHP Version](https://camo.githubusercontent.com/9c50dc780fa576f5c39b4feff00c05345c1471be0808881a09e750b91220dc54/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d253345253344253230382e332d3838393242462e737667)](https://php.net/)[![PHPStan](https://camo.githubusercontent.com/f60d96f7c2579690ab6dfa8918f777fe93a02a92301c661eb38a85861a92b780/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048505374616e2d6c6576656c253230382d627269676874677265656e2e7376673f7374796c653d666c6174)](https://phpstan.org/)

Upgrader
--------

[](#upgrader-1)

The Upgrader tool simplifies keeping projects up-to-date with Spryker releases.

​ The Upgrader updates projects via one of the following approaches:

- Release group(default) — uses Spryker release app as data provider.
- Composer update — uses `composer update` command; this is the default strategy that's describes below. ​ At this step, the Upgrader updates the project to the latest version as follows:

1. Checks if the target branch has been created on the remote repository. If the branch exists, the process stops.
2. Checks if there are no uncommitted changes in the project. If there are uncommitted changes, the process stops.
3. Updates Spryker modules and dependent libraries, including third-party ones.
4. Triggers [Integrator](https://github.com/spryker-sdk/integrator) for adjust project classes.
5. Commits the changed files.
6. Pushes the changes to the remote repository.
7. Create a PR in the remote repository.

### Supported strategies:

[](#supported-strategies)

### Composer strategy

[](#composer-strategy)

- To enable Composer update strategy:

```
export UPGRADE_STRATEGY=composer
```

#### Composer update strategy

[](#composer-update-strategy)

Composer install|update uses two strategies. By default Composer updates lock file with packages being downloaded.

- To enable the update of `composer.lock` file without packages being downloaded:

```
export COMPOSER_NO_INSTALL=true
```

### Release App strategy

[](#release-app-strategy)

In the strategy, Upgrader uses Spryker release app as a data provider to fetch data about Major, Minor, and Patch releases. Only Minor and Paths could be automatically applied, for now. In case when some major release is available, Upgrader put info about to PR description.

- To enable Release group strategy (default):

```
export UPGRADE_STRATEGY=release-app
```

In the strategy, Upgrader contains sequential (default) release group requiring processor (one by one release group).

#### Sequential release group processor

[](#sequential-release-group-processor)

- To enable Sequential release group processor (default):

```
export RELEASE_GROUP_PROCESSOR=sequential
```

Sequential release group processor contains threshold, by default 30 release groups for one Upgrader start.

- To change the threshold:

```
export THRESHOLD_RELEASE_GROUP=
```

#### Soft thresholds:

[](#soft-thresholds)

Soft major threshold, by default 0.

- To change soft major threshold:

```
export SOFT_THRESHOLD_MAJOR=
```

Soft minor threshold, by default 10. ​

- To change soft minor threshold:

```
export SOFT_THRESHOLD_MINOR=
```

​ Soft bugfix threshold, by default 30. ​

- To change soft patch threshold:

```
export SOFT_THRESHOLD_PATCH=
```

### Adding GitHub configuration for the update step

[](#adding-github-configuration-for-the-update-step)

​ To enable the Upgrader to execute this step, apply the following configuration: ​

- GitHub is default source code provider. If you want manually define it, use the next environment variable: ​

```
export SOURCE_CODE_PROVIDER=github
```

​

- Add a GitHub access token to the project repository with the permissions to push branches and create PRs: ​

```
export ACCESS_TOKEN=
```

​

- Add the organization name owning the repository of the project you want to update:

```
export ORGANIZATION_NAME=
```

​

- Add the repository name of the project you want to update:

```
export REPOSITORY_NAME=
```

### Adding GitLab configuration for the update step

[](#adding-gitlab-configuration-for-the-update-step)

​ To enable the Upgrader to execute this step, apply the following configuration: ​

- Enable GitLab source code provider: ​

```
export SOURCE_CODE_PROVIDER=gitlab
```

​

- Add a GitLab access token to the project repository with the permissions to push branches and create PRs: ​

```
export ACCESS_TOKEN=
```

​

- Add the project id of the project you want to update:

```
export PROJECT_ID=
```

​

- Optional. For self-hosted source provider add url of your provider:

```
export SOURCE_CODE_PROVIDER_URL=
```

### Adding Azure configuration for the update step

[](#adding-azure-configuration-for-the-update-step)

​ To enable the Upgrader to execute this step, apply the following configuration: ​

- Enable Azure source code provider: ​

```
export SOURCE_CODE_PROVIDER=azure
```

​

- Add a Azure access token to the project repository with the permissions to push branches and create PRs: ​

```
export ACCESS_TOKEN=
```

​

- Add the organization name owning the repository of the project you want to update:: ​

```
export ORGANIZATION_NAME=
```

​

- Add a project name or project id you want to update: ​

```
export PROJECT_NAME=
# OR
export PROJECT_ID=
```

​

- Add a project's repository name or repository id: ​

```
export REPOSITORY_NAME=
# OR
export REPOSITORY_ID=
```

​

### Reporting configuration

[](#reporting-configuration)

​

- Optional. Defines execution environment for report statistics:

```
export APP_ENV=sprykerci
```

​

- Optional. Enable the report sending functionality. it’s disabled by default.

```
export REPORTING_ENABLED=true
```

​

- Optional. Secure token for remote server request authorization in report sending process.

```
export REPORT_SEND_AUTH_TOKEN=
```

​

### Updating projects via the SDK

[](#updating-projects-via-the-sdk)

​ To update a project, run the following command from its directory:

```
bin/console upgradability:php:upgrade
```

Enable release group integrator
-------------------------------

[](#enable-release-group-integrator)

​

- Turn on the specific behavior for the release group integrator (for internal usage).

```
export RELEASE_GROUP_INTEGRATOR_ENABLED=true
```

Enable minimal updates of third-party dependencies
--------------------------------------------------

[](#enable-minimal-updates-of-third-party-dependencies)

​

- Turn on specific behavior to minimize update 3rd-party dependencies.

```
export UPDATE_MINIMUM_DEPENDENCIES_ENABLED=true
```

Enable update features to dev-master fixer
------------------------------------------

[](#enable-update-features-to-dev-master-fixer)

​

- Turn on internal specific behavior to update features to dev-master.

```
export UPDATE_FEATURES_TO_DEV_MASTER=true
```

Enable project change integration
---------------------------------

[](#enable-project-change-integration)

​

- Turn on integrator trigger after package update step

```
export INTEGRATOR_ENABLED=true
```

Disable installing new Spryker packages
---------------------------------------

[](#disable-installing-new-spryker-packages)

​

- Turn off installing new Spryker packages

```
export PACKAGE_UPGRADE_ONLY=true
```

Enable project code compliance after update
-------------------------------------------

[](#enable-project-code-compliance-after-update)

​

- Turn on code compliance trigger after package update step

```
export EVALUATOR_ENABLED=true
```

Specify release group
---------------------

[](#specify-release-group)

​

- Specify release group to apply only it packages

```
export RELEASE_GROUP_ID=123
```

Specify the pull request reviewers
----------------------------------

[](#specify-the-pull-request-reviewers)

​

- Specify the GitHub user login to add as reviewers to the pull request

```
export PULL_REQUEST_REVIEWERS=
```

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

[](#installation)

​ For Spryker SDK installation instructions, see [Spryker SDK](https://github.com/spryker-sdk/sdk#installation)

###  Health Score

54

—

FairBetter than 97% of packages

Maintenance90

Actively maintained with recent releases

Popularity27

Limited adoption so far

Community24

Small or concentrated contributor base

Maturity65

Established project with proven stability

 Bus Factor3

3 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 ~37 days

Recently: every ~65 days

Total

22

Last Release

78d ago

PHP version history (5 changes)0.1.0PHP &gt;=7.4

0.2.0PHP &gt;=8.0

0.3.9PHP &gt;=8.1

0.3.10PHP &gt;=8.2

0.3.14PHP &gt;=8.3

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/10738957?v=4)[Spryker Bot](/maintainers/spryker-bot)[@spryker-bot](https://github.com/spryker-bot)

---

Top Contributors

[![pavelmaksimov25](https://avatars.githubusercontent.com/u/82393959?v=4)](https://github.com/pavelmaksimov25 "pavelmaksimov25 (81 commits)")[![sergeyspryker](https://avatars.githubusercontent.com/u/100715007?v=4)](https://github.com/sergeyspryker "sergeyspryker (69 commits)")[![DmytroKlymanSpryker](https://avatars.githubusercontent.com/u/111562890?v=4)](https://github.com/DmytroKlymanSpryker "DmytroKlymanSpryker (69 commits)")[![vol4onok](https://avatars.githubusercontent.com/u/5063777?v=4)](https://github.com/vol4onok "vol4onok (58 commits)")[![VladislavStrelchenko](https://avatars.githubusercontent.com/u/85889893?v=4)](https://github.com/VladislavStrelchenko "VladislavStrelchenko (47 commits)")[![olhalivitchuk](https://avatars.githubusercontent.com/u/77281282?v=4)](https://github.com/olhalivitchuk "olhalivitchuk (28 commits)")[![github-actions[bot]](https://avatars.githubusercontent.com/in/15368?v=4)](https://github.com/github-actions[bot] "github-actions[bot] (25 commits)")[![dereuromark](https://avatars.githubusercontent.com/u/39854?v=4)](https://github.com/dereuromark "dereuromark (18 commits)")[![Kyrylo-Meretskyi](https://avatars.githubusercontent.com/u/86324025?v=4)](https://github.com/Kyrylo-Meretskyi "Kyrylo-Meretskyi (9 commits)")[![kalaputsik](https://avatars.githubusercontent.com/u/9505895?v=4)](https://github.com/kalaputsik "kalaputsik (8 commits)")[![alexanderM91](https://avatars.githubusercontent.com/u/20976979?v=4)](https://github.com/alexanderM91 "alexanderM91 (6 commits)")[![aleksandr-velikanov](https://avatars.githubusercontent.com/u/105643831?v=4)](https://github.com/aleksandr-velikanov "aleksandr-velikanov (3 commits)")[![asmarovydlo](https://avatars.githubusercontent.com/u/15832795?v=4)](https://github.com/asmarovydlo "asmarovydlo (3 commits)")[![spryker-release-bot](https://avatars.githubusercontent.com/u/26904324?v=4)](https://github.com/spryker-release-bot "spryker-release-bot (2 commits)")[![yaroslav-spryker](https://avatars.githubusercontent.com/u/80392698?v=4)](https://github.com/yaroslav-spryker "yaroslav-spryker (2 commits)")[![upgradabilitybot-spryker](https://avatars.githubusercontent.com/u/148237916?v=4)](https://github.com/upgradabilitybot-spryker "upgradabilitybot-spryker (1 commits)")[![gechetspr](https://avatars.githubusercontent.com/u/42143273?v=4)](https://github.com/gechetspr "gechetspr (1 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/spryker-sdk-upgrader/health.svg)

```
[![Health](https://phpackages.com/badges/spryker-sdk-upgrader/health.svg)](https://phpackages.com/packages/spryker-sdk-upgrader)
```

###  Alternatives

[shopware/platform

The Shopware e-commerce core

3.3k1.5M3](/packages/shopware-platform)[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.4k5.6M647](/packages/sylius-sylius)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

595.2M385](/packages/shopware-core)[prestashop/prestashop

PrestaShop is an Open Source e-commerce platform, committed to providing the best shopping cart experience for both merchants and customers.

9.0k15.4k](/packages/prestashop-prestashop)[symfony/maker-bundle

Symfony Maker helps you create empty commands, controllers, form classes, tests and more so you can forget about writing boilerplate code.

3.4k111.1M563](/packages/symfony-maker-bundle)[ec-cube/ec-cube

EC-CUBE EC open platform.

78527.0k1](/packages/ec-cube-ec-cube)

PHPackages © 2026

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