Skip to content

☂️ Plan for 2026 Q4 #3277

Open
Open

Description

@fengmk2

The purpose of this plan is to provide transparency to our community and collaborators by sharing our current goals and timelines.

We will be actively working on the tasks listed below, which have been aligned with our goals for Q4 (Oct - Dec 2026).

If you see something that is not on this list but is strongly needed, please write a detailed requirement on this issue if you feel the need for feature prioritization. Also, remember this is not a complete list, so please search for relevant issues beforehand.

For broader collaboration, you can also find us on Discord.


P0: Cache Tools That Maintain Their Own Cache (@wan9chi)

Tools such as Vitest, TypeScript, and Astro read and rewrite their own cache files. Vite Task currently refuses to cache these tasks because their reads and writes overlap.

Support these patterns without requiring manual exclusions in cache.input or cache.output.

Tracking issue: vite-task#929

P0: Release Vite Task Remote Caching (@wan9chi)

Vite Task can cache task results without requiring users to define inputs manually. We intend it to replace Turborepo and Nx.

Test remote caching in real projects to prepare it for production. Release it publicly with a Workers-based service implementation.

Tracking issue: vite-task#930

P0: Run TypeScript with vpx (@fengmk2)

Make vpx index.ts work like tsx, so developers can run TypeScript scripts as part of their Vite+ workflow.

P0: Maintain an Official Homebrew Tap (@fengmk2)

Provide an official Homebrew tap for installing and upgrading Vite+. Connect the tap to the release process to keep it current.

P0: Align the Core Version with Vite (@fengmk2)

Increase the major version of @voidzero-dev/vite-plus-core to 8. Define how future versions map to bundled Vite versions.

With package aliases, compatible dependencies should pass peer dependency checks, while incompatible dependencies should still fail. This should reduce reliance on broad peerDependencyRules exceptions. See #2806.

P1: Define the Vite+ JavaScript API (@fengmk2, @wan9chi)

Design JavaScript APIs for Vite+ features beyond linting and formatting. These APIs should let developers use those features from scripts and integrations.

The initial scope remains open. First, decide which features and workflows to support. Include usage examples for the selected APIs.

For linting and formatting, keep the Oxlint and Oxfmt APIs unchanged. Change only the import paths to vite-plus/lint and vite-plus/fmt, respectively.

P1: Improve CLI Configuration Loading Performance (@fengmk2)

Reduce repeated loading of vite.config.ts to make vp check and vp staged faster. Establish performance baselines to measure the improvement. See #2698.

P1: Add Varlock Support (@fengmk2)

Define the initial scope and integration approach for Varlock. Then implement and document the feature.

P1: Support Monorepo Package Publishing (@fengmk2)

Support publishing multiple npm packages from a monorepo, including version management, internal dependency updates, and publishing order.

P1: Improve Automatic File Tracking on Linux (@wan9chi)

With remote caching, we expect more tasks to run on Linux CI. The current Linux backend fails on WSL2 and misses file reads made through direct syscalls. See vite-plus#1643 and vite-task#777.

Build a new Linux tracking backend that addresses these limitations.

Tracking issue: vite-task#932

P2: Address the Issue Backlog (@fengmk2)

Triage the issue backlog and remove duplicates. Prioritize problems that affect installation, migration, and daily use.

Reserve time throughout Q4 for issues that block users.

P2: Manage Older Node.js Versions (@fengmk2)

Support older releases such as Node.js 16, 18, and 20 in the version manager. Clarify the runtime requirements for user projects and for Vite+ itself.

Activity

  1. pinned this issue on Oct 29, 2026
  2. voidzero-bot commented on Oct 29, 2026

    @voidzero-bot
  3. ReemX commented on Oct 31, 2026

    @ReemX

    Requirements from a monorepo we'd like to move off Turborepo, in case it helps prioritise. Setup: pnpm workspaces with catalogs, 88 packages (NestJS backends, React 19 frontends, shared libs), Windows 11 dev machines with Git Bash, CI on self-hosted Windows agents (Azure DevOps Server), deploys to air-gapped Windows Server boxes that install from a private registry.

    We ran vp migrate (1.4.0) on a copy of the repo this week. Fmt, test imports and pack migrated fine, and type-aware vp lint took 3-5s on our two biggest apps where ESLint took 12-47s (not the same rule set, so a rough comparison). Since then we've moved to Oxfmt and Oxlint on their own and dropped ESLint and Prettier entirely, so formatting and linting are done. The task runner is what keeps Turborepo in place. Here's every turbo feature we use and where we think Vite Task is today:

    What we use in turbo Vite Task today
    dependsOn: ["^build"] Works (topological order, from: 'dependencies')
    Explicit inputs/outputs Works (cache.input/output, plus auto tracking)
    Caching tsc --incremental (tsbuildinfo next to dist/) 1.4.0 refuses to cache it (0/10 hits for us). vite-task#913 looks like the fix; we'll re-test once it ships
    A shared vite config package that's built before other configs load Blocked: every package's vite.config.ts is evaluated before filtering, so nothing runs on a clean checkout (#1709)
    globalDependencies (env/**, a manifest file) No root-level list; would need per-task inputs or rely on tracking
    globalEnv + env: ["VITE_*"] Per-task cache.env with wildcards works; no global list
    persistent dev tasks + with sidecars (dev proxy and the auth app start next to any app's dev) --parallel only. vite-task#416 is close
    TUI for those dev tasks #3098
    turbo watch dev vite-task#276
    interactive: true for a setup task Seems fine (uncached tasks inherit stdin)
    --affected / --filter=...[origin/main] in CI Missing, and a no-match exits 0 (#2903, still the case on 1.4.0)
    turbo run build lint typecheck test --continue=dependencies-successful in one CI step One task per vp run (vite-task#388) and no continue-on-failure (vite-task#822)
    turbo boundaries with tags (backend packages can't be imported by frontend ones, apps can't import apps), CI-gated Missing, opened #3295
    Local cache shared across git worktrees (we use a lot of worktrees) vite-task#902, #2298
    Remote cache Q4 P0. We can only use something we host ourselves on-prem with no internet, so a documented protocol or a self-hostable server matters more to us than the hosted service
    Windows + Git Bash Cached tasks that spawn sh crash (#3121). Killing vp by PID does take the task tree down on Windows, which is good
    Air-gapped installs Works through the npm packages from our registry. A per-platform list of the native packages would help (opened #3296)

    The ones that block us outright are #1709, #3121, #2903 and boundaries. The rest we could script around for a while.

  4. fengmk2 commented on Nov 3, 2026

    @fengmk2
    MemberAuthor
  5. self-assigned this
    on Nov 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Fields

Priority

None yet

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions