Publicada el 13 de octubre, la versión 13.36.0 de Laravel reúne alrededor de cincuenta cambios
centrados en las colas, el almacenamiento y Eloquent. No se anuncia ninguna ruptura de
compatibilidad, pero varias correcciones afectan comportamientos reportados en producción desde
hace meses, en particular los workers de cola que quedaban bloqueados sin un código de salida que
los orquestadores pudieran aprovechar.
Workers de cola más predecibles
La corrección más esperada afecta al código de salida de los workers que agotan su tiempo de
ejecución: antes se descartaba en silencio, lo que impedía que Supervisor o systemd detectaran un
worker bloqueado y lo reiniciaran. Los workers también pueden vaciar ahora sus conexiones
persistentes entre dos tareas en lugar de mantenerlas abiertas hasta que el proceso se detiene,
lo que limita las fugas de conexiones en colas de alto volumen.
Almacenamiento S3 y proveedores de credenciales con nombre
El driver de S3 admite ahora varios proveedores de credenciales con nombre dentro de un mismo
proyecto, útil para aplicaciones que escriben en varias cuentas o regiones, además de discos IAM
para entornos Cloud donde la rotación de claves se gestiona fuera del código. Este cambio se suma
a una tendencia de fondo del framework: delegar cada vez más la gestión de secretos a la
infraestructura en lugar del archivo .env.
Eloquent: correcciones puntuales pero numerosas
La corrección más estructural afecta a la resolución de alias de morph map en
constrain(), morphWith() y loadMorph(): los alias
declarados no siempre se respetaban, obligando a algunos proyectos a usar el nombre completo de
la clase como solución alternativa. touch() funciona ahora correctamente en las
relaciones HasOneOrManyThrough, y Schema::getColumn() deja de distinguir
mayúsculas y minúsculas, lo que evita falsos negativos en ciertos motores de base de datos.
| Área | Antes de 13.36.0 | Desde 13.36.0 |
|---|---|---|
| Workers bloqueados | Código de salida descartado, sin detección | Código de salida útil para el orquestador |
| Conexiones persistentes | Mantenidas hasta detener el worker | Vaciadas entre tareas |
| Credenciales S3 | Un único proveedor por defecto | Varios proveedores con nombre + discos IAM |
| Clúster Redis | Cliente phpredis bloqueado sin nodo disponible | Cliente reconstruido automáticamente |
| Tests (Prompts) | Fuga de memoria en suites largas | Fuga corregida |
Redis, notificaciones y una fuga de memoria en los tests
En el lado de Redis, el cliente phpredis se reconstruye ahora automáticamente cuando ningún
nodo del clúster está disponible, en lugar de quedar bloqueado. Las notificaciones corrigen un
defecto por el cual Notification::locale() podía aplicarse a una notificación
siguiente sin relación. Por último, una fuga de memoria provocada por el componente Prompts
afectaba a las suites de tests largas, un problema que algunos equipos evitaban dividiendo sus
pipelines de CI, un paliativo que ya no es necesario.
// config/queue.php — novedad 13.36: conexión por defecto en segundo plano
'connections' => [
'redis' => [
'driver' => 'redis',
'connection' => 'default',
'queue' => env('REDIS_QUEUE', 'default'),
'retry_after' => 90,
'block_for' => null,
'after_commit' => false,
],
],
El código de salida de los workers de cola, durante mucho tiempo invisible para las herramientas de supervisión, por fin resulta útil para los orquestadores.
Las correcciones de Eloquent sobre los alias de morph map merecen una revisión
manual en los proyectos que usan enforceMorphMap(): el comportamiento cambia, aunque
se acerca a lo que la documentación ya describía.
La actualización sigue siendo menor en términos estrictos de versionado, pero el volumen de
correcciones, unas cincuenta pull requests fusionadas en un mes, ilustra un ritmo de publicación
que los equipos que automatizan sus actualizaciones mediante herramientas de línea de comandos
tienen todo el interés en seguir de cerca en lugar de dejar que se acumule.
Lo que hay que recordar
Laravel 13.36.0 no cambia nada en la API pública del framework, pero cierra puntos ciegos
operativos reales: supervisión de workers, rotación de credenciales S3 y estabilidad del cliente
Redis en clúster. Los proyectos con colas de alto volumen deberían actualizar sin demora; el resto
puede esperar a su próxima ventana de mantenimiento sin urgencia.
En los proyectos donde superviso colas de Laravel en producción, el código de salida descartado
de los workers bloqueados ha sido una fuente de incidentes silenciosos durante meses: el worker
fallaba, Supervisor no lo reiniciaba, y solo una alerta de latencia permitía darse cuenta. Esta
corrección, por sí sola, justifica la actualización. — Simon Janvier
Para profundizar: las notas de la versión completas están disponibles en
el repositorio GitHub del framework.
