From d799e3f7ef3785430781d4ad561c9807a17b0363 Mon Sep 17 00:00:00 2001 From: Thomas COMBE Date: Mon, 6 Oct 2025 13:40:50 +0200 Subject: [PATCH 1/9] feat: update composer project name --- composer.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/composer.json b/composer.json index ccc5a05..a1d90c3 100644 --- a/composer.json +++ b/composer.json @@ -1,8 +1,9 @@ { - "name": "thomascombe/backpack-async-export", + "name": "webqamdev/backpack-async-export", "description": "This is a package to manage async export in Backpack for Laravel", "keywords": [ "thomascombe", + "webqamdev", "laravel", "backpack-async-export", "backpack", From ef4cf6d63a2f52bbdafe11170a0b4edee6fa276a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20ARGOUD?= Date: Mon, 29 Dec 2025 17:08:02 +0100 Subject: [PATCH 2/9] fix: provide the escape character as its default value will change --- src/Jobs/Export/SimpleCsv.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Jobs/Export/SimpleCsv.php b/src/Jobs/Export/SimpleCsv.php index 4bfa774..e0195cc 100644 --- a/src/Jobs/Export/SimpleCsv.php +++ b/src/Jobs/Export/SimpleCsv.php @@ -47,7 +47,7 @@ public function handle(): void $this->openFile(); $this->addUtf8Header(); - fputcsv($this->handle, $this->export->headings()); + fputcsv($this->handle, $this->export->headings(), escape: "\\"); $this->export->query()->chunk( $this->export->getChunkSize(), @@ -56,7 +56,8 @@ function (Collection $collection): void { function (Eloquent $model): void { fputcsv( $this->handle, - $this->export->map($model) + $this->export->map($model), + escape: "\\", ); } ); From a274b3e6e57b8a6e412200a8bc2cfabaafa5edca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20ARGOUD?= Date: Wed, 7 Jan 2026 15:30:15 +0100 Subject: [PATCH 3/9] fix: store export on model's disk --- src/Jobs/ExportJob.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Jobs/ExportJob.php b/src/Jobs/ExportJob.php index be95840..6bcdf7b 100644 --- a/src/Jobs/ExportJob.php +++ b/src/Jobs/ExportJob.php @@ -66,7 +66,7 @@ public function handle(): self $result = Excel::store( $instance, $this->export->{ImportExport::COLUMN_FILENAME}, - config('backpack-async-import-export.disk') + $this->export->{ImportExport::COLUMN_DISK} ?: config('backpack-async-import-export.disk'), ); /** @phpstan-ignore-next-line */ From 69c432959de5ac5339113c577ccc7588288451b0 Mon Sep 17 00:00:00 2001 From: Nelson PIRES HASSANALI Date: Mon, 15 Jun 2026 10:19:29 +0100 Subject: [PATCH 4/9] feat: add compatibility with Backpack v7, Laravel 13, and PHP 8.5 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Bump backpack/crud constraint from ~6.0 to ^7.0 - Expand illuminate/contracts to ^12.0|^13.0 for Laravel 13 support - Expand orchestra/testbench to ^10.0|^11.0 (testbench 11 = Laravel 13) - Expand phpunit to ^10.1|^11.0 to match testbench 11 requirements PHP 8.5 was already covered by ^8.2. No code changes required — Backpack v7 retains prologue/alerts, button API, routes, and models. Co-Authored-By: Claude Sonnet 4.6 --- composer.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/composer.json b/composer.json index a1d90c3..3efecf7 100644 --- a/composer.json +++ b/composer.json @@ -20,8 +20,8 @@ ], "require": { "php": "^8.2", - "backpack/crud": "~6.0", - "illuminate/contracts": "^12.0", + "backpack/crud": "^7.0", + "illuminate/contracts": "^12.0|^13.0", "maatwebsite/excel": "^3.1", "spatie/laravel-package-tools": "^1.12" }, @@ -29,9 +29,9 @@ "laravel/scout": "^10.10", "nunomaduro/collision": "^8.1", "nunomaduro/larastan": "^3.0", - "orchestra/testbench": "^9.0", + "orchestra/testbench": "^10.0|^11.0", "phpstan/phpstan": "^2.0", - "phpunit/phpunit": "^10.1", + "phpunit/phpunit": "^10.1|^11.0", "squizlabs/php_codesniffer": "^3.7", "vimeo/psalm": "^5.0" }, From 0f7979e741276595d4b5da4ededc65f4d04029c9 Mon Sep 17 00:00:00 2001 From: Nelson PIRES HASSANALI Date: Mon, 15 Jun 2026 10:52:38 +0100 Subject: [PATCH 5/9] docs: update README for v5.x and webqamdev package name Add 5.x row to compatibility table (PHP ^8.2, Laravel ^12|^13, Backpack ^7.0). Fix badges and composer require to use webqamdev instead of thomascombe. Co-Authored-By: Claude Sonnet 4.6 --- README.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 5a25d82..88352db 100644 --- a/README.md +++ b/README.md @@ -2,9 +2,9 @@ # Laravel Backpack Async Export -[![Latest Version on Packagist](https://img.shields.io/packagist/v/thomascombe/backpack-async-export.svg?style=flat-square)](https://packagist.org/packages/thomascombe/backpack-async-export) -[![PHPCS check](https://github.com/thomascombe/backpack-async-export/actions/workflows/phpcs.yml/badge.svg)](https://github.com/thomascombe/backpack-async-export/actions/workflows/phpcs.yml) -[![Total Downloads](https://img.shields.io/packagist/dt/thomascombe/backpack-async-export.svg?style=flat-square)](https://packagist.org/packages/thomascombe/backpack-async-export) +[![Latest Version on Packagist](https://img.shields.io/packagist/v/webqamdev/backpack-async-export.svg?style=flat-square)](https://packagist.org/packages/webqamdev/backpack-async-export) +[![PHPCS check](https://github.com/webqamdev/backpack-async-export/actions/workflows/phpcs.yml/badge.svg)](https://github.com/webqamdev/backpack-async-export/actions/workflows/phpcs.yml) +[![Total Downloads](https://img.shields.io/packagist/dt/webqamdev/backpack-async-export.svg?style=flat-square)](https://packagist.org/packages/webqamdev/backpack-async-export) This is a package to manage async export and import in [Backpack](https://backpackforlaravel.com/) for Laravel @@ -16,7 +16,7 @@ This is a package to manage async export and import in [Backpack](https://backpa You can install the package via composer: ```bash -composer require thomascombe/backpack-async-export +composer require webqamdev/backpack-async-export ``` | Version | PHP | Laravel | Backpack | @@ -25,6 +25,7 @@ composer require thomascombe/backpack-async-export | 2.x | ^8.1 | ^9.0 - ^10.0 | ~5.5 - ~6.0 | | 3.x | ^8.1 | ^10.0 | ~6.0 | | 4.x | ^8.2 | ^11.0 | ~6.0 | +| 5.x | ^8.2 | ^12.0 - ^13.0 | ^7.0 | You can publish and run the migrations with: From b7a20009976c7de0114307a458f10aad7f7d6cc2 Mon Sep 17 00:00:00 2001 From: Nelson PIRES HASSANALI Date: Mon, 15 Jun 2026 12:01:58 +0100 Subject: [PATCH 6/9] feat: allow maatwebsite/excel ^4.0 for PHP 8.5 support v3.x depends on phpoffice/phpspreadsheet 1.x which hard-blocks PHP >=8.5. v4.x requires phpspreadsheet ^5.3 which supports PHP 8.5. 4.x is still dev but minimum-stability=dev + prefer-stable already set, so stable users stay on 3.x and PHP 8.5 users can pull 4.x. Co-Authored-By: Claude Sonnet 4.6 --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 3efecf7..ff99340 100644 --- a/composer.json +++ b/composer.json @@ -22,7 +22,7 @@ "php": "^8.2", "backpack/crud": "^7.0", "illuminate/contracts": "^12.0|^13.0", - "maatwebsite/excel": "^3.1", + "maatwebsite/excel": "^3.1|^4.0", "spatie/laravel-package-tools": "^1.12" }, "require-dev": { From 012db25f9134212f329b3268c10c08ed21bd3eeb Mon Sep 17 00:00:00 2001 From: "claude[bot]" <41898282+claude[bot]@users.noreply.github.com> Date: Mon, 15 Jun 2026 17:55:44 +0000 Subject: [PATCH 7/9] revert: restore thomascombe package name and badges Undo the rename of composer.json "name" from thomascombe/backpack-async-export to webqamdev/backpack-async-export, and revert the derived README badge URLs and composer require instruction accordingly. The 5.x compatibility table row is preserved. Co-authored-by: Thomas Combe --- README.md | 8 ++++---- composer.json | 3 +-- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 88352db..f63f1cf 100644 --- a/README.md +++ b/README.md @@ -2,9 +2,9 @@ # Laravel Backpack Async Export -[![Latest Version on Packagist](https://img.shields.io/packagist/v/webqamdev/backpack-async-export.svg?style=flat-square)](https://packagist.org/packages/webqamdev/backpack-async-export) -[![PHPCS check](https://github.com/webqamdev/backpack-async-export/actions/workflows/phpcs.yml/badge.svg)](https://github.com/webqamdev/backpack-async-export/actions/workflows/phpcs.yml) -[![Total Downloads](https://img.shields.io/packagist/dt/webqamdev/backpack-async-export.svg?style=flat-square)](https://packagist.org/packages/webqamdev/backpack-async-export) +[![Latest Version on Packagist](https://img.shields.io/packagist/v/thomascombe/backpack-async-export.svg?style=flat-square)](https://packagist.org/packages/thomascombe/backpack-async-export) +[![PHPCS check](https://github.com/thomascombe/backpack-async-export/actions/workflows/phpcs.yml/badge.svg)](https://github.com/thomascombe/backpack-async-export/actions/workflows/phpcs.yml) +[![Total Downloads](https://img.shields.io/packagist/dt/thomascombe/backpack-async-export.svg?style=flat-square)](https://packagist.org/packages/thomascombe/backpack-async-export) This is a package to manage async export and import in [Backpack](https://backpackforlaravel.com/) for Laravel @@ -16,7 +16,7 @@ This is a package to manage async export and import in [Backpack](https://backpa You can install the package via composer: ```bash -composer require webqamdev/backpack-async-export +composer require thomascombe/backpack-async-export ``` | Version | PHP | Laravel | Backpack | diff --git a/composer.json b/composer.json index ff99340..f926da4 100644 --- a/composer.json +++ b/composer.json @@ -1,9 +1,8 @@ { - "name": "webqamdev/backpack-async-export", + "name": "thomascombe/backpack-async-export", "description": "This is a package to manage async export in Backpack for Laravel", "keywords": [ "thomascombe", - "webqamdev", "laravel", "backpack-async-export", "backpack", From eca235c66ce22e9baa7074325234ad568c2e6daa Mon Sep 17 00:00:00 2001 From: Thomas Combe <39582382+thomascombe@users.noreply.github.com> Date: Mon, 15 Jun 2026 20:47:27 +0200 Subject: [PATCH 8/9] fix: bump vimeo/psalm to ^6.0 to resolve phpunit 11 conflict orchestra/testbench ^10|^11 requires phpunit >= 11.5.50, which conflicts with vimeo/psalm ^5.0. Bumping psalm to ^6.0 resolves dependency resolution so the PHPStan CI job (composer install) passes. Co-Authored-By: Claude Opus 4.8 (1M context) --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index f926da4..c66edad 100644 --- a/composer.json +++ b/composer.json @@ -32,7 +32,7 @@ "phpstan/phpstan": "^2.0", "phpunit/phpunit": "^10.1|^11.0", "squizlabs/php_codesniffer": "^3.7", - "vimeo/psalm": "^5.0" + "vimeo/psalm": "^6.0" }, "autoload": { "psr-4": { From b06180d567d5202c12b7b02a2d57f8ff5916a062 Mon Sep 17 00:00:00 2001 From: Thomas Combe <39582382+thomascombe@users.noreply.github.com> Date: Mon, 15 Jun 2026 20:49:36 +0200 Subject: [PATCH 9/9] ci: pin PHP 8.3 for PHPStan workflow The chindit/actions-phpstan action bundled an older PHP that could not parse Laravel 12 / Symfony 7 syntax, crashing Larastan's app bootstrap. Replace it with shivammathur/setup-php (PHP 8.3 + required extensions) and run phpstan directly. Drop --ignore-platform-reqs so platform requirements are honoured. Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/workflows/phpstan.yml | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/.github/workflows/phpstan.yml b/.github/workflows/phpstan.yml index 08c6fc8..210aa80 100644 --- a/.github/workflows/phpstan.yml +++ b/.github/workflows/phpstan.yml @@ -7,8 +7,14 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: '8.3' + extensions: mbstring, zip, gd, dom, xml, fileinfo, bcmath + coverage: none - name: Install dependencies - run: composer install --prefer-dist --no-progress --no-suggest --ignore-platform-reqs + run: composer install --prefer-dist --no-progress - name: PHPStan - uses: chindit/actions-phpstan@master + run: vendor/bin/phpstan analyse --no-progress --memory-limit=1G