Skip to content

fix(build): keep Windows release builds clean so ov reports the release version - #5588

Merged
t0saki merged 1 commit into
mainfrom
fix/windows-cli-version
Oct 3, 2026
Merged

t0saki merged 1 commit into
mainfrom
fix/windows-cli-version

Conversation

@ZaynJarvis

@ZaynJarvis ZaynJarvis commented Oct 3, 2026 •

Copy link
Copy Markdown
Collaborator

The Windows wheel of v0.4.23 ships an ov.exe that reports 0.4.24.dev0, while the wheel itself and the Linux/macOS ov report 0.4.23. Same commit (df32bf6e), wrong version string.

Root cause. Windows runners set core.autocrlf=true, so checkout writes web-studio/src/routeTree.gen.ts with CRLF. uv sync builds the Studio, and the TanStack Router plugin regenerates that tracked file with LF. Git now sees the tree as dirty, even though git diff after normalization is empty. When the CLI version is resolved at an exact release tag, setuptools_scm's git describe --dirty therefore produces the next dev version. Later the job runs git reset --hard before building the wheel, so the wheel is still 0.4.23.

Changes

  • .gitattributes: web-studio/src/routeTree.gen.ts text eol=lf, so checkout and the generator agree on every OS.
  • _build.yml: after uv build --wheel, fail if the wheel version differs from the version compiled into ov (Linux and macOS/Windows jobs).

Verification (Windows workflow_dispatch runs of _build.yml)

  • Before: git status --porcelain printed M web-studio/src/routeTree.gen.ts at the version-resolution step; git config core.autocrlf = true; git diff was empty, with the warning "LF will be replaced by CRLF". Run: https://github.com/volcengine/OpenViking/actions/runs/37114001071
  • After adding the attribute, with the original resolve step unchanged: git status --porcelain is empty at the same step. Run: https://github.com/volcengine/OpenViking/actions/runs/37114961801
  • Locally at v0.4.23, a dirty tracked file turns the resolved version from 0.4.23 into 0.4.24.dev0, which reproduces the release symptom.
  • Both diagnostic runs were cancelled after the resolve step, so the new check step itself has not run in CI yet.

…y clean

On Windows runners core.autocrlf=true checks the generated route tree out
with CRLF; the Studio build rewrites it with LF, the tree turns dirty, and
setuptools_scm resolves the bundled ov version as the next dev release.
Also fail the build when the wheel and bundled ov versions differ.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@ZaynJarvis
ZaynJarvis force-pushed the fix/windows-cli-version branch from 76c070f to e3fecdc Compare October 3, 2026 10:27
@ZaynJarvis ZaynJarvis changed the title fix(ci): keep bundled ov version in sync with the wheel fix(build): keep Windows release builds clean so ov reports the release version Oct 3, 2026

@t0saki t0saki left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM per zhengxiao.wu; all builds incl. Windows green.

@t0saki
t0saki merged commit 9d9bc85 into main Oct 3, 2026
14 checks passed
@t0saki
t0saki deleted the fix/windows-cli-version branch October 3, 2026 11:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants