Skip to content

ci: load generated environment before install doctor checks - #2790

Merged
fengmk2 merged 2 commits into
voidzero-dev:mainfrom
naokihaba:test/reproduce-install-doctor-ci
Sep 22, 2026
Merged

fengmk2 merged 2 commits into
voidzero-dev:mainfrom
naokihaba:test/reproduce-install-doctor-ci

Conversation

@naokihaba

@naokihaba naokihaba commented Sep 22, 2026 •

Copy link
Copy Markdown
Collaborator

#2758 introduced a separate fallback shim directory for system-first tools, so vp env doctor now expects both the main shim directory and the fallback one in PATH.

However, the standalone install workflow only added ~/.vite-plus/bin to GITHUB_PATH. Since Git Bash on Windows doesn't inherit the persistent user PATH set by the installer, the fallback directory was missing when running vp env doctor.

This didn't show up in #2758 because the workflow installs the published CLI, which didn't have the new check yet. It started failing once v1.0.0-rc.0 was published with those changes.

I was able to reproduce the failure on main. This PR fixes it by sourcing ~/.vite-plus/env before running vp env doctor, which mirrors the actual user setup where the main directory comes first in PATH and the fallback directory comes last.

https://github.com/voidzero-dev/vite-plus/actions/runs/35752079139/job/106828512682?pr=2785

Found trampoline shim: /c/Users/runneradmin/.vite-plus/bin/vp.exe
Installation
  ✓ Bin dir           ~\.vite-plus\bin
  ✓ Data dir          ~\.vite-plus
  ✓ Cache dir         ~\.vite-plus\cache
  ✓ Config dir        ~\.vite-plus
  ✓ State dir         ~\.vite-plus
  ✓ Shims             node, npm, npx, pnpm, pnpx, pn, pnx, yarn, yarnpkg, bun, bunx, vpx, vpr

Configuration
  ✓ Node.js           managed mode
  ✓ Package manager   managed mode

PATH
  ✓ vp                ~\.vite-plus\bin\vp.exe
  ✓ Shim dir          ~\.vite-plus\bin
  ✗ Fallback dir      not in PATH
  Add the bin directory to your PATH via:
  System Properties -> Environment Variables -> Path

  Then restart your terminal.

Node.js Resolution
    Directory         D:\a\vite-plus\vite-plus
    Source            D:\a\vite-plus\vite-plus\.node-version
    Version           22.18.0
  ⚠ Node binary       not installed
  note: Version will be downloaded on first use.

Package Manager Resolution
    Source            packageManager
    Version           pnpm@11.24.0
  ✓ PM binaries       installed

✗ Some issues found. Run the suggested commands to fix them.
Error: Process completed with exit code 1.

@naokihaba naokihaba closed this Sep 22, 2026
@naokihaba naokihaba reopened this Sep 22, 2026
@naokihaba naokihaba self-assigned this Sep 22, 2026
@naokihaba
naokihaba marked this pull request as ready for review September 22, 2026 16:27
@naokihaba
naokihaba requested a review from fengmk2 September 22, 2026 16:40
@naokihaba naokihaba changed the title test: reproduce install doctor CI failure ci: load generated environment before install doctor checks Sep 22, 2026
@fengmk2
fengmk2 merged commit fb3706a into voidzero-dev:main Sep 22, 2026
70 checks passed
wan9chi added a commit that referenced this pull request Sep 26, 2026
Task cache settings now live under `cache`, and `vp migrate` moves
existing task settings for you. `vp lint` and `vp fmt` run from a
package directory now pick the same config as your editor, and piped
`vp` output exits cleanly.

### Breaking Changes

