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

Sasso Shopware Compiler Laravel Package

shyim/sasso-shopware-compiler

Sasso compiler plugin that adds Shopware support, letting you compile Shopware theme stylesheets with the sasso SCSS compiler in PHP. Handles Shopware-specific syntax and functions so theme assets build without Node tooling.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Baseline note: This is the first recorded assessment for this package; there is no prior position to diff against, so the evaluation below is a fresh read of the 0.3.0 release notes and the 0.1.0 → 0.2.0 → 0.3.0 trajectory they imply.

Architecture fit

  • The package is a Symfony bundle, not a Laravel package. In a Laravel-centric portfolio it is only relevant where a Symfony kernel is in play — concretely Shopware 6, and any Flex-managed Symfony app used alongside it. There is no service provider, no facade, no Laravel auto-discovery; do not schedule it as a Laravel dependency.
  • Functionally it is build-time tooling (SASS/SCSS compilation), not a request-path runtime component. That materially caps the blast radius of a bad upgrade: CI and local dev break, production traffic does not, unless a pipeline compiles assets during deploy.
  • The 0.3.0 change is a pure naming/identity fix. It aligns the bundle class with Symfony Flex's discovery heuristic (PSR-4 prefix's last segment + Bundle). It adds no capability and removes none.

Integration feasibility

  • On a Flex project the install is now genuinely composer require and done — a real DX improvement over 0.2.0, where Flex silently registered nothing because the heuristic never inspects the vendor prefix. The old ShyimSassoCompiler name was structurally undiscoverable, a leftover Shopware plugin convention (class name matches directory) that stopped being valid at 0.2.0.
  • On non-Flex Shopware projects — still the default posture — the manual config/bundles.php path is unchanged apart from the class string. Feasible, but it means the upgrade is a mandatory hand edit, not a no-op.

Technical risk

  • Hard-fail, not degraded-fail. A missed config/bundles.php edit produces a kernel boot failure on a missing class. This surfaces loudly and immediately, which is preferable to the 0.3.0-predecessor behaviour — a silent no-registration where the package looked installed but did nothing. The direction of travel is good; the upgrade moment is the risk.
  • No compatibility shim. No class_alias, no deprecation layer, no dual-name window. Pre-1.0 semver permits this, but it converts a rename into a mandatory coordinated edit across every consuming bundles.php and any CI image that bakes one in.
  • Version-skew risk in mixed estates. Teams on 0.1.0 must uninstall the Shopware plugin before stepping to 0.2.0/0.3.0; teams on 0.2.0 must rename. Two distinct migration paths, so a blanket "bump to latest" instruction will fail for part of the fleet.
  • Churn signal. Three identity-level releases (plugin → bundle → Flex-recognisable bundle) in the 0.x line indicates the packaging model is still settling. Treat the class name and registration mechanism as unstable until 1.0.

Key questions

  • Which repositories actually have a Symfony kernel — i.e. what is the true consumer count, and how many are Shopware 6 vs. Flex apps? The answer determines whether this is a five-line change or a cross-team coordination.
  • Are any consumers compiling assets at deploy/runtime rather than in CI? Those carry production risk, not just build risk.
  • Is there an UPGRADE.md or automated codemod, or is the diff in the release notes the entire migration guide?
  • What are the declared PHP and Symfony version constraints, and is there a CI matrix covering both Flex and manual registration? The notes are silent.
  • Who maintains this, and what is the bus factor? Naming-only releases at 0.x suggest a single-maintainer cadence.
  • Does the Flex heuristic behave as described across the Symfony versions we run, or is this only validated on recent Flex?

Integration Approach

Stack fit

  • Classify the package as Symfony/Shopware build tooling. In Laravel services it has no integration surface and should not appear in composer manifests. In Shopware 6 services it is a direct fit; in mixed monorepos, scope it to the Symfony app only.
  • Because it is build-time, treat it like a dev-dependency-grade component in change management: version-pin it, but do not route it through production change-advisory gates.

