安定性
Vize は v1 アルファ版を目指して開発中です。早期に導入できる機能と、変更が続く内部実装・実験的な統合を区別します。 ツールチェーン全体が本番利用に十分な状態になった、という意味ではありません。 導入判断には本番利用の準備状況を、 非推奨期間やバージョンごとのサポートにはサポート方針を参照してください。
バージョンと互換性
安定版 v1 より前のリリースには破壊的変更が含まれる可能性があります。公開 API、CLI のフラグ、設定項目、診断コード、 生成結果に影響する変更は、リリースノートで説明します。アルファ版の互換性の方針は次のとおりです。
| 対象 | 方針 |
|---|---|
| 公開パッケージ名 | 利用できる状態を維持するか、移行方法を案内する |
| 文書化した CLI コマンド・フラグ | 告知のない動作変更を避ける |
| 文書化した設定項目 | リリースノートで説明する変更を除き、名前と値の形式を維持する |
| 文書化した診断コード | 診断の抑制や修正レポートが引き続き使える識別子を維持する |
| Rust クレートの公開 API | 下記の区分と非推奨期間に従う |
| Rust クレートの非公開実装 | 安定版 v1 より前は、移行手順なしに変更される場合がある |
| 生成コード・仮想 TypeScript ファイル | 正確性、互換性、性能、診断のために変更される場合がある |
ランタイムサポート
公開 npm パッケージが必要とする Node.js の最低バージョンは、原則として Node 22 です。
oxlint-plugin-vize は ^22 || >= 24 を指定しており、Node 22 と Node 24 以降に対応します。Node 23 は検証対象に含みません。
ネイティブパッケージは macOS・Linux・Windows の x64 / arm64 向けに提供しています。
| プラットフォーム | 検証方法 |
|---|---|
| darwin-arm64, darwin-x64 | ホストランナーで新規インストールを検証(Node 22 と 24) |
| linux-x64-gnu, linux-arm64-gnu | ホストランナーで新規インストールを検証(Node 22 と 24) |
| win32-x64-msvc, win32-arm64-msvc | ホストランナーで新規インストールを検証(Node 22 と 24) |
| linux-x64-musl, linux-arm64-musl | 毎リリースでビルドし、Alpine で手動検証(#493) |
npm に公開する前に、リリース用 tarball をインストールし、vize --version、vize check、@vizejs/native の require / import、@vizejs/vite-plugin による vite build がすべて通ることを確認します。新規インストールの全体検証は毎週も実行します。
Rust の最低対応バージョン(MSRV)は、Cargo.toml の [workspace.package].rust-version に記載しています。
開発用の rust-toolchain.toml は、同じバージョンか、それより新しいバージョンを指定します。
安定版 v1 より前は MSRV を引き上げる場合があり、その際はリリースノートで案内します。
パッケージを配布する場合は、ツールチェーンの指定から推測せず、クレートの Cargo.toml にある rust-version を確認してください。
パッケージのサポート区分
| 区分 | パッケージ | 方針 |
|---|---|---|
| アルファ版対応 | vize、@vizejs/native、@vizejs/vite-plugin、@vizejs/plugin-sdk |
早期の本番導入を対象とする。破壊的変更はリリースノートで案内する |
| 互換性プレビュー | @vizejs/unplugin、@vizejs/rspack-plugin、@vizejs/nuxt、@vizejs/nuxt-lint-config、@vizejs/musea-nuxt |
一般的な構成での動作を想定するが、フレームワークとの互換性は変化する可能性がある |
| 実験的 | oxlint-plugin-vize、@vizejs/vite-plugin-musea、@vizejs/musea-mcp-server、@vizejs/wasm |
公開済みだが、API・コマンド・生成結果・ワークフローはアルファ版の間に変わる可能性がある |
| 実験的 | @vizejs/composable、@vizejs/ui、@vizejs/marquette |
公開ライブラリだが、API の構成と生成されるリファレンスデータは変わる可能性がある |
| 実験的(ワークスペース内のみ) | @vizejs/data、@vizejs/devtools、@vizejs/router、@vizejs/state |
リポジトリ内に実装があるが npm には未公開。レジストリからはインストールできない |
| 開発初期 | @vizejs/fresco、@vizejs/fresco-native、エディター拡張 |
開発と評価に使えるが、v1 アルファ版の本番対応対象には含まれない |
Rust クレートのサポート区分
この節は crates.io から Vize のクレートを使う Rust 開発者向けです。Vue アプリの開発者は読み飛ばしてかまいません。 以下の表は、crates.io の利用者向けの互換性の方針です。Cargo メタデータで公開が許可されたクレートをすべて含みます。 初回公開の準備などでリリースが延期されているクレートも対象です。非公開のモジュールや実装の詳細には、同じ互換性を保証しません。
| クレート | 区分 | 対象 | 公開 API | 削除・非推奨 |
|---|---|---|---|---|
vize_carton |
アルファ版対応 | Vize のコンパイラ・ライブラリ開発者 | vize_carton::{Allocator, Box, FxHashMap} |
#[deprecated] を付けて 1 minor release の間保持 |
vize_relief |
アルファ版対応 | AST・コンパイラ統合の開発者 | vize_relief::{RootNode, CompilerOptions} |
#[deprecated] を付けて 1 minor release の間保持 |
vize_armature |
アルファ版対応 | Vue テンプレートを解析するツール | vize_armature::{parse, Parser, Tokenizer} |
#[deprecated] を付けて 1 minor release の間保持 |
vize_croquis |
互換性プレビュー | 意味解析・型情報を使うツールの開発者 | vize_croquis::{Croquis, Drawer} |
#[deprecated] を付けて 1 minor release の間保持 |
vize_croquis_cf |
実験的 | プロジェクト全体の解析を評価する開発者 | vize_croquis_cf::CrossFileAnalyzer |
最低期間の保証なし。可能な範囲で破壊的変更を告知 |
vize_l0_derive |
実験的 | Davinci のダンプ形式の開発者 | vize_l0_derive::Dump |
最低期間の保証なし。可能な範囲で破壊的変更を告知 |
vize_doctor |
実験的 | アプリの状態を解析するツールの開発者 | vize_doctor::{DoctorFinding, FindingEvidence} |
最低期間の保証なし。可能な範囲で破壊的変更を告知 |
vize_l3 |
実験的 | Davinci のバックエンド実行計画の開発者 | vize_l3::{dump::Page, op, verify} |
最低期間の保証なし。可能な範囲で破壊的変更を告知 |
vize_l4 |
実験的 | ネイティブコード生成を評価する開発者 | vize_l4::{targets::dom::emit_file, module::assemble} |
最低期間の保証なし。可能な範囲で破壊的変更を告知 |
vize_atelier_core |
アルファ版対応 | Vue コンパイラのバックエンド開発者 | vize_atelier_core::{transform, generate} |
#[deprecated] を付けて 1 minor release の間保持 |
vize_atelier_dom |
アルファ版対応 | VDOM コンパイラ・バンドラー統合 | vize_atelier_dom::compile_template |
#[deprecated] を付けて 1 minor release の間保持 |
vize_atelier_vapor |
実験的 | Vapor コンパイラ統合の評価 | vize_atelier_vapor::compile_vapor |
最低期間の保証なし。可能な範囲で破壊的変更を告知 |
vize_atelier_ssr |
互換性プレビュー | SSR・フレームワーク統合の開発者 | vize_atelier_ssr::compile_ssr |
#[deprecated] を付けて 1 minor release の間保持 |
vize_atelier_sfc |
アルファ版対応 | SFC ツール・バンドラーの開発者 | vize_atelier_sfc::{parse_sfc, compile_sfc} |
#[deprecated] を付けて 1 minor release の間保持 |
vize_atelier_jsx |
互換性プレビュー | JSX/TSX コンパイラ・ツールの開発者 | vize_atelier_jsx::{compile_jsx, lower_source} |
#[deprecated] を付けて 1 minor release の間保持 |
vize_marquette |
実験的 | フレームワーク・対象別アダプターの開発者 | vize_marquette::{ApplicationContract, Target} |
最低期間の保証なし。可能な範囲で破壊的変更を告知 |
vize_musea |
実験的 | Musea ギャラリー・ドキュメントツール | vize_musea::{parse_art, transform_to_csf} |
最低期間の保証なし。可能な範囲で破壊的変更を告知 |
vize_fresco |
開発初期 | TUI の評価 | vize_fresco::{RenderTree, LayoutEngine} |
最低期間の保証なし |
vize_canon |
互換性プレビュー | 型チェッカー・エディター統合 | vize_canon::{type_check_sfc, TypeChecker} |
#[deprecated] を付けて 1 minor release の間保持 |
vize_patina |
互換性プレビュー | リンター・Oxlint 統合 | vize_patina::{lint, Linter} |
#[deprecated] を付けて 1 minor release の間保持 |
vize_l1 |
実験的 | 情報を保持する Vue テンプレートツールの開発者 | vize_l1::{parse, SurfaceTree} |
最低期間の保証なし。可能な範囲で破壊的変更を告知 |
vize_l1_to_l2 |
実験的 | Vue の変換・コンパイラバックエンド開発者 | vize_l1_to_l2::{lower, emit_dom} |
最低期間の保証なし。可能な範囲で破壊的変更を告知 |
vize_l2 |
実験的 | 方言に依存しないコンパイラ IR の開発者 | vize_l2::{dump::Page, op, verify} |
最低期間の保証なし。可能な範囲で破壊的変更を告知 |
vize_l0 |
実験的 | Davinci の各層・パスの開発者 | vize_l0::{id::NodeId, side_table::SideTable} |
最低期間の保証なし。可能な範囲で破壊的変更を告知 |
vize_l2_to_l3 |
実験的 | L2 から L3 への変換・バックエンド開発者 | vize_l2_to_l3::{lower, PartitionFacts} |
最低期間の保証なし。可能な範囲で破壊的変更を告知 |
各クレートの区分は package.metadata.vize.stability にも記載します。CI は Cargo メタデータ、この表、
リリース対象のクレート一覧を照合し、追加・削除・区分変更によって互換性の方針が暗黙に変わることを防ぎます。
SemVer 検証の意味
cargo-semver-checks は、レジストリに比較対象のリリースがあるクレートに対して実行します。
初回公開を待つクレートは、比較対象を取得できるようになった段階で検証に加わります。
それまでも、メタデータ・サポート表・リリース一覧の照合は行います。
| 区分 | CI での扱い |
|---|---|
| アルファ版対応・互換性プレビュー | API の破壊的変更を修正するか、サポート方針の非推奨期間を守り、破壊的変更の印を付ける |
| 実験的 | 意図しない API の変化を検出する。意図した破壊的変更は、非推奨期間なしに印を付けられる |
| 開発初期 | 同じ検出を行うが、API やクレート全体をリリースで置き換えたり削除したりする場合がある |
CI が認識する破壊的変更の印は、Conventional Commits のタイトルにある !、または BREAKING CHANGE: のフッターです。
印を付けても、アルファ版対応・互換性プレビューの非推奨期間は省略できません。
アルファ版対応に必要な条件
- インストールと使い方が文書化されている
- パッケージのビルド、インストール、対応 Node.js を CI で検証している
- 公開 API をリリース時に検証している
- 不具合や互換性の報告を担当する人がいる
- 未対応の動作が関連ガイドに明記されている
まだ保証していないこと
すべての Vue 構文、パッケージマネージャーの配置、エディター機能、フレームワークとの互換性を保証するわけではありません。 Vize のガイドが意図した違いを明記していない限り、公式の Vue ツールの結果を互換性の基準として扱ってください。 リリースを止めるコンパイラ・型チェック・ランタイム・Vite ビルドの検証項目は、 Vue 互換性マトリックスにまとめています。
セキュリティ上の問題は SECURITY.md、開発への参加と修正の流れは CONTRIBUTING.md を参照してください。