Biome 2.5 livre `@biomejs/js-api` v6.0.0 : un bump majeur pour l'API JS

Biome 2.5 livre `@biomejs/js-api` v6.0.0 : un bump majeur pour l'API JS

lschvn

Biome a livré deux releases coordonnées le 12 juin 2026 : Biome CLI v2.5.0 et @biomejs/js-api v6.0.0. Le gros titre est le premier bump majeur de l'API JavaScript depuis que le projet a séparé les packages WASM de la CLI. Le bump CLI est essentiellement un alignement WASM, avec une longue liste de petites features par-dessus.

Le gros titre js-api v6.0.0

Le bump majeur est centré sur un seul nouvel export : spanInBytesToSpanInCodeUnits(diagnostic.location.span, content). Les diagnostics de Biome portent des offsets en octets UTF-8 parce que c'est ainsi que l'analyseur indexe la source en interne. Les strings JavaScript sont en UTF-16, donc tout code qui prenait un diagnostic Biome et appelait content.slice(spanStart, spanEnd) sur la string originale obtenait le mauvais texte sur tout contenu non-ASCII : emoji, caractères accentués, CJK. La frontière de slice atterrissait au milieu d'une code unit, renvoyait undefined pour le surrogate final, et corrompait silencieusement l'extrait.

Le nouveau helper convertit des spans en octets vers des spans en code units UTF-16, y compris les edge cases de surrogate pairs et surrogates non appariés. C'est le genre de fix qui justifie à lui seul un bump de version majeure, et Biome a saisi l'occasion pour bumper les packages WASM : @biomejs/wasm-web, @biomejs/wasm-bundler, et @biomejs/wasm-nodejs se pinent tous sur 2.5.0 pour s'aligner sur la CLI.

SCSS, JSON, linter, et CLI

La release 2.5.0 couvre une longue liste de features incrémentales. Côté parser, le support SCSS est significativement étendu : noms qualifiés dans les valeurs et appels de fonction, parsing d'expressions unaires, déclarations imbriquées dans les listes de déclarations, déclarations dans les blocs @page, et délimiteurs dans les listes de valeurs entre crochets. JSON obtient une nouvelle règle useSortedPackageJson. Le linter embarque deux nouvelles règles cross-language, une nouvelle option includes pour le scoping de fichiers de plugin, une option ignore pour no-unused-variables, et un changement de noUndeclaredClasses qui collecte maintenant les styles locaux et globaux. organizeImports ajoute une option sortBareImports.

La CLI obtient un logo Biome en art ANSI au démarrage et un nouveau reporter concis. biome_service gagne le support des réécritures de plugins GritQL via le flag --write standard, ce qui est la pièce manquante pour livrer une règle de refactor custom qui passe par le même pipeline que le linter et le formatter.

L'analyseur HTML continue de grandir. À partir de 2.5, il inclut noRedundantRoles, useKeyWithMouseEvents, et useAriaActivedescendantWithTabindex (le port de noRedundantRoles a été annulé puis re-validé après un fix, d'où sa double présence dans le changelog).

Pourquoi le bump majeur compte

Pour les utilisateurs qui consomment Biome comme CLI ou via des intégrations éditeur, 2.5.0 est un upgrade de routine. L'histoire intéressante est pour les projets qui embarquent @biomejs/js-api directement : le helper est la première pièce d'un effort plus large pour rendre l'API sûre à utiliser sur du code source non-ASCII, et le bump majeur signale que le projet traite la surface publique comme un contrat stable.

