Vize

安定性

Vize は v1 アルファ版に向けて進んでいます。アルファ コントラクトは、安定した v1 よりも意図的に狭くなっています。 規約: 初期採用者が使用できるようにする余地を残しつつ、サーフェスに名前を付けます。 内部構造と実験的な統合を迅速に変更します。プロジェクト全体はまだ完全には完成していません 本番環境に対応したツールチェーン。リリースの決定には、 実稼働準備チェックリスト。 非推奨期間、SemVer ルール、およびリリースラインのサポートについては、 サポートポリシー

バージョニング契約

v1 が安定する前のプレリリースには重大な変更が含まれる可能性があります。 Vize は依然として重大な変更を次のように扱います リリースノート資料、特にパッケージのエントリポイント、CLI フラグ、設定フィールドに影響を与える場合 診断コード、または生成された出力。

v1 アルファ行では次のルールが使用されます。

表面 アルファの期待値
公開されたパッケージ名 引き続き利用可能であるか、移行メモが同梱されている必要があります。
文書化された CLI コマンドとフラグ サイレント動作の変更は避けるべきです
文書化された構成フィールド リリース ノートで変更が指示されない限り、名前と値の形状は安定したままにする必要があります。
診断コードはドキュメントにリストされています 抑制と修正レポートが有用であり続けるように、認識可能な状態を維持する必要があります。
公開された Rust クレート API 以下のクレートごとの階層と非推奨契約に従ってください。
未エクスポートの Rust クレート内部 v1 が安定する前に移行サポートがなければ変更される可能性があります
生成されたコードと仮想 TS 出力 正確性、互換性、パフォーマンス、または診断のために必要に応じて変更される可能性があります。

ランタイムサポート

パブリック npm ランタイム パッケージのデフォルトの Node.js フロアはノード 22 です。 oxlint-plugin-vize。 Oxlint プラグインは ^22 || >= 24 を宣言するため、ノード 22 およびノード 24 以降は ノード 23 がテスト済みの互換性マトリックスの外にある間は許可されます。

リリース ワークフローでは、x64 と arm64 にわたる macOS、Linux、および Windows のネイティブ パッケージを構築します パッケージがサポートを宣言している場所。 CI 互換性ジョブは、宣言されたノード フロアと 現在のプロジェクトのノードのバージョン。

完全な新規インストールスモークマトリックス (.github/workflows/native-smoke.yml) は毎週実行されます。 すべての PR プッシュではなく、リズムとオンデマンドです。公開されたパッケージのインストール パスを実行します。 GitHub でホストされている linux-x64-gnu、linux-arm64-gnu、darwin-arm64、win32-x64-msvc 用のランナー。の 残りの darwin-x64 および win32-arm64-msvc ターゲットは、アーキテクチャ固有のホスト ランナー上に残ります。 マトリックスはノード 22 とノード 24 に対して実行されます。リリース タグはリリース ワークフローによってブロックされたままです。 tarball は、npm パッケージを公開する前にスモークをインストールします。ランタイムスモークチェック vize --versionvize check@vizejs/nativerequireimport の両方、および インストールされた tarball からの @vizejs/vite-plugin vite build

宣言された 2 つの Linux musl ターゲットは、ホストされた新規インストール ランナーによって現在実行されていません。 これらは、プラットフォームごとのビルド アーティファクトと @vizejs/native-* によってカバーされます。 コンテナ化された Alpine Smoke が一致するネイティブをステージングできるようになるまで、オプションの依存関係リゾルバー タールボール:

ターゲット ホストランナーギャップ 補償範囲
Linux-x64-musl GitHub でホストされている Alpine/musl VM はネイティブ ランナーとして利用できません。ビルド ジョブは musl tarball を生成します。マニュアル node:alpine スモーク。
linux-arm64-musl Arm64 でホストされるランナーは Ubuntu GNU であり、Alpine/musl ネイティブ ホストではありません。ビルド ジョブは arm64 musl tarball を生成します。マニュアルアルパインアーム64スモーク。

これらのギャップを埋めることは、#493 と並行して追跡されます。

ワークスペースでサポートされる最小の Rust バージョン (MSRV) は、以下の Cargo.toml で宣言されます。 [workspace.package].rust-versionrust-toolchain.toml によって固定された開発ツールチェーン 同じバージョンかそれ以降のバージョンである可能性があります。 v1 が安定する前に、MSRV はプレリリースで前進する可能性があります。 変更があった場合には、リリース ノートでその旨が記載されます。下流のパッケージ担当者は次のことを読む必要があります ツールチェーン ファイルから推測するのではなく、クレートの Cargo.toml から rust-version を取得します。

パッケージのサポート層

階層 パッケージ 契約
アルファ版対応 vize@vizejs/native@vizejs/vite-plugin リリースノートに裏付けられた重大な変更を伴う初期の実稼働トライアルを対象としています。
互換性プレビュー @vizejs/unplugin@vizejs/rspack-plugin@vizejs/nuxt@vizejs/musea-nuxt 一般的なホスト設定で動作すると予想されますが、ホストとフレームワークの互換性は急速に変化する可能性があります。
実験的 oxlint-plugin-vize@vizejs/vite-plugin-musea@vizejs/musea-mcp-server@vizejs/wasm 公開パッケージですが、API、コマンド、出力、ワークフローの形状はアルファ版中に変更される可能性があります。
孵化中 @vizejs/fresco@vizejs/fresco-native、エディタ拡張パッケージ 開発とフィードバックには役立ちますが、まだ v1 アルファの運用対応ターゲットには含まれていません。