Migration path

  • From 0.2.0 (the common case): single-line edit in config/bundles.php, swapping Shyim\SassoCompiler\ShyimSassoCompiler::class for Shyim\SassoCompiler\SassoCompilerBundle::class. Then run a kernel boot and an asset compile to confirm.
  • From 0.1.0: uninstall the Shopware plugin first, land 0.2.0, verify, then apply the 0.3.0 rename. Do not attempt a direct jump.
  • On Flex projects: no bundles.php edit at all — require the package and confirm auto-registration actually occurred (see verification below), since the predecessor's failure mode was silent.

Compatibility

  • The rename is unconditional and non-backward-compatible. There is no version of config/bundles.php that satisfies both 0.2.0 and 0.3.0 for the bundle entry, so version pinning and config must move together in one commit. Any environment pinned to 0.2.0 must not receive the 0.3.0 config, and vice versa.
  • Audit derived artefacts: container cache, prebuilt CI images, deployment templates, and any scaffolding or starter-kit that hardcodes the old class string.

Sequencing

  1. Inventory consumers and tag each as Flex / non-Flex / 0.1.0-plugin.
  2. Pin all consumers to a known version before touching anything, to freeze the current state.
  3. Roll 0.3.0 to a single low-risk Flex project first as a canary, verifying auto-registration is actually detected rather than assumed.
  4. Roll non-Flex Shopware projects next, config change and composer bump in the same commit, validated by a kernel boot in CI.
  5. Handle 0.1.0-plugin consumers last via the two-step path.
  6. Only after all consumers are on 0.3.0, remove the old class name from internal runbooks and templates.
  7. Confirm the compile output is byte-comparable before/after on at least one project — the release claims naming-only change, so any asset diff is a signal worth investigating.

Operational Impact

Maintenance

  • Low ongoing effort: this is a small, single-purpose bundle, and 0.3.0 is a rename rather than new logic. The maintenance burden is concentrated entirely in the upgrade window.
  • The recurring cost is tracking identity churn in a pre-1.0 package. Budget for at least one more registration-mechanism change before 1.0, and avoid hardcoding the class name anywhere it cannot be updated cheaply.

Support

  • The 0.3.0 notes are unusually good: they explain the heuristic, show the exact diff, and give separate paths for 0.1.0 and 0.2.0. That is a materially better support artefact than a bare changelog and reduces first-line triage load.
  • Residual support risk is upstream: a naming-heuristic dependency means future Flex heuristic changes could re-break discovery with no change on our side. Nothing in the notes indicates this is guarded by tests.

Scaling

  • Scales with CI/build capacity, not request volume — adding application instances does not add compiler load. The relevant scaling axis is the number of repositories and pipeline runs, which is linear and small.
  • No runtime performance, memory, or connection-pool characteristics to assess.

Failure modes

  • Fatal, loud: class-not-found at kernel boot after a partial upgrade. Obvious, fast to diagnose, blocks deploy — the preferred failure shape.
  • Silent, dangerous: pre-0.3.0 Flex auto-registration succeeding at the composer level while registering nothing. Any historical Flex project on 0.2.0 may believe it is compiling when it is not; worth verifying assets are actually being produced rather than assuming.
  • Version skew: composer and bundles.php updated in different commits or environments, producing intermittent boot failures across a fleet.
  • Plugin residue: an unremoved 0.1.0 Shopware plugin coexisting with the 0.3.0 bundle, giving duplicate or conflicting registration.
  • Cache staleness: a stale Symfony container cache masking the config change locally and failing later in a clean environment.

Ramp-up

  • Very shallow for anyone who has touched Symfony bundle registration — one concept (Flex discovery heuristic) and one file. An engineer familiar with Symfony can complete the 0.2.0 → 0.3.0 move in well under an hour, most of it verification.
  • The non-obvious prerequisite is knowing that Shopware projects are not Flex apps by default, so the automatic path does not apply there. Document that distinction explicitly, or engineers will reasonably assume composer require is sufficient and ship a broken boot.
  • Recommended enablement artefact: a one-page runbook with the exact bundles.php diff, the two upgrade paths, and a post-upgrade verification step that proves compilation actually ran — not merely that the kernel booted.
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.
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
adachsoft/api-version-bundle
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox