Skip to content

v0.2.0

Choose a tag to compare

@awcodes awcodes released this 16 Jul 20:28
· 7 commits to main since this release
384a45e

Migrates the package onto the shared CI baseline and adds a real test suite. Includes two seeder fixes that change runtime behavior.

⚠️ Breaking

  • Requires PHP ^8.2 (was ^8.1). PHP 8.1 consumers stay on v0.1.2.

Fixed

  • postal-codes:seed never cleaned up after itself. The command wrote the archive via storage_path("app/{country}.zip") but checked and deleted it through Storage::disk('local'). Since Laravel 11 the local disk root is storage/app/private, so those are different directories — the re-download check always missed and cleanup silently did nothing, leaving the zip and .txt on disk after every run. All paths now resolve through the disk.
  • A cached archive was never extracted. The re-download guard also wrapped the extraction, so when a zip was already present the command skipped extracting and then tried to import a .txt that was never written. Extraction now always runs.

Added

  • Test suite: 25 tests covering the model, the GeoNames column mapping, service provider wiring, and the seeder command end to end. Previously the suite could not execute at all — Pest and testbench were never in require-dev.
  • Shared CI (awcodes/.github@v1): Tests, Lint, Static Analysis, and Reformat, with phpstan clean at level 5.
  • Dev toolchain: testbench, Pest 4, larastan, rector, collision. Canonical pint.json, rector.php, phpstan.neon.dist, and Dependabot config.

Notes

  • CI covers PHP 8.3–8.4 on Laravel 12/13. PHP 8.5 is not yet supported: maatwebsite/excel ^3.1 depends on phpoffice/phpspreadsheet, which declares php >=7.4.0 <8.5.0. It will be added once phpspreadsheet supports 8.5.
  • Codebase reformatted to the shared Pint ruleset (declare(strict_types=1) throughout).

Full Changelog: v0.1.2...v0.2.0