Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions .github/workflows/php.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,3 +25,23 @@ jobs:
uses: ./.github/workflows/action-phpstan.yml
with:
extension_name: ${{ github.event.repository.name }}

extension_verifier:
name: Extension Verifier (lowest)
runs-on: ubuntu-latest
steps:
- name: Checkout SwagMigrationAssistant
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1

- name: Remove PHPStan config
run: rm phpstan.neon.dist

- name: Allow composer to resolve advisory-affected releases
run: composer config policy.advisories.block false

- name: Run verifier
uses: shopware/github-actions/extension-verifier@main
with:
action: check
check-against: lowest
exclude: stylelint
8 changes: 8 additions & 0 deletions .shopware-extension.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# yaml-language-server: $schema=https://shopware.github.io/shopware-cli/shopware-extension-schema.json
compatibility_date: '2026-08-14'

validation:
ignore:
# The verifier's PHPStan cannot see functions defined in vendor PSR-4 files, these resolve at runtime.
- message: 'Function service not found'
- message: 'Function tagged_iterator not found'
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
- #18902 - Fixed a bug in media migration whereby failed downloads were not marked as definitively failed once the retry attempts had been exhausted. As a result, processing could not be completed correctly.
- #17832 - Fixed attribute migration so custom fields with an empty label no longer abort the run. The reader now keeps the `column_name` in the attribute configuration.
- #12748 - Fixed order migration so `product.sales` is recalculated from persisted order line items after migrated orders are written. Cancelled orders are excluded from the sales calculation.
- Fixed attribute migration on installations that resolve Doctrine DBAL 4.2, where reading attributes through the Shopware local gateway aborted the run.

# 18.0.0

Expand Down
1 change: 1 addition & 0 deletions CHANGELOG_de-DE.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
- #18902 - Fehler bei der Medienmigration behoben, durch den fehlgeschlagene Downloads nach Ablauf der Wiederholungsversuche nicht als endgültig fehlgeschlagen markiert wurden. Dadurch konnte die Verarbeitung nicht korrekt abgeschlossen werden.
- #17832 - Die Attribut-Migration wurde korrigiert, sodass Zusatzfelder mit leerem Label die Migration nicht mehr abbrechen. Der Reader behält nun den `column_name` in der Attributkonfiguration.
- #12748 - Die Migration von Bestellungen wurde korrigiert, sodass `product.sales` nach dem Schreiben migrierter Bestellungen anhand der persistierten Bestellpositionen neu berechnet wird. Stornierte Bestellungen werden dabei nicht berücksichtigt.
- Die Attribut-Migration wurde für Installationen korrigiert, die Doctrine DBAL 4.2 auflösen. Dort brach das Lesen der Attribute über das lokale Shopware-Gateway die Migration ab.

# 18.0.0

Expand Down
3 changes: 3 additions & 0 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@
"require": {
"shopware/core": "~6.7"
},
"suggest": {
"shopware/storefront": "Required for migrating themes and their sales channel assignments"
},
"extra": {
"shopware-plugin-class": "SwagMigrationAssistant\\SwagMigrationAssistant",
"plugin-icon": "src/Resources/config/plugin.png",
Expand Down
3 changes: 3 additions & 0 deletions phpstan.neon.dist
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,9 @@ parameters:
- message: '#Call to deprecated method listTableForeignKeys\(\) of class Doctrine\\DBAL\\Schema\\AbstractSchemaManager#'
paths:
- src/Profile/Shopware/Gateway/Local/Reader/AttributeReader.php
- message: '#Call to deprecated method getLocalColumns\(\) of class Doctrine\\DBAL\\Schema\\ForeignKeyConstraint#'
paths:
- src/Profile/Shopware/Gateway/Local/Reader/AttributeReader.php

# TODO: The MainOrContainer type cannot fully express its state after nested array mutations
- identifier: parameterByRef.type
Expand Down
4 changes: 2 additions & 2 deletions src/Profile/Shopware/Gateway/Local/Reader/AttributeReader.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@

use Doctrine\DBAL\Schema\Column;
use Doctrine\DBAL\Schema\ForeignKeyConstraint;
use Doctrine\DBAL\Schema\Name\UnqualifiedName;
use Doctrine\DBAL\Types\AsciiStringType;
use Doctrine\DBAL\Types\BigIntType;
use Doctrine\DBAL\Types\BinaryType;
Expand Down Expand Up @@ -192,7 +191,8 @@ private function cleanupColumns(array $columns, array $foreignKeys): array
$fks = [];

foreach ($foreignKeys as $foreignKey) {
$fks[] = array_map(static fn (UnqualifiedName $name) => $name->toString(), $foreignKey->getReferencingColumnNames());
// getLocalColumns() is deprecated, but getReferencingColumnNames() needs DBAL 4.3+ (Shopware 6.7.0/6.7.1 can lock DBAL 4.2)
$fks[] = $foreignKey->getLocalColumns();
}

if ($fks !== []) {
Expand Down