2026 年 9 月の OSS 活動
9 月の終わりに、Vite+ 1.0 がリリースされました(リリースノート)! 9 月は、Vite+ の CLI の不具合を直すのと、setup-vp の改善が中心でした。
voidzero-dev/vite-plus
fix(cli): handle broken pipes in command output (#2785)
次のように出力を head に渡すと、vp が終了コード 134 で異常終了していました(#2661)。
vp --version | head -n 1
head が先に stdout を閉じると、println! が BrokenPipe で panic します。Vite+ は panic = "abort" でビルドしているので、そのままプロセスが止まります。
Oxc の print_and_flush を参考に、出力用の関数を追加しました。BrokenPipe なら正常に終了し、Interrupted と WouldBlock なら再試行し、それ以外のエラーは呼び出し元に返します。
SIGPIPE のハンドラーをデフォルトに戻す方法も考えましたが、これはプロセス全体の振る舞いを変えるので、後処理の前にプロセスが止まる可能性があります。#[tokio::main] の中では設定するタイミングも遅すぎて、スレッドとの競合を避けられません。なので、書き込む場所で BrokenPipe を処理することにしました。
refactor: make global CLI stdout broken-pipe safe (#2793)
#2785 の続きです。vp_global_cli と vp_shared に残っていた print! と println! を同じ関数に置き換えて、クレート全体で clippy::print_stdout を許可していた設定も消しました。これで、AI エージェントが println! を直接書いても CI で検出できます。
ci: load generated environment before install doctor checks (#2790)
#2785 の CI で、Windows の vp env doctor が失敗しました。#2758 で fallback 用の shim ディレクトリが追加され、vp env doctor はそのディレクトリも PATH にあるかを確かめるようになっていました。ところが、インストールを確かめるワークフローは ~/.vite-plus/bin しか GITHUB_PATH に追加しておらず、v1.0.0-rc.0 が公開されたタイミングでこのずれが表に出ました。ワークフローで ~/.vite-plus/env を読み込んでから vp env doctor を実行するようにして直しました。
docs: clarify Nushell XDG startup requirements and recovery (#2704)
Nushell の config.nu で XDG_DATA_HOME を変えると、新しいセッションで Vite+ の設定が読み込まれないことに気づいて、Issue を立てました(#2491)。Nushell は config.nu を実行する前に autoload のディレクトリを決めるので、そのあとで XDG_DATA_HOME を変えると、インストーラーが設定を書く場所と Nushell が読む場所がずれます。
Nushell のドキュメントでは、XDG の変数は Nushell を起動する前に設定することになっています。インストーラー側で対応する案もいくつか調べましたが、どれも問題の一部しか解決しないか、正しく設定しているユーザーにまで不要な警告を出してしまいます。なので、インストーラーは変えずに、Getting Started にこの条件と回避方法を書きました。
docs: clarify migration dependency retention for pnpm (#2660)
Web サイトの移行用プロンプトを、vp help migrate の pnpm の説明に合わせました(#2656)。vp migrate が作る vite と vitest の依存は、削除せずに残します。
docs: update homepage pack demo for the 1.0 release (#2844)
ホームページの vp pack のデモが、古い tsdown 0.14.1 の出力のままだったので、Vite+ 1.0 の vp pack の実際の出力に更新しました。
voidzero-dev/setup-vp
feat: add cache-save input for restore-only caching (#140)
cache-save という入力を追加しました(#139)。すべてのブランチでキャッシュを読みつつ、信頼できるブランチだけがキャッシュを更新する、という設定のための入力です。デフォルトは true なので、既存のワークフローの動作は変わりません。false にすると、キャッシュを復元するだけで保存はしません。Azure Pipelines と GitLab ではキャッシュをそれぞれの設定で扱うので、効くのは GitHub Actions だけです。
refactor: centralize Windows platform checks (#165)
process.platform === "win32" という判定がいくつものモジュールに散らばっていたので(#157)、isWindows という共通の関数にまとめました。
docs: update checkout examples to v7 (#144)
README の例にある actions/checkout を v7 に更新しました。