Skip to content

v2.8.0 — Laravel 13 & hardening

Choose a tag to compare

@BrunosCode BrunosCode released this 21 Oct 08:19
· 4 commits to main since this release

Highlights

Laravel 13 support. The package now declares illuminate/contracts and illuminate/support ^11.0 || ^12.0 || ^13.0, and CI covers Laravel 11, 12 and 13 on Ubuntu and Windows (Laravel 13 on PHP 8.3 and 8.4). The suite also passes with Pest 4 and laravel/mcp 1.x.

Safer CSV exports. Values starting with =, +, -, @, tab or carriage return are now written with a leading ', so opening an export in Excel, LibreOffice or Google Sheets cannot evaluate them as formulas. The package strips the quote again when it reads the file, so every value round-trips exactly. Controlled by the new csvEscapeFormulas option (default true).

Heads-up: exported CSVs now contain '=… where they used to contain =…. If another tool consumes the CSV, either let it strip the leading quote or set csvEscapeFormulas to false.

Fixed

  • Configs published before newer options keep working. check, checkerClass, jsonFileName, jsonNested and jsonFormat were required, so a config published (or cached) before an option existed failed validation on every command after an upgrade. They now fall back to the shipped defaults.
  • The database handler matches groups on the full prefix and escapes LIKE wildcards. auth no longer matches authors.*, and a group name containing % or _ no longer matches other groups, which could make a write soft-delete their keys.
  • CSV reader: blank lines are skipped, an empty file reads as no translations, and an unreadable file fails with a clear message instead of a TypeError.
  • set-translation-group-tool returns an error response for an invalid locale instead of throwing.
  • Lang directories are created with 0755 instead of 0777.
  • The facade docblock lists every service method with its real return type.

Changed

  • PHPStan now runs in CI.
  • phpunit.xml.dist no longer configures coverage reports: on PHPUnit 12 they made every run without a coverage driver exit before any test ran. composer test-coverage still passes --coverage.
  • CI actions bumped: actions/checkout v7, dependabot/fetch-metadata v3.1.0.

No configuration changes are required. Verified against brunoscode/twill-translation-handler v2.3.0 (tests and PHPStan green).

Full Changelog: v2.7.0...v2.8.0