Skip to main content
Home
Schatzchaeschtli 2026

Main navigation

  • Home
User account menu
  • Log in

Breadcrumb

  1. Home

Composer Version Constraints

By PierreAdmin , 17 September 2026

Mit Versionsvorgaben lässt sich bei der Installation eines Drupal-Moduls festlegen, welche Versionen Composer verwenden darf.

Composer – Versionsvorgaben (Version Constraints)

Mit Versionsvorgaben lässt sich bei der Installation eines Drupal-Moduls festlegen, welche Version oder welcher Versionsbereich von Composer verwendet werden darf. Composer bezeichnet diese Vorgaben als «Version Constraints».

Eine Versionsnummer folgt üblicherweise diesem Schema:

1.13.2
│ │  └─ Patch
│ └──── Minor
└────── Major

Für Drupal besonders relevant

1. Exakte Version

composer require 'drupal/pathauto:1.13.0'

Installiert exakt Version 1.13.0.

Composer darf keine neuere Version verwenden, solange diese Vorgabe nicht geändert wird.

Sinnvoll beispielsweise, wenn gezielt eine bestimmte Modulversion installiert oder ein Update-Verhalten getestet werden soll.

2. Caret-Vorgabe ^

composer require 'drupal/pathauto:^1.13'

Beispiele:
^1.0    >= 1.0.0 und < 2.0.0
^1.1    >= 1.1.0 und < 2.0.0
^1.13   >= 1.13.0 und < 2.0.0
^2.3    >= 2.3.0 und < 3.0.0

Das Caret erlaubt kompatible Updates, verhindert aber grundsätzlich denautomatischen Sprung über die nächste inkompatible Versionsgrenze.

Für stabile Drupal-Contrib-Module ist dies eine sehr gebräuchliche Vorgabe.

Achtung bei 0.x-Versionen:

^0.3     >= 0.3.0 und < 0.4.0
^0.3.2   >= 0.3.2 und < 0.4.0

Bei 0.x-Versionen ist die erlaubte Spanne enger.

3. Development-Version / Dev-Branch

composer require 'drupal/modulename:1.x-dev'

Installiert eine Development-Version bzw. einen Development-Branch.

Die composer.lock hält den konkret aufgelösten Stand fest. Bei Dev-Versionen wird dabei auch die konkrete Source-Referenz bzw. Commit-ID gespeichert.

Dev-Versionen sollten nur verwendet werden, wenn dafür ein konkreter Grund besteht, beispielsweise wenn eine benötigte Korrektur noch nicht als stabiles Release veröffentlicht wurde.


Weitere Composer-Versionsvorgaben

4. Tilde-Vorgabe ~

~1.13     >= 1.13.0 und < 2.0.0
~1.13.2   >= 1.13.2 und < 1.14.0

Die Tilde erlaubt Updates innerhalb eines bestimmten Versionsbereichs. Wird eine Patch-Version angegeben, ist sie enger als eine entsprechende Caret-Vorgabe.

Unterschied zwischen ^ und ~

Das Caret ^ erlaubt Updates bis zur nächsten inkompatiblen Versionsgrenze.
Die Tilde ~ hält dagegen die zuletzt fest angegebene Versionsstufe fest und
erlaubt Updates innerhalb des verbleibenden Bereichs.

Bei zwei angegebenen Stellen verhalten sich ^ und ~ daher häufig identisch:

^1.0
>= 1.0.0 und < 2.0.0
z. B. 1.1.0, 1.23.0 oder 1.99.0

~1.0
>= 1.0.0 und < 2.0.0
z. B. 1.1.0, 1.23.0 oder 1.99.0


Bei drei angegebenen Stellen zeigt sich der Unterschied:

^1.0.0
>= 1.0.0 und < 2.0.0
z. B. 1.0.1, 1.5.0 oder 1.99.99

~1.0.0
>= 1.0.0 und < 1.1.0
z. B. 1.0.1 oder 1.0.99, aber nicht 1.1.0


Merksatz:

^1.0.0
→ Minor- und Patch-Updates innerhalb 1.x erlaubt.

~1.0.0
→ Nur Patch-Updates innerhalb 1.0.x erlaubt.

5. Wildcard *

1.*      >= 1.0.0 und < 2.0.0
1.13.*   >= 1.13.0 und < 1.14.0

Der Stern steht für beliebige Versionen an dieser Stelle.

6. Vergleichsoperatoren

>=1.13         Version 1.13.0 oder neuer.
>1.13          Grösser als Version 1.13.
<=1.15         Bis und mit Version 1.15.
>=1.13 <1.15   Ab Version 1.13.0, aber kleiner als Version 1.15.0.

Damit lassen sich Versionsbereiche sehr exakt definieren.

7. Versionsbereich mit Hyphen

1.13 - 1.15

Definiert einen zusammenhängenden Versionsbereich.

Die genaue obere Grenze hängt davon ab, wie vollständig die Versionsnummer auf der rechten Seite angegeben wurde.

8. Oder-Verknüpfung ||

^1.13 || ^2.0

Erlaubt mehrere alternative Versionsbereiche.

Beispielsweise:
Eine kompatible 1.x-Version ab 1.13 ODER eine kompatible 2.x-Version ab 2.0.

composer.json und composer.lock

  • composer.json
    Definiert, WAS das Projekt benötigt und welche Versionen erlaubt sind.
  • composer.lock
    Definiert, WELCHE konkreten Versionen Composer tatsächlich aufgelöst hat.

Beide Dateien gehören ins Git-Repository.

Bei einer Installation mit vorhandener composer.lock werden die dort festgehaltenen Versionen installiert. Dadurch erhalten verschiedene Installationen des Projekts denselben Dependency-Stand.

  • composer
  • constraints
  • drupal
  • drupal 11
  • versionsvorgabe
Composer

Tag Suche

Categories (Taxonomie-Menu)

  • Drupal
    • Module
    • Theming
    • Views
  • Webentwicklung
    • Composer
    • CSS/SCSS
    • Deployment
    • Drush
    • Git
    • HTML
    • JavaScript
    • PHP
    • SSH
    • SVG
    • VS Code
  • Datenbank
    • mySQL
  • Server
    • Apache
    • DNS
    • Domains
    • Plesk
    • SSL/TLS
  • System
    • Mac
    • Unix
    • Windows