tomatophp/tomato-subscription
Laravel subscription management for TomatoPHP, with plans, features, and subscriber billing. Includes Filament admin resources to create plans, assign subscriptions, and track renewals, all configurable and ready to drop into your app.
Architecture fit: The package appears to integrate at the Laravel schema/migration layer, specifically around a plans migration. That is a natural fit for Laravel applications using Composer packages that publish or load migrations. The v1.1.2 fix aligns the package with Laravel 11+ schema APIs by replacing an unavailable Blueprint::unsignedDouble call with double()->unsigned().
Integration feasibility: High for Laravel teams already using Composer and standard migration workflows. The patch is narrowly scoped and appears to address an installation/upgrade blocker rather than introduce new product behavior. New installations on Laravel 11+ should be able to run the plans migration after upgrading to v1.1.2.
Technical risk: Low-to-moderate. The fix removes a known Laravel 11+ migration failure, which reduces adoption risk. Residual risk remains for existing environments where the prior migration failed or partially ran: teams must inspect migration state, republish or reconcile any published migration file, and validate database portability. The release notes do not indicate breaking API changes, but they also do not confirm broader Laravel 12, database-driver, or backward-compatibility coverage.
Key questions:
double()->unsigned() behave equivalently across MySQL, PostgreSQL, and SQLite for this package’s expected schema?Stack fit: Fits standard Laravel package adoption: update via Composer, publish/compare migrations if applicable, run migrations, and verify schema. It is most relevant to Laravel 11+ applications that need the package’s plans schema and were previously blocked by the migration error.
Migration path: Upgrade to v1.1.2, then determine whether the plans migration is package-loaded or published. If published, compare the application’s copy against the v1.1.2 migration and update it if needed. For environments where the prior migration failed, inspect the migrations table and database schema before rerunning; remove any partial artifacts only after a backup and review. Run php artisan migrate in staging first, then production.
Compatibility: The release explicitly improves Laravel 11+ compatibility. Compatibility with older Laravel versions should be verified against the package’s composer constraints. Database compatibility should be tested because the change affects schema construction semantics, even if the resulting unsigned double column is intended to be equivalent.
Sequencing:
Maintenance: Low ongoing maintenance for consuming teams, assuming the package remains actively maintained. The release is a patch-level compatibility fix, so it should be treated as a routine dependency update after validation. Teams should track future Laravel schema API changes because this issue demonstrates sensitivity to framework upgrades.
Support: Support burden is mainly upgrade/recovery support for failed migrations. TPM should ensure the team has a clear runbook for failed Laravel migrations, published migration drift, and vendor escalation. Internal documentation should note the minimum fixed version, v1.1.2, for Laravel 11+ environments.
Scaling: No direct scaling impact is indicated. The change affects schema creation, not runtime throughput or application architecture. Operational scale risk is limited to repeated deployment failures if the migration issue is not resolved consistently across environments.
Failure modes: Primary failure mode is running an older package version on Laravel 11+, producing Method Illuminate\Database\Schema\Blueprint::unsignedDouble does not exist. Secondary failure modes include stale published migrations, partially applied schemas, environment drift between staging and production, and database-specific schema differences. These are detectable through migration logs, CI checks, and post-deploy schema verification.
Ramp-up: Ramp-up is low for a Laravel-proficient team. A TPM should allocate a small validation window for staging migration testing and a brief production deployment check. No broad training is required, but the team should understand the package’s migration publishing model and the recovery procedure for failed migrations.
How can I help you explore Laravel packages today?