Does a ^6.4 shopware/core
constraint allow Shopware 6.7.0.0?
A ^6.4 shopware/core declaration allows Shopware 6.7.0.0.
A caret constraint pins the first non-zero segment: it accepts every release below the next major-ish bound and refuses everything at or above it.
The bound this idiom derives
The ^6.4 idiom stops below version 7.
Shopware 6.7.0.0 sits below the bound ^6.4 derives, which is why the declaration reaches it.
The next release up
The next release line above Shopware 6.7.0.0 is 6.7.1.
A ^6.4 declaration still reaches Shopware 6.7.1, so the next release up does not by itself force a constraint change.
The same declaration against every version we evaluate
| Target | Verdict | Statement |
|---|---|---|
| Shopware 6.6.10.3 | allows | A ^6.4 shopware/core declaration allows Shopware 6.6.10.3. |
| Shopware 6.7.0.0 | allows | A ^6.4 shopware/core declaration allows Shopware 6.7.0.0. |
Neighbouring declarations at Shopware 6.7.0.0
| Declaration | Family | At this target | Upper bound | Why |
|---|---|---|---|---|
~6.4.0 | tilde | A ~6.4.0 shopware/core declaration excludes Shopware 6.7.0.0. | The ~6.4.0 idiom stops below version 6.5. | Shopware 6.7.0.0 sits at or above the bound ~6.4.0 derives, which is why the declaration stops short of it. |
6.6.* | wildcard | A 6.6.* shopware/core declaration excludes Shopware 6.7.0.0. | No single upper bound follows from the 6.6.* idiom alone. | 6.6.* derives no single bound, so whether it reaches Shopware 6.7.0.0 is decided clause by clause rather than by one cut-off. |
6.6.0.0 | exact | A 6.6.0.0 shopware/core declaration excludes Shopware 6.7.0.0. | No single upper bound follows from the 6.6.0.0 idiom alone. | 6.6.0.0 derives no single bound, so whether it reaches Shopware 6.7.0.0 is decided clause by clause rather than by one cut-off. |
What this tells you, and what it does not
- This checks constraint DECLARATIONS, not a full dependency resolution — the definitive gate at update time is still `composer update --dry-run`.
- A plugin with no shopware/* constraint is UNKNOWN, never assumed fine.
- Transitive (non-shopware) dependency conflicts are out of scope.
Check a real shop
Run your composer.lock through the checker — it reads declarations the same way this page does, across every plugin at once.