Document silverback:api-components:imagine:generate (pre-generating imagine variants)
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 78/100
- Tipo de issue
- Documentación
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- kubernetes, php
- Área
- documentation
Línea de trabajo
Empieza en la sección uploads / imagine dentro de content/4.api/ y documenta, según los detalles del issue, el comando, sus opciones, la salida y el flujo de trabajo posterior al despliegue. Explica cuándo ejecutarlo, su seguridad y su comportamiento al terminar, así como el paso para purgar la caché HTTP. La tarea estará terminada cuando la página describa con precisión el comando y el flujo de trabajo indicados.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
The API bundle adds a console command to generate missing imagine variants ahead of requests: components-web-app/api-components-bundle#416 (issue components-web-app/api-components-bundle#413).
Please document it in the bundle's uploads / imagine section (content/4.api/).
What to document
Why it exists. When an app adds an imagine filter to an existing field, every existing image needs a new variant. Without this command, each variant is generated the first time the API serialises a resource holding the image, inside a visitor's request. A page with many images then generates many variants in one request, within the web pod's memory limit. A variant skipped over the memory budget is retried on every request.
The command.
bin/console silverback:api-components:imagine:generate [--filter=<filter> ...] [--class=<FQCN> ...] [--dry-run] [-v]
- Walks every uploadable entity and field, drafts included. A field's filters are its
UploadableFieldimagineFiltersplus, for an entity implementingImagineFiltersInterface,getImagineFilters($property, null). Only raster images are processed (SVG and non-images are left out). - Generates, one at a time, each variant that is not stored yet, and saves its file info. Originals and stored variants are not touched, so it is safe to re-run after an interruption: a second run generates nothing.
--filter(repeatable) only generates those filters; a name that is not a configured LiipImagine filter set exits 2 before anything runs.--class(repeatable) only walks that uploadable class or its subclasses; a class that is not uploadable exits 2.- Variants are written with the field's
imagineCacheControl(from#[UploadableField]), falling back tosilverback_api_components.uploadable.cache_control.imagine, exactly as variants generated during a request. --dry-runcounts what is missing and generates nothing.- Output: counts of generated, already stored, skipped over the memory budget, failed, and original missing (a dry run prints "To generate" instead of "Generated").
-vlists each variant. - Exit code 1 if any variant failed, so a Kubernetes Job shows as failed. Variants skipped over the memory budget, and originals whose file is missing, are reported but exit 0.
- It uses the same memory budget as request-time generation (
silverback_api_components.imagine.memory_limit), and a CLI withmemory_limit=-1is never checked. A variant over the budget is logged and skipped. - Only registered when LiipImagineBundle is enabled.
How to run it after a deploy that adds a filter.
- Run the command as a one-off Kubernetes Job from the API (php) image, so the image processing stays out of the web pods. Optionally run
--dry-runfirst to see how many variants are missing. - Then purge the HTTP cache (
bin/console silverback:api-components:purge-http-cache, orPOST /_/http_cache/purge), so cached API responses and pages list the new variants.
- Lenguaje dominante
- Vue
- Estrellas
- 0
- Forks
- 0
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de components-web-app/docs
-
documentation
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
components-web-app/docs#234 ·
-
Document opening the add page data form with defaults (?parentPage, ?parentPageData, ?template)Abiertodocumentation
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
components-web-app/docs#230 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
components-web-app/docs#228 · 1 comentario ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
components-web-app/docs#227 ·
-
CI/CD: deploys run a pinned image promoted to :staging / :canary / :production (template #164)Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
components-web-app/docs#235 ·
Todos los issues de components-web-app/docs
Issues similares
-
documentation
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
andromarces/agent-loops#886 ·
Los mantenedores suelen responder en 1 día
-
anchor Docs good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
dark-princezz/stellar-hooks#985 ·
Los mantenedores suelen responder en 1 día
-
area/ui-parity good first issue type/docs
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
cristim/AztecCraft#85 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
good first issue
Dificultad 2/5 Menos de una hora Aptitud para principiantes 82/100
eli-alvarado/us-watchlist-alerts#14 ·
Los mantenedores suelen responder en 1 día
-
configuration documentation from-review-extraction severity:nit
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
LearningCircuit/local-deep-research#7460 ·
Los mantenedores suelen responder en 2 días