Upgrading Modularous ​
This guide covers the general upgrade procedure plus notes on recent releases. For a complete list of changes, see the CHANGELOG.
Versioning ​
Modularous follows SemVer-ish versioning while the package is pre-1.0:
- Minor (
0.x.y→0.(x+1).0) — may contain breaking changes; always review release notes - Patch (
0.x.y→0.x.(y+1)) — bug fixes and non-breaking additions only
Pre-1.0
Until 1.0.0, minor releases may introduce breaking changes. Pin with ~0.58.0 to allow patches but block minors, or ^0.58.0 to allow any compatible minor.
General Upgrade Procedure ​
Run this sequence for any upgrade (minor or patch):
1. Update the package ​
composer require unusualify/modularous:^0.58 --update-with-all-dependencies2. Republish configuration (if prompted) ​
php artisan vendor:publish --tag=modularous-config --forceDiff the result against your existing config before committing — --force overwrites.
3. Re-sync host Laravel configs ​
php artisan modularous:update:laravel:configsPatches config/auth.php guards and related files. See update:laravel:configs.
4. Run migrations ​
php artisan modularous:migrate5. Republish stubs (if you generate code) ​
php artisan modularous:make:stubs --forceOnly needed if you have published stubs locally. Skip otherwise.
6. Rebuild frontend ​
npm install
php artisan modularous:build7. Clear caches ​
php artisan modularous:cache:clear
php artisan config:clear
php artisan view:clear8. Smoke test ​
- Log in as admin
- Load a data-table view
- Create / edit a record on any module
- Run any custom test suite
Version-Specific Notes ​
v0.58.0 (2026-03-24) ​
Feature release with substantial additions — review these before upgrading.
New features you can adopt ​
- Currency provider interface — modules can now provide their own currency data source. See Currency providers.
- 2FA login routes — enable via the auth component config.
- Command discovery —
php artisan modularous:listnow scans all registered commands. - Route status command —
php artisan modularous:route:statuslists enable/disable status per module. - Ziggy integration — Laravel routes are exposed to the Vue side via Ziggy.
- Custom exception class —
Unusualify\Modularous\Exceptions\*replaces direct\Exceptionthrows. - Deferred auth config — auth component and pages now use deferred config. Re-run
modularous:update:laravel:configsto pick up defaults. - InputRenderer + registry — dynamic component mapping for form inputs. Existing
registerInputTypecalls keep working.
Breaking / behaviour changes ​
- Composition API is now enforced for new Vue components. Existing Options API components keep working; new generator output is Composition.
- Auth views are published separately — run
php artisan vendor:publish --tag=modularous-auth-viewsif you customised them.
Migration checklist ​
- [ ] Run the general upgrade procedure above
- [ ] If you rely on currency exchange, either install
SystemPricingor implement a customCurrencyProviderInterfacebinding - [ ] If you customised auth views, republish with
--tag=modularous-auth-views - [ ] Review
config/modularous.phpfor new keys after--forcerepublish
v0.57.x ​
Patch releases only — safe to upgrade with the general procedure.
Older versions ​
For upgrades across multiple minors (e.g. v0.55 → v0.58), upgrade one minor at a time and run the procedure between each. Skipping minors often surfaces cumulative breaking changes all at once.
Rollback ​
If an upgrade breaks something and you need to revert:
1. Downgrade the package ​
composer require unusualify/modularous:0.58.0 --update-with-all-dependencies
# replace 0.58.0 with the previous known-good version2. Roll back migrations ​
php artisan modularous:migrate:rollbackRollback only undoes the last batch. For multiple batches, run repeatedly — or check the migration table and target specific ones.
3. Clear all caches ​
php artisan modularous:cache:clear
php artisan config:clear
php artisan view:clear4. Restore customised files ​
If vendor:publish --force overwrote a customised file and you didn't diff before committing, restore it from git:
git checkout HEAD -- config/modularous.phpTroubleshooting ​
Composer resolver complains about conflicts ​
Run with --with-all-dependencies (or -W) to allow transitive updates:
composer require unusualify/modularous:^0.58 -WMigrations fail on upgrade ​
Check database/migrations/ and modules/*/Database/Migrations/ for duplicate migration names. Modularous migrations are namespaced by module; if a host-app migration collides, rename it.
Form inputs render as plain text after upgrade ​
The input registry may not have loaded. Clear and rebuild:
php artisan modularous:cache:clear
php artisan modularous:buildEcho / broadcast events stop firing ​
After upgrading broadcasting, re-publish Reverb config and confirm queue workers restarted:
php artisan config:clear
php artisan queue:restart
php artisan reverb:restartSee Broadcasting troubleshooting.
Before You Upgrade in Production ​
- [ ] Pin the current version in
composer.jsonso acomposer updatedoesn't move further - [ ] Run the upgrade in a staging environment first
- [ ] Take a database snapshot
- [ ] Confirm you have a tested rollback path
- [ ] Schedule during a low-traffic window
- [ ] Keep the previous package cache (
vendor/) available for fast revert
See Also ​
- CHANGELOG — full release history
- Installation Guide — fresh-install instructions
- Commands / Update — commands involved in upgrading