Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Bug Reporting Bundle Laravel Package

xrow/bug-reporting-bundle

A Symfony bundle for capturing and managing bug reports within your applications, helping teams collect issues in a structured way and streamline reporting workflows.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Framework mismatch (first-order finding). Despite being catalogued in a Laravel/PHP package review, xrow/bug-reporting-bundle is a Symfony bundle, not a Laravel package. The Bundle suffix, the xrowgmbh vendor, and the Composer package type conventions all point to a Symfony DI/container extension intended for registration in AppKernel/bundles.php. It has no Laravel service provider, no auto-discovery, and no facade or config-publishing contract. Treat any proposal that assumes drop-in Laravel installation as invalid on its face.

Status: abandoned. The description literally reads "Deprecated! It has been moved." with no successor named in the metadata. 0 stars, 0 dependents, and a last release of 2017-02-24 mean the project is unmaintained and has no observable downstream community. A package with zero dependents has zero field-testing, zero public bug surface, and zero shared upgrade pain — every defect will be discovered by us first.

Era fit. A February 2017 release targets Symfony 2.8/3.x and PHP 5.6–7.1, i.e. pre-Symfony 4 and pre-PHP 7.2. Modern Laravel (9–11) requires PHP 8.0+, and current Symfony is 6/7. Expect hard blockers: missing return types and nullable signatures against PHP 8, removed Symfony APIs (getContainer, dumpContainer-era patterns, templating and asset helper changes), and transitive dependencies that are themselves abandoned and will fail composer audit or a CI platform-requirement check.

Functional scope. The domain is narrow: client-side capture (error/feedback form, likely with screenshot or page context) posted to a tracker backend. That is a thin UX layer plus a controller, not core business logic. Its value is the widget and the ticket payload shape, both of which are reproducible in-house in days and are better sourced from a maintained vendor.

Technical risk. Supply-chain risk is the dominant concern: an unmaintained package with an unresolved "moved" status may still be installable from Packagist, which means it can be pulled into a build by a transitive requirement or a copy-pasted snippet. If the bundle ever renders a public-facing form and captures screenshots or DOM context, it also creates a data-protection surface (personal data, credentials in URLs or form fields) with no maintainer to patch it.

Key questions for the requester.

  1. What is the canonical successor referenced by "it has been moved," and is it public, licensed, and maintained?
  2. Is the ask (a) adopt for new work, (b) evaluate an existing legacy dependency, or (c) replace it? Only (b) and (c) are viable.
  3. Which tracker integrations does it ship (Jira, GitHub, internal endpoint), and does that contract still exist on the tracker side?
  4. What is the license, and was any of this code shipped as part of a commercial xrow product?
  5. Who owns the requirement, and what is the underlying user need — end-user bug capture, QA feedback, or production error triage?

Recommendation: do not adopt. Scope this as a "replace or remove" item, not an integration.

Integration Approach

Stack fit. Poor to none for a Laravel codebase. Bridging a Symfony bundle into Laravel requires a third-party Symfony-bundle-for-Laravel shim, itself typically stale, plus manual container wiring for the bundle's services, routes, and templates. That bridge is more code and more risk than the functionality it delivers, and it puts an abandoned dependency in the request path of a user-facing form.

Recommended path — reimplement the thin slice. Build a small first-party Laravel package or module with four pieces:

  • A public JS snippet for capture (error stack, URL, user agent, optional screenshot) — reuse an existing open-source widget rather than writing one.
  • A rate-limited POST route with a FormRequest for validation and payload size caps.
  • A queued job that calls the tracker API (Jira/GitHub/internal service) with retry and idempotency keys.
  • Config-driven credentials, plus redaction rules for PII before anything leaves the app.

Rough sizing: 3–10 engineering days depending on tracker API complexity. That is cheaper than the first framework-upgrade incident caused by a bridged legacy bundle.

Alternatives worth a build-vs-buy check: Sentry's user-feedback widget, Marker.io, BugHerd, or a Jira feedback app. For most teams these dominate both the legacy bundle and a custom build on maintenance cost.

Migration path (if already installed in a legacy Symfony app). Inventory the actual call sites and routes first — usage is likely one route plus one template. Then: freeze (no new consumers), stand up the replacement capture endpoint in parallel, dual-write or A/B the widget, confirm ticket payload parity with the tracker, remove the bundle, delete config and assets, and drop the Composer requirement. Budget for the removal PR being larger than expected because abandoned bundles accumulate local patches.

Compatibility notes. Do not pin to this package on any PHP 8 or Laravel 9+ project; the constraint set will not resolve, and forcing --ignore-platform-reqs merely defers the failure to runtime. No Flex recipe, no Laravel auto-discovery, no published config schema to map onto config/*.php.

Sequencing. Week 0: confirm successor status and license, and identify all existing consumers (including transitive). Week 1: decide buy vs build; if build, spec the tracker contract and PII redaction rules. Weeks 2–3: implement and shadow-test against real tickets. Week 4: cut over, remove the dependency, and add a CI guard (composer why, dependency allowlist) so it cannot reappear.

Operational Impact

Maintenance. There is no maintenance upstream and there will not be. Adopting means we own the code permanently — effectively an unannounced fork with no shared upstream. Every PHP, Symfony, or Laravel upgrade becomes our defect to fix, and upgrades land on a predictable cadence while the bundle does not move.

Support. No maintainer response path, no issue triage, no security advisory coverage. Vulnerabilities in the bundle or its transitive dependencies will not be announced to us; we would need to watch its dependency tree ourselves. This is the single largest ongoing cost and the reason to remove rather than tolerate it.

Scaling. The PHP side is a form handler — compute and storage load are negligible, and scaling is not a real concern. The capture widget is static, cacheable, and edge-servable. The genuine scaling risk is organizational: each year of retention adds dependency debt and shrinks the pool of engineers who can reason about the 2017-era idioms in the code.

Failure modes to watch. Silent breakage on framework upgrade (service not found in container, event listener no longer invoked); tracker API deprecation or credential rotation producing swallowed exceptions and lost bug reports; attachment or payload size limits causing truncation or 500s; abuse of a public unauthenticated endpoint (spam, storage exhaustion) with no upstream rate limiting; and PII leakage from screenshots or captured form state into a third-party tracker.

Ramp-up. Onboarding cost is low in absolute terms — the codebase is small and the concept is simple — but there are no docs and no examples, so it is archaeology rather than reading. The real ramp-up burden is the risk ownership: a new engineer inherits a package they cannot look up, cannot ask about, and cannot upgrade. That is a persistent tax on every future hire, which is precisely what a TPM should weigh against a three-to-ten-day replacement build.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
frankyso/ipaymu
3mdikram/worldmoneywords
snowsoft/config
itmosoft/laravel-subscriptions
larva/laravel-ai-qwen
diephp/sequences
users-au/socialite-provider
twidpay/twid-logger
mrnewport/laravel-plaid
mrnewport/laravel-repo
mrnewport/laravel-docsign
mrnewport/laravel-stow
mrnewport/laravel-flow
mrnewport/laravel-priceable
mrnewport/laravel-nestedterms
fredmeng/laravel-apidoc-generator
itstructure/laravel-multilingual-tools
pdustdar/elasticsearch
markupai/php-sdk
rlacerda83/lumem-microservice-shipment