Task cache settings in `run.tasks` now go inside `cache`
([#2813](#2813),
[#2814](#2814),
[#2823](#2823),
[vite-task#749](voidzero-dev/vite-task#749)), by
@wan9chi.

| Old (top level of a task) | New |
| --- | --- |
| `env` | `cache.env` |
| `untrackedEnv` | `cache.untrackedEnv` |
| `input` | `cache.input` |
| `output` | `cache.output` |

`cache: true` is the same as `cache: {}`. After upgrading, a task that
still uses the old top-level fields fails with an error that points to
`vp migrate`. Run `vp migrate` to move the fields in `vite.config.*` for
the workspace root and every package. It warns about tasks in
`vite.config.*` that it cannot rewrite safely. Tasks created in other
modules, such as by a shared helper function, are not detected, so move
their fields by hand; the error lists every task that still needs it.
Projects whose tasks do not use these fields need no changes. See the
[task cache migration
rules](https://viteplus.dev/guide/migrate-rules#task-cache-configuration)
and the [`cache` reference](https://viteplus.dev/config/run#cache).

### Highlights

- `vp lint` and `vp fmt` run from a package directory now use the same
config as Oxlint, Oxfmt, and the language server, so results match your
editor. `vp check` still applies the workspace-root settings
([#2807](#2807)), by
@fengmk2.
- Global `vp` commands now exit cleanly when piped into a command that
closes early, such as `vp --version | head -n 1`, instead of aborting
with exit code 134
([#2785](#2785),
[#2793](#2793)), by
@naokihaba.
- Cached tasks on macOS no longer intermittently fail with `oils I/O
error (main): No such process`
([vite-task#703](voidzero-dev/vite-task#703)),
by @lifeiscontent.

### Features

- The bundled tools update `vite@8.3.0` -> `vite@8.3.1`,
`rolldown@1.2.9` -> `rolldown@1.2.11`, and `oxlint-tsgolint@7.0.2002` ->
`oxlint-tsgolint@7.0.2003`
([#2805](#2805),
[#2812](#2812)), by
@voidzero-guard[bot].

### Fixes & Enhancements

- Async `defineConfig` callbacks now type-check lint and format options,
such as `'warn'` rule severities, the same way as synchronous callbacks,
so configs updated by `vp migrate` no longer fail with `TS2769`
([#2803](#2803)), by
@TheAlexLichter.
- `vp test --help` now lists the Vitest 5 options `--repeats`,
`--injectCjsGlobals`, `--fsModuleCache`, `--fsModuleCachePath`, and
`--sharedViteServer`
([#2809](#2809)), by
@Marve10s.
- On Windows, `vp run` now matches environment variable names regardless
of letter case
([vite-task#747](voidzero-dev/vite-task#747)),
by @wan9chi.

### Docs

- The copy prompt dialog no longer nests scroll areas and shows clearer
copy feedback
([#2794](#2794),
[#2799](#2799)), by
@liangmiQwQ and @Boshen.

### Chore

- Snapshot tests share prepared packages and one Chromium process, run
faster on every platform, and no longer read the live npm registry in
the standalone npm fallback case
([#2771](#2771),
[#2786](#2786),
[#2797](#2797)), by
@fengmk2 and @voidzero-guard[bot].
- The snapshot setup check links the local `vite-plus` package into its
reference home instead of installing the version under release from npm,
so it passes before that version is published
([#2819](#2819)), by
@wan9chi.
- The preview migration harness installs a project's committed
dependencies before running `vp migrate`, so the Vitest 5 migration can
read the original Vitest version
([#2822](#2822)), by
@wan9chi.
- The standalone install workflow loads the generated environment before
running `vp env doctor`
([#2790](#2790)), by
@naokihaba.

### Bundled Versions

| Tool | Version | Source |
| --- | --- | --- |
| vite | `8.3.1` |
[`39ddf7c`](vitejs/vite@39ddf7c)
|
| rolldown | `1.2.11` |
[`8df4219`](rolldown/rolldown@8df4219)
|
| tsdown | `0.23.0` | [npm](https://npmx.dev/package/tsdown/v/0.23.0) |
| vitest | `5.0.1` | [npm](https://npmx.dev/package/vitest/v/5.0.1) |
| oxlint | `1.85.0` | [npm](https://npmx.dev/package/oxlint/v/1.85.0) |
| oxlint-tsgolint | `7.0.2003` |
[npm](https://npmx.dev/package/oxlint-tsgolint/v/7.0.2003) |
| oxfmt | `0.70.0` | [npm](https://npmx.dev/package/oxfmt/v/0.70.0) |

### Upgrade

```bash
vp upgrade
```

### New Contributors

@Marve10s

**Full Changelog**:
v1.0.0-rc.0...v1.0.0-rc.1

---

Merging this PR will trigger the release workflow.

---------

Co-authored-by: voidzero-guard[bot] <278573678+voidzero-guard[bot]@users.noreply.github.com>
Co-authored-by: wan9chi <me@wan9chi.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants