Astro 7.0.0-beta.6 est sortie le 19 juin 2026, un jour après la beta.5 du 18 juin, et poursuit la série de promotions de fonctionnalités expérimentales longues à stables de la branche 7.0. La principale nouvelle de la beta.6 est que le cache des routes, caché derrière experimental.cache et experimental.routeRules depuis la sortie de 6.0, devient une API stable de premier niveau. La beta.5, la version juste avant, a fait de compressHTML la valeur 'jsx' par défaut, ce qui modifie le HTML rendu de tout projet qui s'appuyait sur la préservation des espaces entre éléments inline. Ces deux changements s'ajoutent à la stabilisation en beta.4 de Sätteri comme pipeline Markdown par défaut, couverte dans les notes de sortie d'Astro 7.0.0-beta.4 plus tôt dans le cycle.
La branche 7.0 avance rapidement vers la stable. La beta.4 (15 juin), la beta.5 (18 juin), la beta.6 (19 juin), et deux alphas avant elles ont promu presque toutes les API expérimentales que 6.x livrait derrière un drapeau, basculé sur un Markdown natif Rust, basculé la gestion d'espaces par défaut sur le style JSX, et stabilisé maintenant le cache des routes. Le coût de migration pour tout projet en 6.x est réel mais mécanique : un renommage de configuration, un audit des espaces, et une vérification que votre fournisseur de cache personnalisé fait partie des options de premier niveau prises en charge.
Le cache des routes devient stable
Le cache des routes était le dernier grand bloc experimental restant de 6.0. La beta.6 le promeut en configuration de premier niveau. La migration tient en un renommage plus un choix de fournisseur :
// astro.config.mjs
import { defineConfig, memoryCache } from 'astro/config';
export default defineConfig({
cache: {
provider: memoryCache(),
},
routeRules: {
'/blog/[...path]': { maxAge: 300, swr: 60 },
},
});
Dans les pages .astro, vous définissez les directives avec Astro.cache, et dans les routes API et le middleware vous utilisez context.cache. Astro traduit ces directives en en-têtes adaptés au fournisseur configuré ou en comportement d'exécution, de sorte que la même configuration fonctionne avec memoryCache, fsCache, cloudflareKV, vercelISR, et les autres fournisseurs livrés avec la branche 7.0. La matrice complète des fournisseurs est documentée dans le guide du cache des routes qui accompagne la sortie.
Pour les pages pré-rendues, les règles s'appliquent toujours au build : les directives sont encodées dans les en-têtes Cache-Control du HTML statique, ce qui signifie qu'un CDN devant votre site respectera le même maxAge et swr que vous auriez utilisé pour une page rendue à la demande. C'est la partie la plus subtile du changement pour les projets qui avaient déjà un CDN devant une sortie pré-rendue : la même configuration routeRules contrôle désormais à la fois le cache d'exécution à la demande et les en-têtes de cache des assets statiques.
« jsx » devient la valeur par défaut de compressHTML
La beta.5 a fait de 'jsx' la nouvelle valeur par défaut de l'option compressHTML. C'est le même mode de suppression d'espaces qu'utilisent React, Solid, Preact et les autres frameworks basés sur JSX : les espaces autour des éléments sont supprimés, et une ligne significative d'espace entre deux éléments inline est préservée.
La différence compte en pratique. Dans l'ancien mode de compression HTML-aware (l'ancien défaut compressHTML: true), Astro conservait un espace unique entre deux éléments inline quand il y avait un retour à la ligne littéral dans la source. Dans le nouveau défaut 'jsx', ce retour à la ligne est supprimé, ce qui signifie qu'un template comme :
<p>
Bonjour <span>monde</span>
</p>
est rendu comme avant, mais un template comme :
<p>
Cliquez
<a href="/x">ici</a>
pour en savoir plus
</p>
est désormais rendu sans le saut de ligne entre « Cliquez », le lien, et « pour en savoir plus ». Partout où vous voulez réellement que cet espace soit visible, écrivez-le explicitement avec {' '}.
Pour les projets qui ont besoin de conserver l'ancien comportement le temps d'auditer, la migration tient en une ligne :
// astro.config.mjs
export default defineConfig({
compressHTML: true, // compression HTML-aware, le défaut 6.x
});
Réglez compressHTML: false pour désactiver complètement la compression, ou compressHTML: 'jsx' pour conserver explicitement la nouvelle valeur par défaut. La beta.5 corrige aussi un ensemble de bugs de routage avancé astro/hono et astro/fetch qui s'accumulaient dans le cycle 7.0, dont un où la page 500.astro personnalisée recevait une prop error vide quand l'erreur provenait du middleware.
La vue d'ensemble de la 7.0
Entre la beta.4 et la beta.6, la branche 7.0 a désormais stabilisé ou remplacé presque toutes les fonctionnalités expérimentales que 6.x livrait derrière un drapeau. Sätteri (Markdown natif Rust) est la valeur par défaut, le routage avancé avec Hono est stable, le logger personnalisé est stable, le moteur de rendu en streaming est stable, la compression d'espaces JSX est la valeur par défaut, et le cache des routes est désormais stable au premier niveau. Le travail restant sur la 7.0 avant la stable tient surtout dans le polissage de l'outillage de build, la graduation finale de @astrojs/markdown-satteri, et le support de Vite 8 arrivé au cours du cycle alpha et beta.
Que faire maintenant
Pour les projets en 6.x : passez au dernier patch 6.x et commencez la migration de configuration tôt. Sortez cache et routeRules du bloc experimental, choisissez votre fournisseur, et exécutez la beta.6 contre une branche de staging. Auditez vos templates pour le changement d'espaces : partout où vous comptez sur un retour à la ligne entre deux éléments inline produisant un espace visible, basculez sur {' '} ou retombez sur compressHTML: true le temps de l'audit. La liste complète des ruptures de la branche 7.0 est dans le CHANGELOG du dépôt withastro/astro. Gardez la production sur la branche 6.x et traitez la beta.6 comme la cible de validation.