Ce positionnement rapproche Biome de la place qu'occupe Oxc avec la toolchain Rust : une toolchain JavaScript backed par Rust, avec une API programmatique pour l'embarquer. Les deux projets prennent des positions différentes sur le spectre (Biome bundle linter, formatter et organizeur d'imports dans un binaire unique, Oxc sépare cela en crates distinctes), mais les deux sont désormais assez matures pour que l'embarquement programmatique soit un cas d'usage de première classe. Pour les équipes qui faisaient passer l'API précédente par un contournement UTF-8 vers UTF-16, 6.0.0 est l'upgrade qui rend le contournement superflu.

Questions fréquentes

Articles connexes

Plus de couverture avec des sujets et tags en commun.

Prettier 3.9 refond cinq parseurs : micromark pour Markdown, yaml v2, GraphQL.js v17, un parseur Flow en Rust et Angular
tooling

Prettier 3.9 refond cinq parseurs : micromark pour Markdown, yaml v2, GraphQL.js v17, un parseur Flow en Rust et Angular

Prettier 3.9.0, publié le 27 juin 2026 (prettier/prettier, billet de Fisker Cheung), est une release centrée sur les parseurs qui fait passer Markdown de remark-parse v8 à micromark v4 (meilleure conformité CommonMark et GFM et une série de bugs de parsing de longue date corrigés), YAML à yaml v2, GraphQL à GraphQL.js v17 (arguments de fragment et directives sur les définitions de directive), Flow au nouveau parseur oxidized basé sur Rust de l'équipe Flow (environ 37 % plus rapide sur les fixtures Flow valides de Prettier et 43 % plus rapide sur flow_parser.js en benchmarks parser-only locaux) et Angular. Le formateur JavaScript et TypeScript est aussi retravaillé, en particulier en mode --no-semi où les commentaires autour de break et continue sont maintenant stables entre plusieurs passages (un fix d'idempotence), plus la suppression des parenthèses redondantes dans les return, l'alignement des interpolations de template embarquées et l'inlining des expressions de négation logique. La release retire la syntaxe legacy import ... assert {} (Babel 8 a supprimé le plugin de parseur ; migrez vers with), corrige une option --cache-strategy content silencieusement cassée et empêche les fichiers EditorConfig au-dessus des worktrees Git de s'infiltrer. L'équipe rappelle d'épingler la version exacte dans package.json car les changements de formatage vont produire des diffs.
Vite+ : Une CLI pour tout unifier, Ou juste une couche de plus de battage ?
tooling

Vite+ : Une CLI pour tout unifier, Ou juste une couche de plus de battage ?

Vite+ de VoidZero promet d'unifier runtime, gestionnaire de paquets, bundler, linter, formateur et runner de tests sous une seule commande. Nous avons lu les annonces, benchmarké les affirmations et parlé à des personnes l'utilisant en production.
Turborepo 2.10.3 Reconnaît nub et aube, Deux Nouveaux Gestionnaires de Paquets Node.js en Rust par Colin McDonnell (Zod) et Jeff Dickey (mise)
tooling

Turborepo 2.10.3 Reconnaît nub et aube, Deux Nouveaux Gestionnaires de Paquets Node.js en Rust par Colin McDonnell (Zod) et Jeff Dickey (mise)

Turborepo [v2.10.3](https://github.com/vercel/turborepo/releases/tag/v2.10.3) est sorti le 2026-07-03 avec un support de première classe pour [nub](https://github.com/nubjs/nub) et [aube](https://github.com/jdx/aube), deux gestionnaires de paquets Node.js écrits en Rust qui ont émergé au printemps et à l'été 2026. nub est écrit par Colin McDonnell (créateur de [Zod](https://github.com/colinhacks/zod), 43k étoiles) et aube par Jeff Dickey (créateur de [mise](https://github.com/jdx/mise)); les deux s'intègrent à Turborepo comme valeurs `packageManager` dans `package.json` et `devEngines.packageManager`. La release apporte aussi un nouveau toggle TUI/logs-streamés, la sélection de tâches au clic dans la liste de tâches TUI, la copie automatique des sélections TUI au presse-papiers à la souris, un flag `--production` sur `turbo prune`, TypeScript 7.0.1-rc comme toolchain de workspace, thin LTO + `codegen-units=1` pour les builds de release, et une longue liste de corrections de perf sur le cache-hashing. Le signal principal: deux des builders les plus respectés du toolchain JS livrent désormais des gestionnaires de paquets qui s'appuient sur Node stock au lieu de le remplacer, et Turborepo est le premier outil de monorepo mainstream à formaliser les deux.

Commentaires

Connexion Connectez-vous pour participer à la conversation.

Pas encore de commentaires. Soyez le premier à partager vos pensées.