Rust クレートのサポート階層

このテーブルは、crates.io コンシューマの正規互換性契約です。すべての木枠をカバーします Cargo メタデータが公開を許可しているもの (リリースによって一時的に延期されたクレートを含む) 最初の crates.io リリースが準備されている間、パブリッシャーは、プライベートモジュールと実装 詳細は互換性の表面ではありません。

木箱 階層 対象読者 パブリック エントリポイント 削除/非推奨
vize_carton アルファ版対応 Vize コンパイラとライブラリの作者 vize_carton::{Allocator, Bump, FxHashMap} #[deprecated] の未成年者 1 人
vize_relief アルファ版対応 AST とコンパイラ統合の著者 vize_relief::{RootNode, CompilerOptions} #[deprecated] の未成年者 1 名
vize_armature アルファ版対応 Vue テンプレートを解析するツール vize_armature::{parse, Parser, Tokenizer} #[deprecated] の未成年者 1 人
vize_croquis 互換性プレビュー セマンティックおよびタイプ認識ツールの作成者 vize_croquis::{Croquis, Drawer} #[deprecated] の未成年者 1 人
vize_croquis_cf 実験的 プロジェクト全体の分析実験をオプトインする vize_croquis_cf::CrossFileAnalyzer 最小値はありません。実用的な場合はメモを中断します。
vize_atelier_core アルファ版対応 カスタム Vue コンパイラ バックエンドの作成者 vize_atelier_core::{transform, generate} #[deprecated] の未成年者 1 人
vize_atelier_dom アルファ版対応 VDOM コンパイラーとバンドラーの統合 vize_atelier_dom::compile_template #[deprecated] の未成年者 1 名
vize_atelier_vapor 実験的 オプトイン Vapor コンパイラー統合 vize_atelier_vapor::compile_vapor 最小値はありません。実用的な場合はメモを中断します。
vize_atelier_ssr 互換性プレビュー SSR とフレームワーク統合の著者 vize_atelier_ssr::compile_ssr #[deprecated] の未成年者 1 人
vize_atelier_sfc アルファ版対応 SFC ツールとバンドラーの作者 vize_atelier_sfc::{parse_sfc, compile_sfc} #[deprecated] の未成年者 1 人
vize_atelier_jsx 互換性プレビュー JSX/TSX コンパイラおよびツールの作成者 vize_atelier_jsx::{compile_jsx, lower_source} #[deprecated] の未成年者 1 名
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 人
vize_patina 互換性プレビュー Linter と Oxlint の統合 vize_patina::{lint, Linter} #[deprecated] の未成年者 1 名

各クレートは、その層を package.metadata.vize.stability に記録します。 CI はそれらの貨物を比較します メタデータ値、このテーブル、および完全なリリース パブリッシャー クレート セットを追加、削除、または パブリッシュ可能なクレートを再分類しても、サイレントにコントラクトを変更することはできません。

SemVer ゲートの解釈

cargo-semver-checks は、解決可能なレジストリを持つリリース発行者のクレートに対して実行されます ベースライン。最初のパブリッシュを待機しているクレート、または最初のパブリッシュでブロックされているクレートは、パブリッシュが完了するとそのマトリックスに参加します。 ベースラインが利用可能です。それまでは、メタデータ/テーブル/リリースリストのチェックが引き続き適用されます。

階層 CIの解釈
アルファ版サポート / 互換性プレビュー API ブレークは修正するか、サポート ポリシーの非推奨期間に従い、従来のブレーク マーカーを保持する必要があります。
実験的 ゲートは偶発的なドリフトをキャッチします。意図的な中断では、非推奨ウィンドウなしで中断マーカーが使用される場合があります。
孵化中 同じ検出が適用されますが、API またはクレート全体がどのリリースでも置き換えまたは削除される可能性があります。

CI で認識されるブレーク マーカーは、従来の変更タイトルの ! または BREAKING CHANGE: フッター。いずれかのマーカーでゲートを通過しても、非推奨は免除されません アルファサポートまたは互換性プレビュークレートのウィンドウ。

アルファ版にとって十分に安定しているものとは何か

パッケージまたはコマンドは、次の場合にアルファ サポート層に移行できます。

  • インストールおよび使用パスの文書化

  • パッケージのビルド、インストール、サポートされるノード ランタイムの CI カバレッジ

  • 公開されたエントリポイントのスモークカバレッジをリリースします

  • リグレッションと互換性レポートの明確な所有者

  • 既知のサポートされていない動作は関連ガイドに記載されています

まだ約束されていないこと

アルファ版は、すべての Vue コンパイラ エッジ ケース、すべてのパッケージとの完全な互換性を保証するものではありません マネージャーのレイアウト、すべてのエディター機能、またはすべてのフレームワーク統合。 Vize が同意しない場合 公式 Vue ツール。Vize ガイドでない限り、公式出力を互換性ベースラインとして扱います。 異なる動作を明示的に文書化します。リリースブロッキングコンパイラ、型チェック、ランタイム、 Vite ビルド サーフェスの名前は Vue パリティ行列

セキュリティの処理については、リポジトリ SECURITY.md を参照してください。貢献と修正のワークフローについては、を参照してください。 CONTRIBUTING.md