Vize

Stabilité

Vize se dirige vers une version alpha v1. Le contrat alpha est intentionnellement plus étroit qu’un contrat v1 stable : il nomme les surfaces qui devraient être utilisables par les premiers adopteurs, tout en laissant la place pour modifier rapidement les internes et les intégrations expérimentales. Le projet complet n’est pas encore une chaîne d’outils entièrement prête pour la production ; Les décisions de publication doivent utiliser les production-readiness checklist. fenêtres de dépréciation, règles SemVer et support des lignes de sortie sont précisés dans le support policy.

Contrat de gestion de versions

Avant la version 1 stable, toute pré-version peut inclure des changements cassants. Vize considère toujours les changements interrompus comme matériel de release-note, surtout lorsqu’ils affectent les points d’entrée de paquets, les drapeaux CLI, les champs de configuration les codes de diagnostic ou les sorties générées.

La ligne alpha v1 utilise ces règles :

Surface Attente alpha
Noms de paquets publiés Elles doivent rester disponibles ou être expédiées avec des notes de migration
Commandes et drapeaux CLI documentés Il faut éviter les changements de comportement silencieux
Champs de configuration documentés Cela devrait garder les noms et les formes de valeur stables, sauf si les notes de publication annoncent un changement
Codes de diagnostic indiqués dans la documentation Elles devraient rester reconnaissables pour que les suppressions et les rapports de correction restent utiles
API Rust crate publiées Suivez le contrat de dépréciation par caisse ci-dessous
Composants internes de la caisse Rust non exportés Peut changer sans prise en charge de la migration avant que la version 1 ne soit stable
Code généré et sortie TS virtuelle Peut changer selon les besoins de la correction, de la compatibilité, des performances ou des diagnostics

Runtime Support

Le plancher par défaut Node.js pour les paquets d’exécution npm publics est Node 22, incluant oxlint-plugin-vize. Le plugin Oxlint déclare ^22 || >= 24 donc le nœud 22 et le nœud 24 ou plus récent sont autorisés tandis que le nœud 23 reste en dehors de la matrice de compatibilité testée.

Le flux de travail de release développe des paquets natifs pour macOS, Linux et Windows sur x64 et arm64 où le paquet déclare le support. Les tâches de compatibilité CI couvrent le plancher Node déclaré ainsi que la version actuelle du projet Node.

La matrice de fumée entièrement fraîche (.github/workflows/native-smoke.yml) fonctionne sur une cadence hebdomadaire et à la demande, pas à chaque poussée de relations publiques. Il exerce le chemin d’installation de paquets publié sur runners hébergés sur GitHub pour linux-x64-gnu, linux-arm64-gnu, darwin-arm64 et win32-x64-msvc ; Les cibles restantes Darwin-x64 et Win32-ARM64-MSVC restent sur des runners hébergés spécifiques à l’architecture. La matrice s’exécute contre les Nœuds 22 et 24. Les balises de libération restent bloquées par le flux de travail de libération la fumée d’installation de tarball avant la publication des packages npm. Les vérifications de fumée en temps de fonctionnement vize --version, vize check, @vizejs/native à travers require et import, et une @vizejs/vite-plugin vite build à partir des billes de bitume installées.

Deux cibles musl Linux déclarées ne sont actuellement pas exercées par un runner hébergé à installer à nouveau. Ils sont couverts par des artefacts de construction par plateforme ainsi que par le résolveur de dépendance optionnel @vizejs/native-* jusqu’à ce qu’une fumée Alpine conteneurisée puisse localiser le bitball natif correspondant :

Cible Écart entre coureurs hôtes Couverture rémunératrice
Linux-x64-musl Aucune VM Alpine/musl hébergée sur GitHub n’est disponible en tant que runner natif Le chantier de construction émet la boule de goudron en mousse ; Manuel, node:alpine la fumée.
linux-arm64-musl Les runners hébergés sur Arm64 sont Ubuntu GNU, pas des hôtes natifs Alpine/musl Le projet de construction émet la boule de bitume arm64 en mousse ; manuel Alpine arm64 fumée.

La fermeture de ces écarts est suivie parallèlement à #493.

La version minimale prise en charge de Rust (MSRV) pour l’espace de travail est déclarée en Cargo.toml sous [workspace.package].rust-version. La chaîne d’outils de développement épinglée par rust-toolchain.toml peut être la même version ou plus récente. Avant que la version 1 ne soit stable, le MSRV peut avancer dans n’importe quelle pré-sortie ; le changement est mentionné dans les notes de sortie lorsqu’il change. Les packagers en aval devraient lire rust-version à partir de la Cargo.toml d’une caisse plutôt que de les déduire à partir du fichier de la chaîne d’outils.

Paliers de support des paquets

Paliers Paquets Contrat
Alpha-supporté vize, @vizejs/native, @vizejs/vite-plugin Destiné aux premiers essais de production avec des changements de casse soutenus par la note de sortie.
Aperçu de la compatibilité @vizejs/unplugin, @vizejs/rspack-plugin, @vizejs/nuxt, @vizejs/musea-nuxt On s’attend à ce qu’il fonctionne pour des configurations hôtes courantes, mais la compatibilité hôte-framework peut évoluer rapidement.
Expérimental oxlint-plugin-vize, @vizejs/vite-plugin-musea, @vizejs/musea-mcp-server, @vizejs/wasm Les paquets publics, mais les API, commandes, sortie et forme du workflow peuvent changer pendant l’alpha.
Incubation @vizejs/fresco, @vizejs/fresco-native, extensions d’éditeur Utile pour le développement et les retours, mais pas encore dans la cible de production alpha v1.

Niveaux de support de caisse de rouille

