* Fix odiseoteam/sylius-rbac-plugin admin route prefix
The recipe hardcoded prefix: /admin, so on any install that customizes
SYLIUS_ADMIN_ROUTING_PATH_NAME the plugin's own admin routes land outside
sylius.security.admin_regex and are unreachable through the admin firewall.
Use the same parameterized prefix Sylius' own admin routes use.
Also trims the post-install note: the AdminUser snippet and the migration
command are already covered by the linked installation guide.
* Trigger CI
* Add PHP and Symfony framework requirements to manifest.json
* Refactor manifest.json to remove PHP and Symfony framework requirements
* Remove Symfony version requirements from manifest.json
* Add recipe version 4.0 for outcomer/symfony-json-schema-validation
Adds auto_cast_query and auto_cast_path options to the default
outcomer_validation.yaml config, matching the bundle's 4.0 release.
* Use the new schemas (path/domain pairs) option in the 4.0 recipe
schemas_path/schema_domain are deprecated in favor of schemas as of
bundle 4.0.
* Fix YAML indentation to be a multiple of 4 spaces
The CI lint requires every indentation level to be a multiple of 4
spaces; the list item's inline "path:" key broke that rule.
* Add recipe for mosl/opensign-bridge-bundle (0.6)
* Trigger CI: PR body now includes the required License MIT header
---------
Co-authored-by: Yaovi <y.ametepe@gmail.com>
symfony/mcp-bundle 0.13 replaced the single implicit server with named servers
under `mcp.servers`. sulu/mcp-bundle prepends one called `sulu`, so the
`allowed_hosts` this recipe writes moves under `mcp.servers.sulu.http`.
* Add recipe for sulu/mcp-bundle 1.0
* Move the allowed hosts out of the recipe into its output
The released sulu/mcp-bundle 1.0.0-RC1 requires symfony/mcp-bundle ^0.6,
where mcp.http.allowed_hosts does not exist yet: it was added in 0.11.
Shipping the option as config broke cache:clear on every install.
* Contribute the allowed hosts and the default OAuth scopes
sulu/mcp-bundle 1.0.0-RC2 requires symfony/mcp-bundle ^0.12, so
mcp.http.allowed_hosts exists and the transport can be told its public
host. league requires scopes.default and the bundle leaves it to the
project, so the recipe contributes the two MCP scopes.
Both sections live in sulu_mcp.yaml rather than in the files those
bundles own, because Symfony merges configuration per extension.
---------
Co-authored-by: Johannes Wachter <wachter.johannes@gmail.com>
* Improve JanePHP recipes first-run experience
Recipes pointed the generator configs to specification files they never
created, hid all generator output behind a NullOutput (so failures showed
up as raw PHP fatals and successes printed nothing) and always exited 0,
even when generation failed.
- document every config key and the spec file prerequisite in
config/jane/*.php
- render generator output, format thrown errors and propagate exit codes
in the recipe bin scripts
- reorder post-install steps: placing the specification file now comes
before running the generator
- explain when/how to uncomment the generated normalizer service in
config/packages/jane.yaml
Refs: https://github.com/janephp/janephp/issues/860
* Point recipes to the current documentation website
jane.readthedocs.io is outdated, jane.jolicode.com/latest/ is the
current documentation home.
* Re-trigger QA after adding the license header to the PR description
Follow-up to the review feedback on #2026: env-scoped config/*/dev/
directories are the outdated approach. Both files move to flat paths
guarded by a when@dev: block.
The packages file is guarded too rather than left bare — the bundle is
registered for dev only, so an unguarded zestly_dev_login: root key in
config/packages/ has no extension to load it in prod and would break
cache warmup.
Claude-Session: https://claude.ai/code/session_01FtiTUbCskmCiy9k78vCL19
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
* Add tito10047/progressive-image-bundle 2.0
Registers the bundle, its route, and a working default config (a chain
resolver with an AssetMapper + filesystem fallback, tailwind grid
breakpoints, sync generation, and a self-contained local Flysystem
variant store — no extra dependency required). The responsive
breakpoint stylesheet is generated and imported into assets/app.js
automatically via a post-install script, so the bundle renders
correctly right after "composer require" with zero manual config.
Verified end-to-end against a sandboxed copy of a real AssetMapper app:
uninstall -> reinstall -> render <twig:pgi:Image> produces a working
<picture> element with real generated variant files on disk.
* Fix recipes-contrib QA failures for tito10047/progressive-image-bundle 2.0
- add-lines only supports "top", "bottom", "after_target" as a position
value — "before_target" isn't valid. Insertion order relative to the
app.css import doesn't matter functionally, so switch to after_target.
- post-install.txt was missing its trailing newline.
* Retrigger CI: tito10047/progressive-image-bundle main/v2.0 branches now include the AssetMapper prepend() fix
* Retrigger CI: asset_mapper resolver fix is live on main/v2.0 (progressive-image-bundle)
* Retrigger CI: 2.0.0-rc0 (pre-fix) tag deleted, only 2.0.0-rc1 remains
Registers the bundle and imports the shop routes, which expose the page the customer returns to from the bank-hosted payment page. Without that import the return URL cannot be built and the payment fails before it even leaves.
No config/packages: both configuration keys of the plugin have real defaults.
No add-lines either, the plugin ships no JavaScript. The two remaining steps cannot be automated and are recalled by post-install.txt: generating the Sylius payment encryption key, and declaring the trusted proxies, x-forwarded-host included, without which the URLs handed to the bank are unreachable.
* Add recipe for sylius/admin-mcp-server-plugin 0.1
* Remove league_oauth2_server.yaml from recipe — plugin already imports it via config.yaml
* Add OAuth keypair env vars to manifest.json
* adds leoparden/plugin-license-manager
* Remove aliases from manifest.json
* Add leoparden/plugin-license-manager 1.3 recipe
Runs leoparden:license:sync via auto-scripts so newly required Leoparden
extensions are reported to the license hub. Scoped to 1.3 because the command
ships from plugin-license-manager v1.3.0.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Martin Flogaus <flogaus@leoparden.net>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Registers TreblleBundle, copies a minimal treblle.yaml config pointing
at TREBLLE_SDK_TOKEN and TREBLLE_API_KEY env vars, and injects those
two variables into .env on install.
* Add letkode/form-schema-bundle recipe
* fix: indentation and null values in letkode/form-schema-bundle recipe
- Use 4-space indentation in manifest.json
- Add trailing newline to manifest.json
- Replace ~ with null in letkode_form_schema.yaml