v2.0.0 — Symfony 6.4/7/8 + PHP 8.2+, per-server auth, hidden_processes, restart - #2
Merged
Conversation
…rocesses, restart Modernization (breaking): - PHP >= 8.2, Symfony ^6.4||^7.0||^8.0, supervisorphp/supervisor ^5.1, fXmlRpc PsrTransport (PSR-17/18) — drops abandoned symfony/templating and php-http/HTTPlug stack; bundle ships its own Nyholm PSR-17 + Psr18Client - modern bundle layout (config/, templates/, translations/, getPath()); services + routes are PHP configs (Symfony 8 removed the XML loaders) - config root key: supervisor -> helppc_supervisor; parameter helppc_supervisor.servers; per-server host required Features: - per-server HTTP basic auth (username/password) via BasicAuthClient decorator - hidden_processes deny-list (matches name or group): excluded from listings, hard 404 on every process route before any RPC call - restart action (stop-and-wait, then start); all state-changing routes POST - bounded log tails (log_tail_bytes, default 16 KiB) - templates rewritten without Bootstrap 3 / jQuery / fancybox Removed: start/stop-all, log clearing, AJAX process-info endpoints. Tests: PHPUnit 11 (unit + kernel smoke), PHPStan 2 level 7, GitHub Actions CI (PHP 8.2-8.4, lowest/highest deps). See UPGRADE-2.0.md. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…return type
- templates: use an explicit domain in |trans({}, 'SupervisorBundle') instead
of the {% trans_default_domain %} tag — its token parser in older
symfony/twig-bridge (< 6.4.17) crashes with Twig >= 3.15 with 'EmptyNode
cannot have children' (lowest-deps job resolved bridge v6.4.0 + twig v3.27)
- SupervisorBundle::getContainerExtension(): the parent property may hold
false ('no extension') — instanceof check instead of ??=
Verified locally against bridge 6.4.0 + twig 3.27 (previously failing),
pure lowest (twig 2.13) and highest deps: 19/19 tests, phpstan clean.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Full modernization + hardening of the bundle. Breaking release — see
UPGRADE-2.0.md.Modernization
supervisorphp/supervisor^5.1fXmlRpc\Transport\PsrTransport— drops the abandonedsymfony/templatingand php-http/HTTPlug stack; the bundle registers its own Nyholm PSR-17 factory +Psr18Client(no app-level wiring required)config/,templates/,translations/,getPath()); services and routes are PHP configs (Symfony 8 removed the XML loaders)supervisor:→helppc_supervisor:, parameterhelppc_supervisor.servers, per-serverhostis requiredNew features
username/password) via theBasicAuthClientPSR-18 decorator — credentials never appear in URLs or exception messageshidden_processesdeny-list (matches process name OR group — covers numprocs>1 programs and event listeners): hidden processes are excluded from every listing and all routes targeting them return 404 before any RPC calllog_tail_bytes, default 16 KiB) instead of reading the whole loglayout.html.twigRemoved
hidden_processes— stop-all would also kill hidden processes)Verification
composer validate --strictOKAfter merge
gh release create v2.0.0)v2.x-devfor^2.0and drop therepositoriesentry🤖 Generated with Claude Code