uvdesk/composer-plugin
Composer plugin for UVdesk that streamlines package and extension handling by integrating Composer workflows with UVdesk projects. It helps automate dependency-related setup tasks and supports smoother installation and management of UVdesk packages.
This release (v1.1.0) is a Composer plugin, not a Laravel package — there is no service provider, facade, or publishable config. It hooks into Composer's install/update lifecycle for UVdesk-based applications (helpdesk/e-commerce skeletons) to wire newly required uvdesk/* bundles into the project (bundle registration, config/asset placement, post-install hooks). The headline change is improved compatibility with Composer 2 and Symfony Flex 2, which mainly matters at install/build time rather than at runtime.
Minimal steps:
composer --version and that symfony/flex is ^2.0 in your composer.json. If you still build on Composer 1 or Flex 1, pin the previous plugin release in composer.lock and do not upgrade yet.{
"config": {
"allow-plugins": {
"uvdesk/composer-plugin": true,
"symfony/flex": true
}
}
}
Or run composer config allow-plugins.uvdesk/composer-plugin true and commit the change.composer.json (extra block, allow-plugins), vendor/uvdesk/composer-plugin/ (the event subscribers that do the work), the generated config/bundles.php / config/packages/* diff after an install, and CHANGELOG-1.1.md linked in the notes.composer install, then inspect git status — the plugin's output is the set of config/bundle-registration files it wrote. That diff is your mental model of what it does.require this plugin directly; it arrives transitively via uvdesk/community-skeleton. Manage its version through the skeleton/composer.lock, not ad hoc.composer require uvdesk/<bundle> inside a container/CI step that has write access to the project root. The plugin registers the bundle and drops config; commit the resulting config/ changes as part of your PR so the app boots identically without a re-install.ENV COMPOSER_ALLOW_SUPERUSER=1
RUN composer config --no-interaction allow-plugins.uvdesk/composer-plugin true \
&& composer install --no-dev --no-interaction --prefer-dist --optimize-autoloader
Do the install in the build stage, then run php artisan optimize (or the UVdesk equivalent) after the plugin-generated config files exist.composer update uvdesk/composer-plugin symfony/flex --with-dependencies, then run a full composer install on a clean checkout (not just dump-autoload) so post-install hooks actually re-run.path repository plus a symlink ("options": {"symlink": true}) and remember the plugin only executes on install/update events — composer dump-autoload alone won't re-trigger it.composer install -vvv and watch for the plugin's own log lines; combine with composer diagnose when Flex recipe application looks wrong.allow-plugins. On Composer 2.2+, skipping the prompt (or using --no-interaction in CI) leaves the plugin unexecuted — the install "succeeds" but bundles aren't registered and the app 500s on boot. This is the single most common failure with v1.1.0 upgrades.--no-plugins ≠ --no-scripts. --no-scripts skips script events but still loads plugins; --no-plugins disables the plugin entirely. Use --no-plugins only to prove the plugin is the culprit, never in a production build.allow-plugins and Composer 2. Mixing Flex 1 recipes with Flex 2 (extra.symfony.allow-contrib, endpoint changes) can result in config files being written twice or not at all. Keep both plugins on matching majors.composer install after manual edits can conflict or overwrite. Keep generated files in version control and review the diff on every dependency bump.php artisan config:clear && php artisan cache:clear (or delete bootstrap/cache/*.php) — a stale config.php will make it look like the plugin did nothing.composer.lock pins the plugin. Because the plugin affects build output, treat its version like a framework dependency: bump deliberately, in its own PR, with the regenerated config included.extra in the root composer.json and via the plugin's Composer event subscribers in vendor/uvdesk/composer-plugin/src. If you need custom placement of bundle files, prefer overriding at the project level rather than patching vendor/.composer require uvdesk/composer-plugin:<previous> --with-dependencies and keep Composer 2 in place — the earlier line still works on Composer 2, it simply lacks the Flex 2 refinements.Verdict: v1.1.0 is a compatibility/maintenance release — no breaking API changes for consumers, but it does raise the effective floor to Composer 2 + Flex 2 and makes allow-plugins configuration mandatory. Worth taking now; verify the config diff after upgrading.
How can I help you explore Laravel packages today?