Skip to content

Upgrade df-compliance to Laravel 13.7#72

Merged
thekevinm merged 6 commits intodevelopfrom
shift/laravel-13
May 7, 2026
Merged

Upgrade df-compliance to Laravel 13.7#72
thekevinm merged 6 commits intodevelopfrom
shift/laravel-13

Conversation

@thekevinm
Copy link
Copy Markdown
Contributor

Summary

Wave 4 of the L11 -> L13 upgrade campaign. Brings df-compliance onto the Laravel 13.7 dep matrix shared with df-core, df-system, df-user, df-database, and df-sqldb.

  • composer.json: PHP ^8.3, laravel/helpers ^1.8 in production, df-core ~1.0.4, df-system ~0.6.2, full L13 dev stack (framework ^13.7, phpunit ^11.5.3, testbench ^11.0, mockery ^1.6, collision ^8.6)
  • phpunit.xml: drop PHPUnit 10+ removed attrs, add cacheDirectory + XSD reference
  • tests: add : void return type to all four tearDown() methods (PHPUnit 11 LSP enforcement)
  • .gitignore: composer.lock + PHPUnit cache artifacts
  • No source changes — full 32-invariant survey clean. Compliance package is purely composer + test-stub bumps.

Survey results (32 L13 invariants)

  • DispatchesJobs trait: not used
  • getDates() override on Eloquent models: none (AdminUser extends df-core's CoreAdminUser; ServiceReport extends BaseSystemModel — both use the standard $casts pattern)
  • setUpBeforeClass / tearDownAfterClass typos: none
  • Fruitcake CorsService refs: none
  • prependMiddlewareToGroup without hasMiddlewareGroup gate: N/A (no route registration)
  • Illuminate Connection / Builder / Grammar extensions: none
  • ConnectionInterface stub LSP violations: none (no test fixtures implementing it)
  • All Illuminate imports (Router, Support\Arr, Support\Str, Console\Command, Database\Eloquent\ModelNotFoundException, Database\Query\Builder, Contracts\Events\Dispatcher) stable in L13.7

Validation

Stage 1 (isolated install) — path-repo aliases for df-core@1.0.99, df-system@0.6.99 (both on shift/laravel-13). composer install --no-interaction resolves cleanly. laravel/framework v13.7.0, phpunit v11.5.55, orchestra/testbench v11.1.0. 17/17 df-compliance classes + 5 df-system classes used by ServiceProvider/Resources autoload.

Stage 2 (host-app integration) — host-app shift-173254 worktree with the standard Wave 1+ sibling-blocker scrub (drop df-mongo-logs, df-git, df-oauth, df-mcp-server from require + repositories; comment out MongoDB\Laravel\MongoDBServiceProvider::class in config/app.php). Add df-compliance as path-repo at 0.5.99 + require ~0.5.0. composer install --no-dev resolves the full host-app graph; 17/17 df-compliance classes autoload, helper polyfills (array_get/camel_case/array_except) all present.

Test plan

  • CI green on this PR (Shift's GH Actions matrix if configured)
  • After merge, downstream host-app smoke uses dreamfactory/df-compliance ~0.5.x once a Wave 4 tag (e.g. 0.6.0-l13) is cut
  • Existing tests under tests/* (extend df-core's TestCase) require host-app bootstrap — defer to host-app L13 acceptance suite

Anas and others added 6 commits November 13, 2023 08:54
…min credentials), so Session::user() returns null. Fixed the method to handle null users: = ? ->email : null;
…ged in with credentials

  2. Return api: when using API key (retrieves the app name associated with the API key)
  3. Return api:... if app name can't be retrieved (uses first 8 chars of API key)
  4. Return system as a fallback

  Now API key authentication will work without errors, and the audit logs will show meaningful identifiers like api:your-app-name instead of failing with a null constraint violation.
Identity patch when only using API Key since no user is available
Added standard overview describing DreamFactory as a secure, self-hosted
enterprise data access platform for enterprise apps and on-prem LLMs.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Bump PHP requirement to ^8.3 to match Laravel 13.7
- Add laravel/helpers ^1.8 to production require for array_get / camel_case /
  array_except polyfills (used transitively via df-core src consumers)
- Widen dreamfactory/df-core constraint to ~1.0.4 (L13 base tag)
- Widen dreamfactory/df-system constraint to ~0.6.2 (Wave 1 sibling baseline,
  required by ServiceProvider + Resources/System/ServiceReport)
- Add require-dev block: laravel/framework ^13.7, mockery ^1.6, collision ^8.6,
  phpunit ^11.5.3, orchestra/testbench ^11.0
- Modernize phpunit.xml: drop PHPUnit 10+ removed attributes
  (backupStaticAttributes, convertErrors/Notices/WarningsToExceptions,
  syntaxCheck), add cacheDirectory and XSD schema reference
- Add `: void` return type to all four tearDown() methods (PHPUnit 11 enforces
  signature compatibility with TestCase::tearDown(): void)
- Extend .gitignore for composer.lock and .phpunit.cache artifacts

No source changes required. Survey for the 32 known L13 invariants came back
clean: no DispatchesJobs, no getDates() overrides, no setUpBeforeClass typos,
no CorsService refs, no prependMiddlewareToGroup, no Illuminate
Connection/Builder/Grammar extensions. All Illuminate imports
(Router, Support\Arr/Str, Console\Command, Database\Eloquent\ModelNotFoundException,
Database\Query\Builder, Contracts\Events\Dispatcher) are stable in L13.

Validated via Stage 1 (isolated path-repo install with df-core +
df-system on shift/laravel-13 — 17/17 classes autoload, L13.7.0 confirmed) and
Stage 2 (host-app shift-173254 worktree with the standard sibling-blocker scrub
list — df-mongo-logs, df-git, df-oauth, df-mcp-server stripped — 17/17 classes
autoload alongside the full host-app dep graph, helper polyfills all present).
@thekevinm thekevinm changed the base branch from master to develop May 7, 2026 18:53
@thekevinm thekevinm marked this pull request as ready for review May 7, 2026 18:53
@thekevinm thekevinm merged commit 935a576 into develop May 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants