PHPackages                             b13/typo3-updater - 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. b13/typo3-updater

ActiveComposer-plugin[DevOps &amp; Deployment](/categories/devops)

b13/typo3-updater
=================

TYPO3 Composer Plugin to ease upgrades

1.1.0(4mo ago)2622↑92.6%[1 issues](https://github.com/b13/typo3-updater/issues)MITPHPPHP &gt;=8.1

Since Mar 7Pushed 3mo ago7 watchersCompare

[ Source](https://github.com/b13/typo3-updater)[ Packagist](https://packagist.org/packages/b13/typo3-updater)[ RSS](/packages/b13-typo3-updater/feed)WikiDiscussions main Synced 3w ago

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

b13/typo3-updater - A Composer plugin to help you update TYPO3 core and extensions
==================================================================================

[](#b13typo3-updater---a-composer-plugin-to-help-you-update-typo3-core-and-extensions)

Upgrading a TYPO3 project to a new major version involves several manual steps:

- checking which extensions are compatible,
- finding newer versions,
- updating constraints in multiple `composer.json` files,
- and running the right Composer commands in the right order.

This plugin automates that entire workflow into two commands and a clear three-step process.

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

[](#installation)

```
composer require b13/typo3-updater
```

You can set it up for all your projects in a global way:

```
composer require global b13/typo3-updater
```

Upgrade workflow
----------------

[](#upgrade-workflow)

Upgrading from e.g. TYPO3 12 to 13 is a three-step process:

### Step 1: Prepare extensions for the target TYPO3 version

[](#step-1-prepare-extensions-for-the-target-typo3-version)

```
composer typo3:extensions:update ^13.4 --dry-run
```

Updates extensions to versions that are compatible with the **target** TYPO3 version, while still running on the **current** core. This is the safest first step because it doesn't touch the core yet — only extensions are updated.

The command shows a compatibility table comparing each extension against both the current and target TYPO3 versions, then interactively offers to bump constraints and run `composer require`.

Use `--dry-run` to only see the table without making changes.

### Step 2: Update TYPO3 core (and remaining extensions)

[](#step-2-update-typo3-core-and-remaining-extensions)

```
composer typo3:core:update ^13.4
```

Updates all `typo3/cms-*` constraints to the target version. It also detects any remaining extensions that are still incompatible and finds their latest compatible versions — so everything is resolved in one `composer update -W` call.

Use `--dry-run` to preview all changes without modifying anything.

### Step 3: Update extensions to their latest versions

[](#step-3-update-extensions-to-their-latest-versions)

```
composer typo3:extensions:update ^13.4
```

Now that the core is at 13.4, running the same command again finds the **latest available version** of each extension for the running TYPO3 version. This ensures you're not stuck on the minimum compatible version but running the newest release.

Use `--dry-run` to audit which extensions have newer versions available.

### Quick reference

[](#quick-reference)

```
# Step 1: Prepare extensions for the upgrade
composer typo3:extensions:update ^13.4

# Step 2: Upgrade TYPO3 core and remaining extensions
composer typo3:core:update ^13.4

# Step 3: Bring all extensions to their latest version
composer typo3:extensions:update ^13.4
```

Commands
--------

[](#commands)

### `composer typo3:core:update ` - Update TYPO3 core and extensions

[](#composer-typo3coreupdate-version---update-typo3-core-and-extensions)

The main command for upgrading the TYPO3 core. It handles core packages and third-party extensions in one go.

```
composer typo3:core:update ^13.4 --dry-run    # Preview all changes without modifying anything
composer typo3:core:update ^13.4              # Apply changes after confirmation
```

**What it does under the hood:**

1. Reads the root `composer.json` and collects all `typo3/cms-*` packages whose constraints don't yet match the target version
2. Scans all installed extensions (packages of type `typo3-cms-extension`) and checks whether their `typo3/cms-core` constraint is compatible with the target version
3. For each incompatible extension, queries Packagist for the latest compatible version (stable first, falls back to pre-release if no stable version exists)
4. Displays up to three tables:
    - **Core packages:** `typo3/cms-*` constraint changes (e.g. `^12.4` -&gt; `^13.4`)
    - **Extensions to upgrade:** extensions that need a version bump, including the new constraint (pre-release versions are flagged)
    - **Unresolvable extensions:** extensions with no published version compatible with the target (warning)
5. Shows the exact `composer update ... -W` command that will be executed
6. On confirmation: writes all new constraints to `composer.json` (respecting `require` vs `require-dev`) and runs `composer update` with `-W` (update with all dependencies)
7. On failure: reverts `composer.json` to its original state

**Without this plugin** you would need to manually: open `composer.json`, change every `typo3/cms-*` constraint, search Packagist or TER for each extension to find a compatible version, update those constraints too, run `composer update`, and if it fails, figure out which package is the problem and revert your changes.

---

### `composer typo3:extensions:update ` - Check and update extension compatibility

[](#composer-typo3extensionsupdate-version---check-and-update-extension-compatibility)

A versatile command for managing extensions. It serves two purposes depending on the context:

- **Before a core upgrade** (target version &gt; installed version): shows which extensions are compatible with the target TYPO3 version and offers to update them
- **After a core upgrade** (target version = installed version): finds the latest available version of each extension for the running TYPO3 version and offers to update them

```
composer typo3:extensions:update ^13.4 --dry-run    # Show compatibility table only
composer typo3:extensions:update ^13.4               # Interactively update extensions
```

**What it does under the hood:**

1. Loads all installed TYPO3 extensions (from `require`, `require-dev`, and path repositories)
2. For each extension, queries Packagist for the latest version compatible with the **currently installed** TYPO3 core
3. When the target version is newer than the installed version (upgrade scenario), additionally:
    - Queries Packagist for the latest version compatible with the **target** TYPO3 version
    - Shows a compatibility column comparing current vs target
4. Displays a compatibility table with columns:
    - Current installed version
    - Latest compatible version (for the current core)
    - Compatibility status for the current TYPO3 version
    - Target TYPO3 compatibility (only in upgrade scenario)
5. With `--dry-run`: stops after the table
6. Without `--dry-run`: asks for confirmation, then interactively offers to:
    - Bump version constraints in local package `composer.json` files (e.g. path repository extensions)
    - Run `composer require` (and `composer require --dev` separately for dev dependencies) to update extensions
7. On failure: reverts all modified `composer.json` files to their original state

**Without this plugin** you would need to: manually check each extension's page on Packagist or TER, compare version constraints, figure out which version supports your target TYPO3 version, and update constraints in potentially multiple `composer.json` files across your project.

Credits
-------

[](#credits)

This extension was created by Jochen Roth in 2023 for [b13 GmbH, Stuttgart](https://b13.com).

[Find more TYPO3 extensions we have developed](https://b13.com/useful-typo3-extensions-from-b13-to-you) that help us deliver value in client projects. As part of the way we work, we focus on testing and best practices to ensure long-term performance, reliability, and results in all our code.

###  Health Score

42

—

FairBetter than 89% of packages

Maintenance67

Regular maintenance activity

Popularity21

Limited adoption so far

Community14

Small or concentrated contributor base

Maturity56

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 78.6% 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 ~3 days

Total

2

Last Release

136d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/165630?v=4)[Benni Mack](/maintainers/bmack)[@bmack](https://github.com/bmack)

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

---

Top Contributors

[![ochorocho](https://avatars.githubusercontent.com/u/4623070?v=4)](https://github.com/ochorocho "ochorocho (11 commits)")[![bmack](https://avatars.githubusercontent.com/u/165630?v=4)](https://github.com/bmack "bmack (2 commits)")[![jschlier](https://avatars.githubusercontent.com/u/9108576?v=4)](https://github.com/jschlier "jschlier (1 commits)")

---

Tags

composertypo3

### Embed Badge

![Health badge](/badges/b13-typo3-updater/health.svg)

```
[![Health](https://phpackages.com/badges/b13-typo3-updater/health.svg)](https://phpackages.com/packages/b13-typo3-updater)
```

###  Alternatives

[symfony/runtime

Enables decoupling PHP applications from global state

74694.9M938](/packages/symfony-runtime)[wsdltophp/packagegenerator

Generate hierarchical PHP classes based on a WSDL

4352.0M21](/packages/wsdltophp-packagegenerator)[roots/wordpress-core-installer

A Composer custom installer to handle installing WordPress as a dependency

3916.3M48](/packages/roots-wordpress-core-installer)[october/rain

October Rain Library

1581.7M73](/packages/october-rain)[noerd/noerd

101.3k6](/packages/noerd-noerd)

PHPackages © 2026

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