Ce tableau est le contrat de compatibilité canonique pour les consommateurs crates.io. Il inclut toutes les caisses dont les métadonnées Cargo permettent la publication, y compris les caisses temporairement différées par la publication éditeur pendant que leur première crates.io est préparée. Les modules privés et les détails implémentation ne sont pas des surfaces de compatibilité.

Caisse Paliers Public visé Point d’entrée publique Suppression / dépréciation
vize_carton Alpha-supporté Auteurs du compilateur et de la bibliothèque Vize vize_carton::{Allocator, Bump, FxHashMap} Un mineur avec #[deprecated]
vize_relief Alpha-supporté Auteurs de l’AST et de l’intégration des compilateurs vize_relief::{RootNode, CompilerOptions} Une mineure avec #[deprecated]
vize_armature Alpha-supporté Outils qui analysent les modèles Vue vize_armature::{parse, Parser, Tokenizer} Un mineur avec #[deprecated]
vize_croquis Aperçu de la compatibilité Auteurs d’outils sémantiques et sensibles aux types vize_croquis::{Croquis, Drawer} Une mineure avec #[deprecated]
vize_croquis_cf Expérimental Expériences d’analyse globale du projet à adhésion vize_croquis_cf::CrossFileAnalyzer Pas de minimum ; Coupures de note quand c’est pratique
vize_atelier_core Alpha-supporté Auteurs backend de compilateurs personnalisés Vue vize_atelier_core::{transform, generate} Une mineure avec #[deprecated]
vize_atelier_dom Alpha-supporté Intégrations de compilateur et de bundler VDOM vize_atelier_dom::compile_template Un mineur avec #[deprecated]
vize_atelier_vapor Expérimental Intégrations Opt-in du compilateur Vapor vize_atelier_vapor::compile_vapor Pas de minimum ; Coupures de note quand c’est pratique
vize_atelier_ssr Aperçu de la compatibilité Auteurs de l’intégration SSR et framework vize_atelier_ssr::compile_ssr Un mineur avec #[deprecated]
vize_atelier_sfc Alpha-supporté Auteurs d’outils SFC et de bundlers vize_atelier_sfc::{parse_sfc, compile_sfc} Une mineure avec #[deprecated]
vize_atelier_jsx Aperçu de la compatibilité Auteurs du compilateur et des outils JSX/TSX vize_atelier_jsx::{compile_jsx, lower_source} Une mineure avec #[deprecated]
vize_musea Expérimental Galeries et outils de documentation de Musea vize_musea::{parse_art, transform_to_csf} Pas de minimum ; Coupures de note quand c’est pratique
vize_fresco Incubation Expériences TUI vize_fresco::{RenderTree, LayoutEngine} Pas de minimum
vize_canon Aperçu de la compatibilité Intégrations de vérificateur de caractères et éditeurs vize_canon::{type_check_sfc, TypeChecker} Un mineur avec #[deprecated]
vize_patina Aperçu de la compatibilité Intégrations de Linter et Oxlint vize_patina::{lint, Linter} Un mineur avec #[deprecated]

Chaque caisse enregistre également son niveau dans package.metadata.vize.stability. CI compare ces valeurs de métadonnées Cargo , ce tableau, ainsi que l’ensemble complet de caisses de publication de publication, de sorte que l’addition, la suppression ou la reclassification une caisse publiable ne peut pas changer silencieusement le contrat.

Interprétation de la porte SemVer

cargo-semver-checks s’exécute pour les caisses de l’éditeur de la version qui ont un registre résoluble des bases de base. Une caisse en attente de sa première publication, ou bloquée sur une, rejoint cette matrice dès que sa base est disponible. Jusqu’à ce moment-là, la vérification des métadonnées/tableau/liste de sortie s’applique toujours.

Paliers Interprétation de l’IC
Alpha supporté / Aperçu de compatibilité Une rupture API doit être corrigée ou suivre la fenêtre de dépréciation de la politique de support et porter un marqueur de rupture conventionnel.
Expérimental La porte capte un déplacement accidentel ; Une interruption intentionnelle peut utiliser un marqueur de rupture sans fenêtre de dépréciation.
Incubation La même détection s’applique, mais l’API entière ou la caisse peut être remplacée ou supprimée dans n’importe quelle version.

Les marqueurs de rupture reconnus par CI sont un ! dans le titre de changement classique ou un pied de pied de BREAKING CHANGE:. Passer la porte avec l’un ou l’autre marqueur ne fait pas annuler la fenêtre de dépréciation pour les caisses supportées par alpha ou pour la prévisualisation de compatibilité.

Qu’est-ce qui compte comme suffisamment stable pour Alpha

Un package ou une commande peut passer dans la couche prise en charge alpha lorsqu’elle possède :

  • Itinéraires d’installation et d’utilisation documentés

  • Couverture CI pour la compilation, l’installation et le support du Node en temps d’exécution

  • publiez une couverture fumée pour les entrées publiées

  • un propriétaire clair pour les régressions et les rapports de compatibilité

  • Comportement non supporté connu documenté dans le guide concerné

Ce qui n’est pas encore promis

L’alpha ne garantit pas une compatibilité totale avec chaque cas de contour des compilateurs Vue, chaque disposition de package manager, chaque capacité d’édition, ni toute intégration de framework. Lorsque Vize n’est pas d’accord avec 'outil officiel de Vue, considérez la sortie officielle comme la base de compatibilité, sauf si un guide Vize documente explicitement un comportement différent. Le compilateur bloqueant la libération, la vérification de type, l’exécution, les surfaces de compilation et Vite sont nommés dans les Vue parity matrix.

Pour la gestion de la sécurité, voir le dépôt SECURITY.md. Pour les flux de travail de contribution et de correction, voir CONTRIBUTING.md.