Anunciando Dart 3.11

¡Hola, desarrolladores de Dart! La última versión estable, Dart 3.11, ya está disponible oficialmente.

Este release se enfoca fuertemente en mejoras de capacidad de respuesta y herramientas que notarás en tu flujo de trabajo diario. Desde un servidor de análisis más inteligente hasta nuevas capacidades del cliente pub y soporte de IA mejorado, Dart 3.11 está construido para mantenerte en flujo. Sigue leyendo para aprender más.

Banner del release de Dart 3.11 con el logo de Dart y un ícono de diana.
Anunciando Dart 3.11

Actualizaciones del lenguaje

#

No hay nuevas actualizaciones del lenguaje en este release de Dart.

Actualizaciones de herramientas

#

Soporte MCP de Dart e IA: URI de paquete

#

Estamos continuando mejorando el Servidor MCP de Dart y Flutter para soportar mejor a los asistentes de programación con IA.

Hemos añadido una nueva herramienta llamada read_package_uris al servidor MCP. Esta herramienta permite a los agentes de IA (como Cursor, Gemini o Copilot) leer URIs de paquetes desde tus proyectos y añadirlos a su contexto. Esto asegura que tu asistente de IA pueda leer, resolver y utilizar correctamente las dependencias al generar código.

Servidor de análisis

#

Este release incluye numerosas mejoras de rendimiento en el servidor de análisis de Dart. El servidor ahora usa "dependencias de grano fino" haciéndolo más inteligente al decidir qué código necesita ser re-analizado durante las sesiones de IDE.

También hemos mejorado el rendimiento del análisis en situaciones específicas, como analizar código con ciclos en la estructura de directorios causados por symlinks, o árboles profundos de muchos objetos constantes.

El servidor ahora almacena en caché los entry points compilados de los plugins del analyzer, resultando en un tiempo de inicio más rápido en sesiones de IDE y en los comandos dart analyze y flutter analyze.

Finalmente, hemos mejorado el soporte de "dot shorthands" a través de muchas características del servidor de análisis, especialmente completado de código, quick fixes y quick assists.

Actualizaciones de Pub

#

Soporte de globs en pub workspaces

#

Los Pub workspaces ahora soportan declarar paquetes usando globs. Esto te permite incluir fácilmente todos los paquetes en un directorio en el pub workspace sin enumerarlos todos:

yaml
# Before
name: workspace
environment:
 sdk: ^3.10.0
workspace:
 - pkg/a
 - pkg/b
 - pkg/c

# After
name: workspace
environment:
 sdk: ^3.11.0
workspace:
 - pkg/* # Adds all packages inside pkg.

Nota: Para usar esta característica, tu pubspec.yaml debe tener una versión de Dart 3.11 o superior.

Pub cache gc

#

Pub siempre ha almacenado los paquetes en un único PUB_CACHE global, asegurando que nunca descargues el mismo paquete dos veces. Sin embargo, como Pub no rastreaba qué proyectos usaban la caché, no había forma de saber qué paquetes estaban desactualizados, haciendo que las versiones de paquetes se acumularan con el tiempo. Hasta ahora, la única solución era borrar toda la caché y empezar de nuevo.

A partir de Dart 3.9, pub get ha estado almacenando la ruta al proyecto resuelto dentro de la caché. Ahora en Dart 3.11, introducimos el comando pub cache gc que itera sobre todos los proyectos "vivos", marca todas las versiones de paquetes de las que dependen, y elimina el resto. Esto puede ayudarte a reclamar valioso espacio en disco.

bash
> dart pub cache gc
Found 3 active projects:
* /home/yourusername/projects/pub
* /home/yourusername/projects/pub-dev
* /home/yourusername/projects/pana
All other projects will need to run `dart pub get` again to work correctly.
Will recover 2 GB.
Are you sure you want to continue? (y/N)? y
Deleting unused cache entries... (4.5s)
>

Conclusión

#

¡Eso es todo para Dart 3.11! Este release se trata de los detalles que hacen la diferencia en tu desarrollo día a día.

Para una lista completa de cambios, consulta el changelog del Dart SDK. Como siempre, ¡nos encantaría escuchar tus comentarios!

Más de Dart