halloverden/symfony-route-deprecation-bundle
A Symfony bundle for deprecating routes: mark routes as deprecated so requests trigger configurable deprecation notices, helping you track usage and migrate consumers safely before removal.
Deprecation (and, by convention, Sunset) headers to specific routes, turning "we're retiring v1" from a changelog paragraph or email blast into a machine-readable contract that client SDKs, API gateways, and customer tooling can act on automatically. That is a product decision about how you communicate breaking changes, not just an engineering detail.composer require. The PM decision for a Laravel shop is therefore "adopt the pattern," not "adopt the package."Adopt (or, more likely, borrow the pattern) when all of these hold:
Look elsewhere — or write it yourself — when:
Route::macro; ~30–60 lines. Adding a Symfony bundle here is a category error.Deprecation header was standardized as RFC 9745 (with Sunset in RFC 8594). Verify the package's format matches the final spec before you expose it to customers, or you'll ship a contract you have to break.One-liner for executives: A small, low-risk mechanism for telling API consumers in the response itself that an endpoint is going away and when — so version retirements happen on schedule instead of stalling on support escalations.
The ask: Not budget. Approval to standardize a deprecation signaling convention (headers per RFC 9745 / RFC 8594) across our API surface, plus a decision on whether we take the open-source package as a dependency or implement the listener in-house.
Why now: Every planned breaking change is gated on our ability to communicate it credibly. Shipping the signal is cheap; retrofitting it after consumers are surprised is expensive in trust and support load.
Why low risk: The scope is a response header. It is additive, backward-compatible, and reversible. The package itself is MIT and tiny — but because it is a Symfony bundle with minimal adoption and follows a draft spec, engineering should treat the header contract as ours and the library as an implementation detail we can replace or vendor without customer impact.
What engineering should confirm before we commit: (1) final-RFC header format and date encoding, (2) how route-level metadata is declared and kept in sync with our sunset calendar, (3) whether we vendor or depend given maintenance risk, (4) how we'll measure the effect — e.g. share of v1 traffic from consumers that have received the header.
How can I help you explore Laravel packages today?