swp/updater-bundle
A Symfony bundle for managing application updates: organize sequential update routines, run them from a command or admin interface, and track which updates have already been applied so deployments stay predictable.
swp/updater-bundle is a Symfony bundle from the Superdesk Web Publisher lineage — it depends on Symfony's kernel, bundle registration (AppKernel / bundles.php), the Symfony DI container, YAML configuration trees, and bin/console commands. Laravel uses service providers, Artisan commands, facades, and a different container lifecycle with no bundle concept. The only portable asset is the thin ahilles107/updater core (fetch → extract → copy), which is small enough to read in an afternoon and re-implement cleanly. TPM framing: this is not a dependency decision, it is a pattern-sourcing decision.config/updater.php, and no Artisan entry point. Composer constraints likely target PHP/Symfony versions from the Superdesk era and will collide with Laravel's pinned Symfony components (console, process, filesystem, finder). A realistic spike is one to three days: read the core library, document its update sequence, kill the spike. Do not budget for a production integration without a legal and security gate in front of it.ahilles107/updater genuinely framework-agnostic and independently maintained, or does it also depend on Symfony components? What artifact format does it expect (zip? tarball? manifest schema)? Does it verify checksums or signatures before extraction, or does it trust the download URL? Does it support atomic release directories, or does it overwrite in place? Is there any rollback path? What filesystem permissions does it require, and can it run as a user separate from the web worker? Is the AGPL exposure limited to the bundle, the core library, or both? Who on our team would own a fork, and what is the exit plan if we need a security patch in year two?UpdateApplication Artisan command.version, channel, url, sha256/signature), define the release layout (immutable releases/<version>/ plus a current symlink), define the execution order (down → backup → extract → migrate --force → optimize:clear → restart queues/opcache → up), then implement with Http::get(), ZipArchive or Storage, and Process. Deployer, Envoyer, or a hosted distribution product are the "buy/different-adopt" comparators to price against that build.config:cache. Add an explicit AGPL compliance review before any code — bundle or copied — enters the repository. Confirm whether the manifest endpoint is reachable through the customer's proxies, TLS interception, and redirects, since that is the most common real-world failure.ahilles107/updater and writing a one-page spec of the update sequence we would build. (4) Decision gate: build in-house, buy a distribution platform, or defer. (5) If build: implement with signing, atomic swap, and rollback, then stage-test migrations, cache clears, queue restarts, and permission scenarios. TPM recommendation: no-go on adopting the package; yes to a short spike that harvests the design.composer.json.How can I help you explore Laravel packages today?