From 8b25c5c62cfdf42ead41eb2777b5f60a3f0d911e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jozef=20M=C3=B4stka?= Date: Wed, 19 Aug 2026 13:52:32 +0200 Subject: [PATCH] Add tito10047/progressive-image-bundle 2.0 (#2027) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 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 produces a working 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 --- .../config/packages/progressive_image.yaml | 40 +++++++++++++++++++ .../2.0/config/routes/progressive_image.yaml | 2 + .../2.0/manifest.json | 23 +++++++++++ .../2.0/post-install.txt | 12 ++++++ 4 files changed, 77 insertions(+) create mode 100644 tito10047/progressive-image-bundle/2.0/config/packages/progressive_image.yaml create mode 100644 tito10047/progressive-image-bundle/2.0/config/routes/progressive_image.yaml create mode 100644 tito10047/progressive-image-bundle/2.0/manifest.json create mode 100644 tito10047/progressive-image-bundle/2.0/post-install.txt diff --git a/tito10047/progressive-image-bundle/2.0/config/packages/progressive_image.yaml b/tito10047/progressive-image-bundle/2.0/config/packages/progressive_image.yaml new file mode 100644 index 00000000..ff8c50eb --- /dev/null +++ b/tito10047/progressive-image-bundle/2.0/config/packages/progressive_image.yaml @@ -0,0 +1,40 @@ +# Documentation: https://pgi.blue/guide/getting-started +progressive_image: + resolvers: + default: + type: chain + # If your project does NOT use Symfony UX AssetMapper (e.g. Webpack Encore), + # remove "asset_mapper_resolver" below and from this chain. + resolvers: ['asset_mapper_resolver', 'filesystem_resolver'] + asset_mapper_resolver: + type: asset_mapper + filesystem_resolver: + type: filesystem + roots: ['%kernel.project_dir%/public'] + allowUnresolvable: true + + responsive_strategy: + grid: + framework: tailwind # or bootstrap, or custom + ratios: + landscape: '16/9' + portrait: '3/4' + square: '1/1' + + generation: + # Switch to "async" once you've wired up a Messenger transport for it. + strategy: sync + + variant_store: + storage: progressive_image.variant_storage + +services: + progressive_image.variant_storage.adapter: + class: League\Flysystem\Local\LocalFilesystemAdapter + arguments: + - '%kernel.project_dir%/public/media/pgi' + + progressive_image.variant_storage: + class: League\Flysystem\Filesystem + arguments: + - '@progressive_image.variant_storage.adapter' diff --git a/tito10047/progressive-image-bundle/2.0/config/routes/progressive_image.yaml b/tito10047/progressive-image-bundle/2.0/config/routes/progressive_image.yaml new file mode 100644 index 00000000..a0e04459 --- /dev/null +++ b/tito10047/progressive-image-bundle/2.0/config/routes/progressive_image.yaml @@ -0,0 +1,2 @@ +progressive_image: + resource: "@ProgressiveImageBundle/config/routes.php" diff --git a/tito10047/progressive-image-bundle/2.0/manifest.json b/tito10047/progressive-image-bundle/2.0/manifest.json new file mode 100644 index 00000000..79758c4d --- /dev/null +++ b/tito10047/progressive-image-bundle/2.0/manifest.json @@ -0,0 +1,23 @@ +{ + "bundles": { + "Tito10047\\ProgressiveImageBundle\\ProgressiveImageBundle": ["all"] + }, + "copy-from-recipe": { + "config/": "%CONFIG_DIR%/" + }, + "gitignore": [ + "/%PUBLIC_DIR%/media/pgi/" + ], + "composer-scripts": { + "progressive-image:generate-custom-css": "symfony-cmd" + }, + "add-lines": [ + { + "file": "assets/app.js", + "content": "import './styles/progressive-image-custom.css';", + "position": "after_target", + "target": "import './styles/app.css';", + "warn_if_missing": true + } + ] +} diff --git a/tito10047/progressive-image-bundle/2.0/post-install.txt b/tito10047/progressive-image-bundle/2.0/post-install.txt new file mode 100644 index 00000000..49bd44f1 --- /dev/null +++ b/tito10047/progressive-image-bundle/2.0/post-install.txt @@ -0,0 +1,12 @@ + Progressive Image Bundle is ready to use. + - The responsive breakpoint stylesheet was generated and imported into + assets/app.js automatically. Re-run + bin/console progressive-image:generate-custom-css whenever you + change responsive_strategy. + - Render your first image: + + - If your project does not use Symfony UX AssetMapper (e.g. Webpack + Encore), remove asset_mapper_resolver from + %CONFIG_DIR%/packages/progressive_image.yaml and from the + default resolver chain. + - Full docs: https://pgi.blue/guide/getting-started